Add support for uuid_generate/uuid_unparse

This commit is contained in:
Kurt Zeilenga 2007-03-02 07:36:23 +00:00
parent 2d54d689f9
commit 0a1301bc6b
2 changed files with 20 additions and 2 deletions

View 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)

View 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;