summaryrefslogtreecommitdiff
path: root/misc
diff options
context:
space:
mode:
Diffstat (limited to 'misc')
-rw-r--r--misc/unix/rand.c31
1 files changed, 31 insertions, 0 deletions
diff --git a/misc/unix/rand.c b/misc/unix/rand.c
index 894022f6d..0bdd3722f 100644
--- a/misc/unix/rand.c
+++ b/misc/unix/rand.c
@@ -39,6 +39,37 @@
#define SHUT_RDWR 2
#endif
+#if HAVE_UUID_CREATE
+
+#include <uuid.h>
+
+APR_DECLARE(apr_status_t) apr_os_uuid_get(unsigned char *uuid_data)
+{
+ uuid_t g;
+
+ uuid_create(&g, NULL);
+
+ memcpy( (void*)uuid_data, (const void *)&g, sizeof( uuid_t ) );
+
+ return APR_SUCCESS;
+}
+
+#elif HAVE_LIBUUID
+
+#include <uuid/uuid.h>
+
+APR_DECLARE(apr_status_t) apr_os_uuid_get(unsigned char *uuid_data)
+{
+ uuid_t g;
+
+ uuid_generate(g);
+
+ memcpy((void*)uuid_data, (const void *)g, sizeof( uuid_t ) );
+
+ return APR_SUCCESS;
+}
+#endif
+
#if APR_HAS_RANDOM
APR_DECLARE(apr_status_t) apr_generate_random_bytes(unsigned char *buf,