mldonkey-commits
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Mldonkey-commits] mldonkey distrib/ChangeLog src/daemon/common/co...


From: mldonkey-commits
Subject: [Mldonkey-commits] mldonkey distrib/ChangeLog src/daemon/common/co...
Date: Sun, 04 Apr 2010 09:14:47 +0000

CVSROOT:        /sources/mldonkey
Module name:    mldonkey
Changes by:     spiralvoice <spiralvoice>       10/04/04 09:14:47

Modified files:
        distrib        : ChangeLog 
        src/daemon/common: commonOptions.ml 
        src/networks/direct_connect: dcInteractive.ml dcOptions.ml 
                                     dcServers.ml 

Log message:
        patch #7155

CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/mldonkey/distrib/ChangeLog?cvsroot=mldonkey&r1=1.1418&r2=1.1419
http://cvs.savannah.gnu.org/viewcvs/mldonkey/src/daemon/common/commonOptions.ml?cvsroot=mldonkey&r1=1.229&r2=1.230
http://cvs.savannah.gnu.org/viewcvs/mldonkey/src/networks/direct_connect/dcInteractive.ml?cvsroot=mldonkey&r1=1.34&r2=1.35
http://cvs.savannah.gnu.org/viewcvs/mldonkey/src/networks/direct_connect/dcOptions.ml?cvsroot=mldonkey&r1=1.10&r2=1.11
http://cvs.savannah.gnu.org/viewcvs/mldonkey/src/networks/direct_connect/dcServers.ml?cvsroot=mldonkey&r1=1.17&r2=1.18

Patches:
Index: distrib/ChangeLog
===================================================================
RCS file: /sources/mldonkey/mldonkey/distrib/ChangeLog,v
retrieving revision 1.1418
retrieving revision 1.1419
diff -u -b -r1.1418 -r1.1419
--- distrib/ChangeLog   2 Apr 2010 09:46:06 -0000       1.1418
+++ distrib/ChangeLog   4 Apr 2010 09:14:46 -0000       1.1419
@@ -14,6 +14,9 @@
 ChangeLog
 =========
 
+2010/04/04
+7155: DC: understand hublist.xml (ygrek)
+
 2010/04/02
 7151: BT: html ui tweaks (ygrek)
 

Index: src/daemon/common/commonOptions.ml
===================================================================
RCS file: /sources/mldonkey/mldonkey/src/daemon/common/commonOptions.ml,v
retrieving revision 1.229
retrieving revision 1.230
diff -u -b -r1.229 -r1.230
--- src/daemon/common/commonOptions.ml  20 Mar 2010 13:30:41 -0000      1.229
+++ src/daemon/common/commonOptions.ml  4 Apr 2010 09:14:46 -0000       1.230
@@ -1023,6 +1023,7 @@
   'ocl' for file in the ocl format containing overnet peers, or
   'contact.dat' for an contact.dat file containing overnet peers,
   'nodes.gzip' for a fasttrack nodes.gzip,
+  'hublist' for DirectConnect hubs list,
   and period is the period between updates (in hours),
   a period of zero means the file is only loaded once on startup,
   and url is the url of the file to download.
