From bef4c7a13491d04ab6ffd0ca270eed90efc9d56c Mon Sep 17 00:00:00 2001 From: =?utf8?q?J=C3=A9r=C3=A9mie=20Galarneau?= Date: Wed, 12 Dec 2018 15:10:36 -0500 Subject: [PATCH] Add an internal uuid formatting utility MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit Signed-off-by: Jérémie Galarneau --- src/common/compat/Makefile.am | 2 +- src/common/compat/uuid.c | 29 +++++++++++++++++++++++++++++ src/common/compat/uuid.h | 11 +++++++++++ 3 files changed, 41 insertions(+), 1 deletion(-) create mode 100644 src/common/compat/uuid.c diff --git a/src/common/compat/Makefile.am b/src/common/compat/Makefile.am index c5418baeb..82c74eedf 100644 --- a/src/common/compat/Makefile.am +++ b/src/common/compat/Makefile.am @@ -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 index 000000000..8759de6f5 --- /dev/null +++ b/src/common/compat/uuid.c @@ -0,0 +1,29 @@ +/* + * Copyright (C) 2018 - Jérémie Galarneau + * + * 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 +#include + +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]); +} diff --git a/src/common/compat/uuid.h b/src/common/compat/uuid.h index 4a71f16c8..dcc4ed560 100644 --- a/src/common/compat/uuid.h +++ b/src/common/compat/uuid.h @@ -23,6 +23,8 @@ #ifndef LTTNG_UUID_H #define LTTNG_UUID_H +#include + /* * 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 */ -- 2.34.1