From efb8976193d455255fa2e7fad7ea6722be780ef3 Mon Sep 17 00:00:00 2001
From: Adrien Beraud <adrien.beraud@savoirfairelinux.com>
Date: Tue, 7 Jan 2025 14:04:23 -0500
Subject: [PATCH] namedirectory: add default scheme, use canonical name

Change-Id: Ia2858d7dab79954312b657ea4380f0ea65bfa640
---
 src/jamidht/namedirectory.cpp | 11 ++++++++++-
 1 file changed, 10 insertions(+), 1 deletion(-)

diff --git a/src/jamidht/namedirectory.cpp b/src/jamidht/namedirectory.cpp
index 5347837b0..6d8ae56e5 100644
--- a/src/jamidht/namedirectory.cpp
+++ b/src/jamidht/namedirectory.cpp
@@ -122,10 +122,19 @@ NameDirectory::load()
     loadCache();
 }
 
+std::string
+canonicalName(const std::string& url) {
+    std::string name = url;
+    std::transform(name.begin(), name.end(), name.begin(), ::tolower);
+    if (name.find("://") == std::string::npos)
+        name = "https://" + name;
+    return name;
+}
+
 NameDirectory&
 NameDirectory::instance(const std::string& serverUrl, std::shared_ptr<dht::Logger> l)
 {
-    const std::string& s = serverUrl.empty() ? DEFAULT_SERVER_HOST : serverUrl;
+    const std::string& s = serverUrl.empty() ? DEFAULT_SERVER_HOST : canonicalName(serverUrl);
     static std::mutex instanceMtx {};
 
     std::lock_guard lock(instanceMtx);
-- 
GitLab