@@ -1030,7 +1031,7 @@
   EXAMPLE:
     web_infos = [
     (\"server.met\", 0, \"http://www.gruk.org/server.met.gz\";);
-    (\"hublist\", 0, \"http://dchublist.com/hublist.config.bz2\";);
+    (\"hublist\", 0, \"http://dchublist.com/hublist.xml.bz2\";);
     (\"guarding.p2p\", 96, \"http://www.bluetack.co.uk/config/level1.gz\";);
     (\"ocl\", 24, 
\"http://members.lycos.co.uk/appbyhp2/FlockHelpApp/contact-files/contact.ocl\";);
     (\"contact.dat\", 168, \"http://download.overnet.org/contact.dat\";);

Index: src/networks/direct_connect/dcInteractive.ml
===================================================================
RCS file: 
/sources/mldonkey/mldonkey/src/networks/direct_connect/dcInteractive.ml,v
retrieving revision 1.34
retrieving revision 1.35
diff -u -b -r1.34 -r1.35
--- src/networks/direct_connect/dcInteractive.ml        3 Aug 2007 22:11:46 
-0000       1.34
+++ src/networks/direct_connect/dcInteractive.ml        4 Apr 2010 09:14:47 
-0000       1.35
@@ -1567,8 +1567,10 @@
         begin
           try
             dc_hublist := (
-              match Filename2.last_extension filename with
-              | ".bz2" -> DcServers.make_hublist_from_file (Misc2.bz2_extract 
filename)
+              match List.rev (String2.split filename '.') with
+              | "bz2"::"xml"::_ -> DcServers.make_hublist_from_xml 
(Xml.parse_file (Misc2.bz2_extract filename))
+              | "xml"::_ -> DcServers.make_hublist_from_xml (Xml.parse_file 
filename)
+              | "bz2"::_ -> DcServers.make_hublist_from_file 
(Misc2.bz2_extract filename)
               | _ -> DcServers.make_hublist_from_file filename);
             lprintf_nl "loaded dc++ hublist, %d entries" (List.length 
!dc_hublist)
           with e -> 

Index: src/networks/direct_connect/dcOptions.ml
===================================================================
RCS file: /sources/mldonkey/mldonkey/src/networks/direct_connect/dcOptions.ml,v
retrieving revision 1.10
retrieving revision 1.11
diff -u -b -r1.10 -r1.11
--- src/networks/direct_connect/dcOptions.ml    1 Jul 2007 13:00:12 -0000       
1.10
+++ src/networks/direct_connect/dcOptions.ml    4 Apr 2010 09:14:47 -0000       
1.11
@@ -38,14 +38,6 @@
 let login = define_option directconnect_section ["login"]
     "Your login on DC (no spaces !!!)" string_option ""
 
-(*let load_hublist = define_option directconnect_section ["load_hublist"]
-    "Download a list of servers"
-    bool_option true *)
-  
-let servers_list_url = define_option directconnect_section ["servers_list_url"]
-    "The URL from which the first server list is downloaded"
-    string_option  "http://dchublist.com/hublist.config.bz2";
-  
 let hubs_passwords = define_option directconnect_section ["hubs_passwords"]
     "Define here a list of address/passwords/nick triples for hubs in form:
     [ (\"hubserver.ip.com\", \"nick1\", \"pass1\");
@@ -122,7 +114,6 @@
   [
     "Login (nothing for global one)", shortname login, "T";
     "Port", shortname dc_port, "T";
-    "Hub List URL", shortname servers_list_url, "T";
     "Search Timeout", shortname search_timeout, "T";
     "Firewalled", shortname firewalled, "B";
     "Connection Type", shortname client_speed, "T";

Index: src/networks/direct_connect/dcServers.ml
===================================================================
RCS file: /sources/mldonkey/mldonkey/src/networks/direct_connect/dcServers.ml,v
retrieving revision 1.17
retrieving revision 1.18
diff -u -b -r1.17 -r1.18
--- src/networks/direct_connect/dcServers.ml    2 Jan 2008 16:15:53 -0000       
1.17
+++ src/networks/direct_connect/dcServers.ml    4 Apr 2010 09:14:47 -0000       
1.18
@@ -559,6 +559,40 @@
   if !verbose_msg_servers then lprintf_nl "Found %d valid servers from 
hublist" !counter;
   !hublist
 
+let xml_tag name = let name = String.lowercase name in fun x -> 
String.lowercase (Xml.tag x) = name
+
+let rec xml_select names xs =
+  match names with
+  | [] -> xs
+  | [name] -> List.filter (xml_tag name) xs
+  | name::t ->
+    let l = List.filter (xml_tag name) xs in
+    xml_select t (List.concat (List.map Xml.children l))
+
+let parse_address s =
+  try Scanf.sscanf s "dchub://%s@:%u" (fun s n -> s,n)
+  with _ -> try Scanf.sscanf s "%s@:%u" (fun s n -> s,n) with _ -> s,411
+
+let make_hublist_from_xml x =
+  let make_hub x =
+    let name = Charset.to_utf8 (Xml.attrib x "Name") in
+    let (address,port) = parse_address (Xml.attrib x "Address") in
+    let info = Charset.to_utf8 (Xml.attrib x "Description") in
+    let nusers = int_of_string (Xml.attrib x "Users") in
+    {
+      dc_name = name;
+      dc_ip = Ip.addr_of_string address;
+      dc_port = port;
+      dc_info = info;
+      dc_nusers = nusers;
+    }
+  in
+  let l = xml_select ["hublist";"hubs";"hub"] [x] in
+  let l' = List.fold_left (fun acc x -> try make_hub x :: acc with _ -> acc) 
[] l in
+  if !verbose_msg_servers then
+    lprintf_nl "Found %u valid (of %u total) servers in hublist" (List.length 
l') (List.length l);
+  l'
+
 (* Connect to all autoconnect servers once *)  
 let autoconnect_to_servers () =
   Hashtbl.iter (fun _ s ->




reply via email to

[Prev in Thread] Current Thread [Next in Thread]