Add an internal uuid formatting utility
authorJérémie Galarneau <jeremie.galarneau@efficios.com>
Wed, 12 Dec 2018 20:10:36 +0000 (15:10 -0500)
committerJérémie Galarneau <jeremie.galarneau@efficios.com>
Thu, 14 Feb 2019 19:48:34 +0000 (14:48 -0500)
Signed-off-by: Jérémie Galarneau <jeremie.galarneau@efficios.com>
src/common/compat/Makefile.am
src/common/compat/uuid.c [new file with mode: 0644]
src/common/compat/uuid.h

index c5418baebec2c738ccc3448c285246b642e7e227..82c74eedf21e371fdd212c4551dad96008570f7a 100644 (file)
@@ -7,6 +7,6 @@ COMPAT=compat-poll.c
 endif
 
 libcompat_la_SOURCES = poll.h fcntl.h endian.h mman.h dirent.h \
-               socket.h compat-fcntl.c uuid.h tid.h \
+               socket.h compat-fcntl.c uuid.h uuid.c tid.h \
                getenv.h string.h prctl.h paths.h netdb.h $(COMPAT) \
                time.h
diff --git a/src/common/compat/uuid.c b/src/common/compat/uuid.c
new file mode 100644 (file)
index 0000000..8759de6
--- /dev/null
@@ -0,0 +1,29 @@
+/*
+ * Copyright (C) 2018 - Jérémie Galarneau <jeremie.galarneau@efficios.com>
+ *
+ * This library is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License, version 2.1 only,
+ * as published by the Free Software Foundation.
+ *
+ * This library is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License
+ * for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with this library; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+ */
+
+#include <stdio.h>
+#include <common/compat/uuid.h>
+
+void lttng_uuid_to_str(const unsigned char *uuid, char *uuid_str)
+{
+       sprintf(uuid_str,
+                       "%02x%02x%02x%02x-%02x%02x-%02x%02x-%02x%02x-%02x%02x%02x%02x%02x%02x",
+                       uuid[0], uuid[1], uuid[2], uuid[3],
+                       uuid[4], uuid[5], uuid[6], uuid[7],
+                       uuid[8], uuid[9], uuid[10], uuid[11],
+                       uuid[12], uuid[13], uuid[14], uuid[15]);
+}
index 4a71f16c8af1cbb6a5d3d8dd46e470f5f861329d..dcc4ed5609b2785945f54f00dd7d575e0c8ad82f 100644 (file)
@@ -23,6 +23,8 @@
 #ifndef LTTNG_UUID_H
 #define LTTNG_UUID_H
 
+#include <common/macros.h>
+
 /*
  * Includes final \0.
  */
@@ -65,4 +67,13 @@ int lttng_uuid_generate(unsigned char *uuid_out)
 #error "LTTng-Tools needs to have a UUID generator configured."
 #endif
 
+/*
+ * Convert a UUID to a human-readable, NULL-terminated, string of the form
+ * xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx.
+ *
+ * Assumes uuid_str is at least UUID_STR_LEN byte long.
+ */
+LTTNG_HIDDEN
+void lttng_uuid_to_str(const unsigned char *uuid, char *uuid_str);
+
 #endif /* LTTNG_UUID_H */
This page took 0.037957 seconds and 4 git commands to generate.