From e8c6b7d3a2dd6904341c7348a5a8fe90e69b5942 Mon Sep 17 00:00:00 2001
From: Nicolas Pope <nwpope@utu.fi>
Date: Mon, 1 Jul 2019 11:24:19 +0300
Subject: [PATCH] Correct UUID to string

---
 components/net/cpp/include/ftl/uuid.hpp | 34 ++++++++++++++++++++++---
 1 file changed, 30 insertions(+), 4 deletions(-)

diff --git a/components/net/cpp/include/ftl/uuid.hpp b/components/net/cpp/include/ftl/uuid.hpp
index 836e8f495..99f0626e6 100644
--- a/components/net/cpp/include/ftl/uuid.hpp
+++ b/components/net/cpp/include/ftl/uuid.hpp
@@ -61,11 +61,37 @@ namespace ftl {
 		 */
 		std::string to_string() const {
 			static const char *digits = "0123456789abcdef";
-			std::string rc(sizeof(uuid_)*2,'0');
+			std::string rc(sizeof(uuid_)*2+4,'0');
 
-			for (size_t i=0 ; i<16; ++i) {
-				rc[i*2] = digits[uuid_[i] & 0x0f];
-				rc[i*2+1] = digits[(uuid_[i] >> 4) & 0x0f];
+			size_t j=0;
+			for (size_t i=0 ; i<4; ++i) {
+				rc[j+1] = digits[uuid_[i] & 0x0f];
+				rc[j] = digits[(uuid_[i] >> 4) & 0x0f];
+				j+=2;
+			}
+			rc[j++] = '-';
+			for (size_t i=4 ; i<6; ++i) {
+				rc[j+1] = digits[uuid_[i] & 0x0f];
+				rc[j] = digits[(uuid_[i] >> 4) & 0x0f];
+				j+=2;
+			}
+			rc[j++] = '-';
+			for (size_t i=6 ; i<8; ++i) {
+				rc[j+1] = digits[uuid_[i] & 0x0f];
+				rc[j] = digits[(uuid_[i] >> 4) & 0x0f];
+				j+=2;
+			}
+			rc[j++] = '-';
+			for (size_t i=8 ; i<10; ++i) {
+				rc[j+1] = digits[uuid_[i] & 0x0f];
+				rc[j] = digits[(uuid_[i] >> 4) & 0x0f];
+				j+=2;
+			}
+			rc[j++] = '-';
+			for (size_t i=10 ; i<16; ++i) {
+				rc[j+1] = digits[uuid_[i] & 0x0f];
+				rc[j] = digits[(uuid_[i] >> 4) & 0x0f];
+				j+=2;
 			}
 			return rc;
 /* 
-- 
GitLab