]> git.sur5r.net Git - openldap/commitdiff
Add support for uuid_generate/uuid_unparse
authorKurt Zeilenga <kurt@openldap.org>
Fri, 2 Mar 2007 07:36:23 +0000 (07:36 +0000)
committerKurt Zeilenga <kurt@openldap.org>
Fri, 2 Mar 2007 07:36:23 +0000 (07:36 +0000)
configure.in
libraries/liblutil/uuid.c

index b013b04f732973e7b045dfdee79b3e1e7159f2a2..c5ade0133e69a718ffcbc900ed0e1bdcdb0428a3 100644 (file)
@@ -1000,6 +1000,15 @@ if test $ac_cv_header_sys_uuid_h = yes ; then
        fi
 fi
 
+dnl Look for uuid_generate
+if test $have_uuid = no ; then
+       AC_CHECK_HEADERS(uuid/uuid.h)
+       if test $ac_cv_header_uuid_uuid_h = yes ; then
+               AC_CHECK_FUNCS( uuid_generate )
+               have_uuid=$ac_cv_func_uuid_generate
+       fi
+fi
+
 dnl For windows, check for the need of RPCRT for UUID function support
 if test $have_uuid = no ; then
        AC_MSG_CHECKING(to see if -lrpcrt4 is needed for win32 UUID support)
index e2bbe74ad6410577e49bc94e2e9e5e956d5c1f3b..7b9f13e3faf014ea1b67a9204249a2500dc21215 100644 (file)
@@ -41,6 +41,8 @@
 
 #ifdef HAVE_UUID_TO_STR
 #  include <sys/uuid.h>
+#elif defined( HAVE_UUID_GENERATE )
+#  include <uuid/uuid.h>
 #elif defined( _WIN32 )
 #  include <rpc.h>
 #else
@@ -56,7 +58,7 @@
 #include <lutil.h>
 
 /* not needed for Windows */
-#if !defined(HAVE_UUID_TO_STR) && !defined(_WIN32)
+#if !defined(HAVE_UUID_TO_STR) && !defined(HAVE_UUID_GENERATE) && !defined(_WIN32)
 static unsigned char *
 lutil_eaddr( void )
 {
@@ -251,7 +253,7 @@ mul64ll(unsigned long i1, unsigned long i2)
 
 #endif /* ULONG_MAX >= 64 bits || HAVE_LONG_LONG */
 
-#endif /* !HAVE_UUID_TO_STR && !_WIN32 */
+#endif /* !HAVE_UUID_TO_STR && !HAVE_UUID_GENERATE && !_WIN32 */
 
 /*
 ** All we really care about is an ISO UUID string.  The format of a UUID is:
@@ -298,6 +300,13 @@ lutil_uuidstr( char *buf, size_t len )
 
        return l;
 
+#elif defined( HAVE_UUID_GENERATE )
+       uuid_t uu;
+
+       uuid_generate( uu );
+       uuid_unparse_lower( uu, buf );
+       return strlen( buf );
+       
 #elif defined( _WIN32 )
        UUID uuid;
        unsigned char *uuidstr;