diff --git a/src/daemon/machine-guid.c b/src/daemon/machine-guid.c index 963bd239bc..6af4c3f988 100644 --- a/src/daemon/machine-guid.c +++ b/src/daemon/machine-guid.c @@ -168,7 +168,7 @@ static ND_MACHINE_GUID machine_guid_get_or_create(void) { if (UUIDiszero(h.uuid)) { // If the status file does not contain a GUID, generate a new one. nd_log(NDLS_DAEMON, NDLP_INFO, "MACHINE_GUID: generating a new GUID"); - uuid_generate_time(h.uuid.uuid); + uuid_generate(h.uuid.uuid); } else nd_log(NDLS_DAEMON, NDLP_INFO, "MACHINE_GUID: got previous GUID from daemon status file"); diff --git a/src/libnetdata/os/uuid_generate.c b/src/libnetdata/os/uuid_generate.c index 6019f88444..466b53020b 100644 --- a/src/libnetdata/os/uuid_generate.c +++ b/src/libnetdata/os/uuid_generate.c @@ -29,6 +29,8 @@ void os_uuid_generate_time(void *out) { #endif void os_uuid_generate(void *out) { + // IMPORTANT: this generates a UUIDv4, which is random + // and falls back to uuid_generate_time() if high resolution random generated is not available uuid_generate(out); } @@ -37,6 +39,7 @@ void os_uuid_generate_random(void *out) { } void os_uuid_generate_time(void *out) { + // IMPORTANT: this generates a UUIDv1, which is not random and may suffer from collisions uuid_generate_time(out); } diff --git a/src/web/api/v1/api_v1_manage.c b/src/web/api/v1/api_v1_manage.c index a7f67304f7..a1a0e03872 100644 --- a/src/web/api/v1/api_v1_manage.c +++ b/src/web/api/v1/api_v1_manage.c @@ -35,7 +35,7 @@ static char *get_mgmt_api_key(void) { if(!guid[0]) { nd_uuid_t uuid; - uuid_generate_time(uuid); + uuid_generate(uuid); uuid_unparse_lower(uuid, guid); guid[GUID_LEN] = '\0';