--- a/wsd.c	2018-07-24
+++ b/wsd.c	2018-09-10
@@ -96,13 +96,19 @@ static void uuid_endpoint(char *uuid, si
 {
 	FILE *fp = fopen("/etc/machine-id", "r");
 	int c, i = 0;
+	
+	if (!fp) {
+		fp = fopen("/proc/sys/kernel/random/boot_id", "r");
+	}
 
-	if (!fp)
+	if (!fp) {
+		DEBUG(0, W, "Can't open required '/etc/machine-id' or '/proc/sys/kernel/random/boot_id'");
 		return;
+	}
 
 	while (i < 36 && (c = getc(fp)) != EOF &&
-		(isdigit(c) || (islower(c) && isxdigit(c)))) {
-		if (i == 8 || i == 13 || i == 18 || i == 23)
+		((c == '-') || isdigit(c) || (islower(c) && isxdigit(c)))) {
+		if ((c != '-') && (i == 8 || i == 13 || i == 18 || i == 23))
 			uuid[i++] = '-';
 		uuid[i++] = c;
 	}
