diff options
author | Thomas Haller <thaller@redhat.com> | 2018-10-31 10:38:01 +0100 |
---|---|---|
committer | Thomas Haller <thaller@redhat.com> | 2018-10-31 11:34:31 +0100 |
commit | 01239e99d7ded2279a82c6fbb9cb068804eaaf22 (patch) | |
tree | 715b80dbacef9b2be013e5a8566de9397ae674ed | |
parent | 4db431191cd095ab0584212b59f1c2b9d9201fd2 (diff) | |
download | NetworkManager-01239e99d7ded2279a82c6fbb9cb068804eaaf22.tar.gz |
libnm: add nm_utils_uuid_is_null() helper
-rw-r--r-- | libnm-core/nm-core-internal.h | 2 | ||||
-rw-r--r-- | libnm-core/nm-utils.c | 15 | ||||
-rw-r--r-- | libnm-core/tests/test-general.c | 19 |
3 files changed, 36 insertions, 0 deletions
diff --git a/libnm-core/nm-core-internal.h b/libnm-core/nm-core-internal.h index 80d00d90a6..bd004d195e 100644 --- a/libnm-core/nm-core-internal.h +++ b/libnm-core/nm-core-internal.h @@ -295,6 +295,8 @@ char *_nm_utils_uuid_unparse (const NMUuid *uuid, char *out_str /*[37]*/); NMUuid *_nm_utils_uuid_generate_random (NMUuid *out_uuid); +gboolean nm_utils_uuid_is_null (const NMUuid *uuid); + #define NM_UTILS_UUID_TYPE_LEGACY 0 #define NM_UTILS_UUID_TYPE_VERSION3 3 #define NM_UTILS_UUID_TYPE_VERSION5 5 diff --git a/libnm-core/nm-utils.c b/libnm-core/nm-utils.c index abdf80474a..6504158a53 100644 --- a/libnm-core/nm-utils.c +++ b/libnm-core/nm-utils.c @@ -2821,6 +2821,21 @@ _nm_utils_uuid_generate_random (NMUuid *out_uuid) return out_uuid; } +gboolean +nm_utils_uuid_is_null (const NMUuid *uuid) +{ + int i; + + if (!uuid) + return TRUE; + + for (i = 0; i < G_N_ELEMENTS (uuid->uuid); i++) { + if (uuid->uuid[i]) + return FALSE; + } + return TRUE; +} + /** * nm_utils_uuid_generate_buf_: * @buf: input buffer, must contain at least 37 bytes diff --git a/libnm-core/tests/test-general.c b/libnm-core/tests/test-general.c index 0f0b1c5278..67b80098a6 100644 --- a/libnm-core/tests/test-general.c +++ b/libnm-core/tests/test-general.c @@ -5445,6 +5445,16 @@ test_nm_strquote (void) #define UUID_NS_OID "6ba7b812-9dad-11d1-80b4-00c04fd430c8" #define UUID_NS_X500 "6ba7b814-9dad-11d1-80b4-00c04fd430c8" +static const NMUuid * +_uuid (const char *str) +{ + static NMUuid u; + + g_assert (str); + g_assert (_nm_utils_uuid_parse (str, &u)); + return &u; +} + static void _test_uuid (int uuid_type, const char *expected_uuid, const char *str, gssize slen, gpointer type_args) { @@ -5677,6 +5687,15 @@ __test_uuid (const char *expected_uuid, const char *str, gssize slen, char *uuid static void test_nm_utils_uuid_generate_from_strings (void) { + const NMUuid uuid0 = { 0 }; + + g_assert_cmpmem (&uuid0, sizeof (uuid0), _uuid ("00000000-0000-0000-0000-000000000000"), 16); + + g_assert (nm_utils_uuid_is_null (NULL)); + g_assert (nm_utils_uuid_is_null (&uuid0)); + g_assert ( nm_utils_uuid_is_null (_uuid ("00000000-0000-0000-0000-000000000000"))); + g_assert (!nm_utils_uuid_is_null (_uuid ("10000000-0000-0000-0000-000000000000"))); + _test_uuid ("b07c334a-399b-32de-8d50-58e4e08f98e3", "", 0, NULL); _test_uuid ("b8a426cb-bcb5-30a3-bd8f-6786fea72df9", "\0", 1, ""); _test_uuid ("12a4a982-7aae-39e1-951e-41aeb1250959", "a\0", 2, "a"); |