Fix the logic for identifying protocol and site name part of the URL to find the
first '/' after a '//', rather than the first '/' after a '.', to handle
sitenames which aren't FQDNs correctly

This makes non-FQDNs added to the mirror list display correctly.

2010-11-26  Jon TURNEY  <jon.tur...@dronecode.org.uk>

     * site.cc (init): Handle sitenames which aren't FQDNs correctly.

Signed-off-by: Jon TURNEY <jon.tur...@dronecode.org.uk>
---
 site.cc | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/site.cc b/site.cc
index e7d4113..48ec0aa 100644
--- a/site.cc
+++ b/site.cc
@@ -150,8 +150,11 @@ site_list_type::init (const string &_url, const string 
&_servername,
     url.append("/");
 
   /* displayed_url is protocol and site name part of url */
-  displayed_url = url.substr (0, url.find ("/", url.find (".")));
+  string::size_type path_offset = url.find ("/", url.find ("//") + 2);
+  displayed_url = url.substr(0, path_offset);
 
+  /* the sorting key is hostname components in reverse order (to sort by 
country code)
+     plus the url (to ensure uniqueness) */
   key = string();
   string::size_type last_idx = displayed_url.length () - 1;
   string::size_type idx = url.find_last_of("./", last_idx);
-- 
1.8.5.5

Reply via email to