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: Mon, 10 Apr 2006 19:16:36 +0000

CVSROOT:        /sources/mldonkey
Module name:    mldonkey
Branch:         
Changes by:     spiralvoice <address@hidden>    06/04/10 19:16:36

Modified files:
        distrib        : ChangeLog 
        src/daemon/common: commonOptions.ml 
        src/networks/direct_connect: dcClients.ml dcInteractive.ml 
                                     dcServers.ml 
        src/networks/fileTP: fileTPGlobals.ml fileTPInteractive.ml 
        src/networks/opennap: napigator.mll opennapClients.ml 
                              opennapGlobals.ml opennapInteractive.ml 
                              opennapServers.ml 
        src/networks/soulseek: slskClients.ml slskComplexOptions.ml 
                               slskGlobals.ml slskInteractive.ml 
                               slskMain.ml slskServers.ml slskTypes.ml 

Log message:
        patch #5035

CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/mldonkey/mldonkey/distrib/ChangeLog.diff?tr1=1.797&tr2=1.798&r1=text&r2=text
http://cvs.savannah.gnu.org/viewcvs/mldonkey/mldonkey/src/daemon/common/commonOptions.ml.diff?tr1=1.138&tr2=1.139&r1=text&r2=text
http://cvs.savannah.gnu.org/viewcvs/mldonkey/mldonkey/src/networks/direct_connect/dcClients.ml.diff?tr1=1.11&tr2=1.12&r1=text&r2=text
http://cvs.savannah.gnu.org/viewcvs/mldonkey/mldonkey/src/networks/direct_connect/dcInteractive.ml.diff?tr1=1.25&tr2=1.26&r1=text&r2=text
http://cvs.savannah.gnu.org/viewcvs/mldonkey/mldonkey/src/networks/direct_connect/dcServers.ml.diff?tr1=1.14&tr2=1.15&r1=text&r2=text
http://cvs.savannah.gnu.org/viewcvs/mldonkey/mldonkey/src/networks/fileTP/fileTPGlobals.ml.diff?tr1=1.21&tr2=1.22&r1=text&r2=text
http://cvs.savannah.gnu.org/viewcvs/mldonkey/mldonkey/src/networks/fileTP/fileTPInteractive.ml.diff?tr1=1.34&tr2=1.35&r1=text&r2=text
http://cvs.savannah.gnu.org/viewcvs/mldonkey/mldonkey/src/networks/opennap/napigator.mll.diff?tr1=1.4&tr2=1.5&r1=text&r2=text
http://cvs.savannah.gnu.org/viewcvs/mldonkey/mldonkey/src/networks/opennap/opennapClients.ml.diff?tr1=1.9&tr2=1.10&r1=text&r2=text
http://cvs.savannah.gnu.org/viewcvs/mldonkey/mldonkey/src/networks/opennap/opennapGlobals.ml.diff?tr1=1.11&tr2=1.12&r1=text&r2=text
http://cvs.savannah.gnu.org/viewcvs/mldonkey/mldonkey/src/networks/opennap/opennapInteractive.ml.diff?tr1=1.22&tr2=1.23&r1=text&r2=text
http://cvs.savannah.gnu.org/viewcvs/mldonkey/mldonkey/src/networks/opennap/opennapServers.ml.diff?tr1=1.12&tr2=1.13&r1=text&r2=text
http://cvs.savannah.gnu.org/viewcvs/mldonkey/mldonkey/src/networks/soulseek/slskClients.ml.diff?tr1=1.12&tr2=1.13&r1=text&r2=text
http://cvs.savannah.gnu.org/viewcvs/mldonkey/mldonkey/src/networks/soulseek/slskComplexOptions.ml.diff?tr1=1.6&tr2=1.7&r1=text&r2=text
http://cvs.savannah.gnu.org/viewcvs/mldonkey/mldonkey/src/networks/soulseek/slskGlobals.ml.diff?tr1=1.12&tr2=1.13&r1=text&r2=text
http://cvs.savannah.gnu.org/viewcvs/mldonkey/mldonkey/src/networks/soulseek/slskInteractive.ml.diff?tr1=1.20&tr2=1.21&r1=text&r2=text
http://cvs.savannah.gnu.org/viewcvs/mldonkey/mldonkey/src/networks/soulseek/slskMain.ml.diff?tr1=1.11&tr2=1.12&r1=text&r2=text
http://cvs.savannah.gnu.org/viewcvs/mldonkey/mldonkey/src/networks/soulseek/slskServers.ml.diff?tr1=1.11&tr2=1.12&r1=text&r2=text
http://cvs.savannah.gnu.org/viewcvs/mldonkey/mldonkey/src/networks/soulseek/slskTypes.ml.diff?tr1=1.8&tr2=1.9&r1=text&r2=text

Patches:
Index: mldonkey/distrib/ChangeLog
diff -u mldonkey/distrib/ChangeLog:1.797 mldonkey/distrib/ChangeLog:1.798
--- mldonkey/distrib/ChangeLog:1.797    Mon Apr 10 17:06:43 2006
+++ mldonkey/distrib/ChangeLog  Mon Apr 10 19:16:36 2006
@@ -15,6 +15,9 @@
 =========
 
 2006/04/10
+5035: Make Soulseek, Opennapster, DirectConnect compilable again
+  This does not mean the network modules work again,
+  they only compile again. More work is needed.
 5032: CommonSwarming/WIP2: Some function rewrites and comments (pango)
 
 2006/04/09
Index: mldonkey/src/daemon/common/commonOptions.ml
diff -u mldonkey/src/daemon/common/commonOptions.ml:1.138 
mldonkey/src/daemon/common/commonOptions.ml:1.139
--- mldonkey/src/daemon/common/commonOptions.ml:1.138   Sat Apr  8 01:27:29 2006
+++ mldonkey/src/daemon/common/commonOptions.ml Mon Apr 10 19:16:36 2006
@@ -850,6 +850,10 @@
       "http://download.overnet.org/contact.dat";);
     ("geoip.dat", 0,
       "http://www.maxmind.com/download/geoip/database/GeoIP.dat.gz";);
+(*
+    ("slsk_boot", 0,
+      "http://www.slsknet.org/slskinfo2";);
+*)
   ]
 
 let rss_feeds = define_expert_option current_section ["rss_feeds"]
Index: mldonkey/src/networks/direct_connect/dcClients.ml
diff -u mldonkey/src/networks/direct_connect/dcClients.ml:1.11 
mldonkey/src/networks/direct_connect/dcClients.ml:1.12
--- mldonkey/src/networks/direct_connect/dcClients.ml:1.11      Sun Oct 16 
20:42:54 2005
+++ mldonkey/src/networks/direct_connect/dcClients.ml   Mon Apr 10 19:16:36 2006
@@ -19,6 +19,7 @@
 
 open CommonInteractive
 open Printf2
+open Int64ops
 open CommonUploads
 open CommonInteractive
 
Index: mldonkey/src/networks/direct_connect/dcInteractive.ml
diff -u mldonkey/src/networks/direct_connect/dcInteractive.ml:1.25 
mldonkey/src/networks/direct_connect/dcInteractive.ml:1.26
--- mldonkey/src/networks/direct_connect/dcInteractive.ml:1.25  Sun Apr  9 
00:27:03 2006
+++ mldonkey/src/networks/direct_connect/dcInteractive.ml       Mon Apr 10 
19:16:36 2006
@@ -158,7 +158,7 @@
             let addr = Ip.addr_of_string addr in
             addr, port
           in
-          let s = new_server addr port in
+          ignore (new_server addr port);
           "", true
       | "dc://" :: "friend" :: nick :: [] ->  
           let c = new_client nick in
@@ -356,25 +356,14 @@
   
 let _ =
   client_ops.op_client_info <- (fun c ->
-      {
+      { (impl_client_info c.client_client) with
         P.client_network = network.network_num;
-        P.client_kind = Indirect_location (c.client_name, Md4.null);
+        P.client_kind = Indirect_location (c.client_name, Md4.null, Ip.null, 
0);
         P.client_state = client_state (as_client c.client_client);
         P.client_type = client_type c;
-        P.client_tags = [];
         P.client_name = c.client_name;
-        P.client_files = None;
         P.client_num = (client_num (as_client c.client_client));
-        P.client_rating = 0;
-        P.client_chat_port = 0 ;
         P.client_connect_time = last_time ();
-        P.client_software = "";
-        P.client_release = "";
-        P.client_emulemod = "";
-        P.client_downloaded = zero;
-        P.client_uploaded = zero;
-        P.client_upload = None;
-(*     P.client_sock_addr = ""; *)
       }
   );
   client_ops.op_client_browse <- (fun c immediate ->
Index: mldonkey/src/networks/direct_connect/dcServers.ml
diff -u mldonkey/src/networks/direct_connect/dcServers.ml:1.14 
mldonkey/src/networks/direct_connect/dcServers.ml:1.15
--- mldonkey/src/networks/direct_connect/dcServers.ml:1.14      Sun Dec 18 
14:50:38 2005
+++ mldonkey/src/networks/direct_connect/dcServers.ml   Mon Apr 10 19:16:36 2006
@@ -514,6 +514,7 @@
           s.server_name <- server_name;
           s.server_info <- server_info;
           (try s.server_nusers <- Int64.of_string server_nusers with _ -> ());
+         server_must_update s
       | _ -> 
           lprintf "Bad line [%s]" s; lprint_newline ();      
   ) lines;
@@ -530,21 +531,15 @@
   
 let _ =
   server_ops.op_server_info <- (fun s ->
-        {
+        { (impl_server_info s.server_server) with
           P.server_num = (server_num s);
           P.server_network = network.network_num;
           P.server_addr = s.server_addr;
           P.server_port = s.server_port;
-         P.server_realport = 0;
-          P.server_score = 0;
-          P.server_tags = [];
           P.server_nusers = s.server_nusers;
-          P.server_nfiles = Int64.zero;
           P.server_state = server_state s;
           P.server_name = s.server_name;
           P.server_description = s.server_info;
-          P.server_users = None;
-          P.server_banner = "";
           P.server_preferred = false;
         }
 )
Index: mldonkey/src/networks/fileTP/fileTPGlobals.ml
diff -u mldonkey/src/networks/fileTP/fileTPGlobals.ml:1.21 
mldonkey/src/networks/fileTP/fileTPGlobals.ml:1.22
--- mldonkey/src/networks/fileTP/fileTPGlobals.ml:1.21  Sun Apr  9 00:27:04 2006
+++ mldonkey/src/networks/fileTP/fileTPGlobals.ml       Mon Apr 10 19:16:36 2006
@@ -128,19 +128,6 @@
           file_must_update (as_file file);
       );
       file_must_update (as_file file)
-      (*
-      CommonSwarming.set_writer swarmer (fun offset s pos len ->
-
-(*
-      lprintf "DOWNLOADED: %d/%d/%d\n" pos len (String.length s);
-      AnyEndian.dump_sub s pos len;
-*)
-
-          if !!CommonOptions.buffer_writes then
-            Unix32.buffered_write_copy (file_fd file) offset s pos len
-          else
-            Unix32.write  (file_fd file) offset s pos len
-      ) *)
     end
 
 let new_file file_id file_name file_size =
@@ -173,8 +160,6 @@
 (*      lprintf "ADD FILE TO DOWNLOAD LIST\n"; *)
   file
 
-exception FileFound of file
-
 let new_file file_id file_name file_size =
   try
     Hashtbl.find files_by_uid file_id
Index: mldonkey/src/networks/fileTP/fileTPInteractive.ml
diff -u mldonkey/src/networks/fileTP/fileTPInteractive.ml:1.34 
mldonkey/src/networks/fileTP/fileTPInteractive.ml:1.35
--- mldonkey/src/networks/fileTP/fileTPInteractive.ml:1.34      Sun Apr  9 
00:27:04 2006
+++ mldonkey/src/networks/fileTP/fileTPInteractive.ml   Mon Apr 10 19:16:36 2006
@@ -111,28 +111,18 @@
 
 let _ =
   client_ops.op_client_info <- (fun c ->
-      {
+      { (impl_client_info c.client_client) with
         P.client_network = network.network_num;
         P.client_kind = Known_location (Ip.from_name c.client_hostname,
           c.client_port);
         P.client_state = client_state (as_client c);
         P.client_type = client_type c;
-        P.client_tags = [];
         P.client_name = (Printf.sprintf "%s:%d"
           c.client_hostname c.client_port);
-        P.client_files = None;
         P.client_num = (client_num (as_client c));
-        P.client_rating = 0;
-        P.client_chat_port = 0 ;
         P.client_connect_time = BasicSocket.last_time ();
         P.client_software = "TP";
-        P.client_release = "";
-        P.client_emulemod = "";
         P.client_downloaded = c.client_downloaded;
-        P.client_uploaded = zero;
-        P.client_upload = None;
-        P.client_sui_verified = None;
-(*             P.client_sock_addr = (; *)
       }
   );
     client_ops.op_client_bprint <- (fun c buf ->
Index: mldonkey/src/networks/opennap/napigator.mll
diff -u mldonkey/src/networks/opennap/napigator.mll:1.4 
mldonkey/src/networks/opennap/napigator.mll:1.5
--- mldonkey/src/networks/opennap/napigator.mll:1.4     Tue Sep  6 11:25:00 2005
+++ mldonkey/src/networks/opennap/napigator.mll Mon Apr 10 19:16:36 2006
@@ -174,7 +174,7 @@
 open TcpBufferedSocket
   
 let load_servers_list url f =
-  lprintf "QUERY URL %s\n" url;
+  lprintf_nl "QUERY URL %s\n" url;
   CommonWeb.mldonkey_wget url (fun filename ->
     f (translate (File.to_string filename)))
 
Index: mldonkey/src/networks/opennap/opennapClients.ml
diff -u mldonkey/src/networks/opennap/opennapClients.ml:1.9 
mldonkey/src/networks/opennap/opennapClients.ml:1.10
--- mldonkey/src/networks/opennap/opennapClients.ml:1.9 Sun Oct 16 20:42:54 2005
+++ mldonkey/src/networks/opennap/opennapClients.ml     Mon Apr 10 19:16:36 2006
@@ -18,6 +18,7 @@
 *)
 
 open Printf2
+open Int64ops
 open CommonInteractive
 open CommonFile
 open CommonComplexOptions
Index: mldonkey/src/networks/opennap/opennapGlobals.ml
diff -u mldonkey/src/networks/opennap/opennapGlobals.ml:1.11 
mldonkey/src/networks/opennap/opennapGlobals.ml:1.12
--- mldonkey/src/networks/opennap/opennapGlobals.ml:1.11        Mon Jan  9 
00:25:59 2006
+++ mldonkey/src/networks/opennap/opennapGlobals.ml     Mon Apr 10 19:16:36 2006
@@ -187,7 +187,7 @@
           (Printf.sprintf "ON-%s" (Md4.to_string file_id)) in
       let t = Unix32.create_rw file_temp in
       let current_size = try
-          Unix32.getsize file_temp true
+          Unix32.getsize file_temp
         with e ->
             lprintf "Exception %s in current_size\n" (Printexc2.to_string e); 
             Int64.zero
Index: mldonkey/src/networks/opennap/opennapInteractive.ml
diff -u mldonkey/src/networks/opennap/opennapInteractive.ml:1.22 
mldonkey/src/networks/opennap/opennapInteractive.ml:1.23
--- mldonkey/src/networks/opennap/opennapInteractive.ml:1.22    Mon Jan 16 
16:05:14 2006
+++ mldonkey/src/networks/opennap/opennapInteractive.ml Mon Apr 10 19:16:36 2006
@@ -132,7 +132,7 @@
       file_cancel (as_file file.file_file)
   );
   file_ops.op_file_info <- (fun file ->
-      {
+      { (impl_file_info file.file_file) with
         P.file_fields = P.Fields_file_info.all;
         
         P.file_comment = file_comment (as_file file.file_file);
@@ -143,27 +143,19 @@
         P.file_md4 = file.file_id;
         P.file_size = file_size file;
         P.file_downloaded = file_downloaded file;
-        P.file_all_sources = 0;
-        P.file_active_sources = 0;
         P.file_state = file_state file;
-        P.file_sources = None;
-        P.file_download_rate = 0.0;
         P.file_chunks = "0";
         P.file_availability = [network.network_num, "0"];
         P.file_format = FormatUnknown;
         P.file_chunks_age = [|0 |];
-        P.file_age = 0;
         P.file_last_seen = BasicSocket.last_time ();
         P.file_priority = file_priority (as_file file.file_file);
-        P.file_uids = [];
-        P.file_sub_files = [];
         }    
   )
   
 let _ =
   server_ops.op_server_info <- (fun s ->
       { (impl_server_info s.server_server) with
-
         P.server_network = network.network_num;
         P.server_addr = Ip.addr_of_ip s.server_ip;
         P.server_port = s.server_port;
@@ -230,26 +222,14 @@
   
 let _ =
   client_ops.op_client_info <- (fun c ->
-      {
+      {(impl_client_info c.client_client) with
         P.client_network = network.network_num;
-        P.client_kind = Indirect_location (c.client_name, Md4.null, _, _);
+        P.client_kind = Indirect_location (c.client_name, Md4.null, Ip.null, 
0);
         P.client_state = client_state (as_client c.client_client);
         P.client_type = client_type c;
-        P.client_tags = [];
         P.client_name = c.client_name;
-        P.client_files = None;
         P.client_num = (client_num (as_client c.client_client));
-        P.client_rating = 0;
-        P.client_chat_port = 0 ;
         P.client_connect_time = BasicSocket.last_time ();
-        P.client_software = "";
-        P.client_release = "";
-        P.client_emulemod = "";
-        P.client_downloaded = zero;
-        P.client_uploaded = zero;
-        P.client_upload = None;
-       P.client_sui_verified = None;
-(*        P.client_sock_addr = ""; *)
       }
   );
   client_ops.op_client_browse <- (fun c immediate ->
Index: mldonkey/src/networks/opennap/opennapServers.ml
diff -u mldonkey/src/networks/opennap/opennapServers.ml:1.12 
mldonkey/src/networks/opennap/opennapServers.ml:1.13
--- mldonkey/src/networks/opennap/opennapServers.ml:1.12        Sun Dec 18 
14:50:38 2005
+++ mldonkey/src/networks/opennap/opennapServers.ml     Mon Apr 10 19:16:36 2006
@@ -256,9 +256,6 @@
       lprintf "SERVER %s:%d %s\n" (Ip.to_string s.server_ip) 
       s.server_port s.server_net; 
       lprintf "ERROR FROM SERVER: %s\n" error; 
-(*      lprintf "SERVER %s:%d %s\n" (Ip.to_string s.server_ip) 
-      s.server_port s.server_net; 
-lprintf "MESSAGE FROM SERVER: %s\n" error; *)
 
   | OP.MessageReq error -> 
       let msg = Printf.sprintf "From server %s [%s:%d]: %s\n"
@@ -267,7 +264,7 @@
 
     
   | OP.NickAlreadyUsedReq ->
-(*      lprintf "NICK NAME ALREADY USED %d\n" s.server_nick;    *)
+(*      lprintf "NICK NAME ALREADY USED %d\n" s.server_nick; *)
       try_login_on_server s sock;
 (*
       s.server_nick <- s.server_nick + 1;
@@ -279,12 +276,12 @@
       ()
       
   | OP.NickUnusedReq ->
-(*      lprintf "NICK NAME ACCEPTED\n"; *)
+      lprintf "NICK NAME ACCEPTED\n";
       login_on_server s sock
       
   | OP.LoginAckReq mail ->
       set_rtimeout sock DG.half_day;
-(*      lprintf "*****  CONNECTED %s  ******\n" mail; *)
+      lprintf "*****  CONNECTED %s  ******\n" mail;
       set_server_state s (Connected (-1));
       connected_servers := s :: !connected_servers;
       
@@ -318,6 +315,7 @@
       s.server_nfiles <- Int64.of_int t.SS.files;
       s.server_nusers <- Int64.of_int t.SS.users;
       s.server_size <- t.SS.size;
+      server_must_update (as_server s.server_server)
       
   | OP.SearchReplyReq t ->
       lprintf "***  SearchReplyReq ***\n"; 
@@ -521,14 +519,18 @@
   network.op_network_update_options <- (fun _ -> ());
   network.op_network_save_sources <- (fun _ -> ())
 
-  (*
-          If you run a packet sniffer on WPNP (WinMX Peer Network Protocol) 
packets, it will soon become apparent that these packets are not transmitted in 
cleartext. For instance, search terms cannot directly be found 
-in the packet stream.
-
-The reason for this is that the packets are encoded using a simple XOR based 
algorithm. It cannot really be called encryption, since there is no key except 
packet length.
-
-The encoding algorithm in question first xors the first byte with the last, 
then repeatedly xors a byte with its preceding byte, moving from the 
next-to-first byte to the last one, one byte at a time. This is 
-done five times. The procedure varies slightly the first time, where the first 
byte is not XORed with the last byte, but rather with the packet[1] length.
+(*
+If you run a packet sniffer on WPNP (WinMX Peer Network Protocol) packets,
+it will soon become apparent that these packets are not transmitted in 
cleartext.
+For instance, search terms cannot directly be found in the packet stream.
+
+The reason for this is that the packets are encoded using a simple XOR based 
algorithm.
+It cannot really be called encryption, since there is no key except packet 
length.
+
+The encoding algorithm in question first xors the first byte with the last, 
then repeatedly
+xors a byte with its preceding byte, moving from the next-to-first byte to the 
last one,
+one byte at a time. This is done five times. The procedure varies slightly the 
first time,
+where the first byte is not XORed with the last byte, but rather with the 
packet[1] length.
 *)
 
 external winmx_encode : string -> int -> unit = "winmx_encode_ml"
Index: mldonkey/src/networks/soulseek/slskClients.ml
diff -u mldonkey/src/networks/soulseek/slskClients.ml:1.12 
mldonkey/src/networks/soulseek/slskClients.ml:1.13
--- mldonkey/src/networks/soulseek/slskClients.ml:1.12  Mon Nov  1 11:23:02 2004
+++ mldonkey/src/networks/soulseek/slskClients.ml       Mon Apr 10 19:16:36 2006
@@ -104,7 +104,7 @@
                   (Ip.to_inet_addr ip) port
                   (fun _ _ -> ())
               in
-              let  d = Download.new_download sock c file 1 in
+              let d = Download.new_download sock c file 1 in
               set_reader sock (Download.download_reader d);
               set_client_state c (Connected_downloading (file_num file));
               init_download_connection sock file (local_login()) req 
@@ -153,7 +153,6 @@
 (* Someone wants to upload to us !! *)
       begin
         try
-          let short_file_name = Filename2.basename file_name in
           let file = Hashtbl.find files_by_key (String.lowercase file_name) in
           
           lprintf "File Found"; lprint_newline ();
Index: mldonkey/src/networks/soulseek/slskComplexOptions.ml
diff -u mldonkey/src/networks/soulseek/slskComplexOptions.ml:1.6 
mldonkey/src/networks/soulseek/slskComplexOptions.ml:1.7
--- mldonkey/src/networks/soulseek/slskComplexOptions.ml:1.6    Thu Nov 20 
16:43:24 2003
+++ mldonkey/src/networks/soulseek/slskComplexOptions.ml        Mon Apr 10 
19:16:36 2006
@@ -29,10 +29,7 @@
 let servers = 
   define_option soulseek_section ["servers"]
     "" (list_option (tuple2_option (string_option, int_option))) 
-  (* this server is no more actual [ ("mail.slsk.org", 2240) ] *)
-  [
-    
-    ("server.slsknet.org", 2240) ]
+  [ ("server.slsknet.org", 2240) ]
   
 let save_config () =
   servers =:= List.map (fun s ->
Index: mldonkey/src/networks/soulseek/slskGlobals.ml
diff -u mldonkey/src/networks/soulseek/slskGlobals.ml:1.12 
mldonkey/src/networks/soulseek/slskGlobals.ml:1.13
--- mldonkey/src/networks/soulseek/slskGlobals.ml:1.12  Mon Jan  9 00:25:59 2006
+++ mldonkey/src/networks/soulseek/slskGlobals.ml       Mon Apr 10 19:16:36 2006
@@ -20,6 +20,7 @@
 open CommonInteractive
 open Printf2
 open Md4
+open Int64ops
 open CommonOptions
 open CommonResult
 open BasicSocket
@@ -35,6 +36,7 @@
 open CommonTypes
 open CommonShared
 open CommonServer
+open CommonSwarming
 open SlskOptions
 open SlskTypes
 
@@ -103,7 +105,7 @@
 
 let servers_by_addr = Hashtbl.create 13
   
-let new_server addr port=
+let new_server addr port =
   try
     Hashtbl.find servers_by_addr (addr, port) 
   with _ ->
@@ -247,41 +249,61 @@
 
 let current_files = ref []
 
-    
+let min_range_size = megabyte
+
+let new_file file_id name file_size =
+  let file_chunk_size =
+    max megabyte (
+      file_size // (max 5L (file_size // (megabytes 5)))
+    )
+  in
+  let file_temp = Filename.concat !!temp_directory 
+      (Printf.sprintf "SK-%s" (Md4.to_string file_id)) in
+  let current_size =
+    try
+      Unix32.getsize file_temp
+    with e -> Int64.zero
+  in
+
+  let t = Unix32.create_rw file_temp in
+  let rec file = {
+      file_file = file_impl;
+      file_id = file_id;
+      file_clients = [];
+      file_swarmer = None;
+    } and file_impl =  {
+      dummy_file_impl with
+      impl_file_fd = Some t;
+      impl_file_size = file_size;
+      impl_file_val = file;
+      impl_file_ops = file_ops;
+      impl_file_age = last_time ();
+      impl_file_best_name = name;
+    }
+  in
+  let state =
+    if current_size = file_size then
+      FileDownloaded
+    else
+      begin
+        let kernel = CommonSwarming.create_swarmer file_temp file_size 
min_range_size in
+        let swarmer = CommonSwarming.create kernel (as_file file.file_file) 
file_chunk_size in
+          file.file_swarmer <- Some swarmer;
+        CommonSwarming.set_verifier swarmer ForceVerification;
+        CommonSwarming.set_verified swarmer (fun _ _ -> file_must_update file);
+        current_files := file :: !current_files;
+        FileDownloading
+      end
+  in
+  file_add file_impl state;
+  file
+
 let new_file file_id name file_size =
   let key = String.lowercase name in
   try
     Hashtbl.find files_by_key key
   with _ ->
-      let file_temp = Filename.concat !!temp_directory 
-          (Printf.sprintf "SK-%s" (Md4.to_string file_id)) in
-      let current_size = try
-          Unix32.getsize file_temp true
-        with e ->
-            lprintf "Exception %s in current_size\n" (Printexc2.to_string e); 
-            Int64.zero
-      in
-      
-      let rec file = {
-          file_file = impl;
-          file_id = file_id;
-          file_clients = [];
-        } and impl = {
-          dummy_file_impl with
-          impl_file_fd = Some (Unix32.create_rw file_temp);
-          impl_file_size = file_size;
-          impl_file_downloaded = current_size;
-          impl_file_val = file;
-          impl_file_ops = file_ops;
-          impl_file_age = last_time ();          
-          impl_file_best_name = name;
-        } in
-      let state = if current_size = file_size then FileDownloaded else begin
-            current_files := file :: !current_files;
-            FileDownloading
-          end
-      in
-      file_add impl state;
+      let file = new_file file_id key file_size  in
       Hashtbl.add files_by_key key file;
       file
 
Index: mldonkey/src/networks/soulseek/slskInteractive.ml
diff -u mldonkey/src/networks/soulseek/slskInteractive.ml:1.20 
mldonkey/src/networks/soulseek/slskInteractive.ml:1.21
--- mldonkey/src/networks/soulseek/slskInteractive.ml:1.20      Mon Jan  9 
00:22:36 2006
+++ mldonkey/src/networks/soulseek/slskInteractive.ml   Mon Apr 10 19:16:36 2006
@@ -124,21 +124,15 @@
 );
     *)
   server_ops.op_server_info <- (fun s ->
-      {
+      { (impl_server_info s.server_server) with
         P.server_num = (server_num s);
         P.server_network = network.network_num;
         P.server_addr = s.server_addr;
         P.server_port = s.server_port;
-        P.server_realport = 0;
-        P.server_score = 0;
-        P.server_tags = [];
         P.server_nusers = s.server_nusers;
-        P.server_nfiles = Int64.zero;
         P.server_state = server_state s;
         P.server_name = s.server_name;
         P.server_description = s.server_info;
-        P.server_users = None;
-        P.server_banner = "";
         P.server_preferred = false;
         }
   )
@@ -194,7 +188,7 @@
 let _ =
   let module P = GuiTypes in
   file_ops.op_file_info <- (fun file ->
-      {
+      { (impl_file_info file.file_file) with
         P.file_fields = P.Fields_file_info.all;
 
         P.file_comment = file_comment (as_file file.file_file);
@@ -205,10 +199,7 @@
         P.file_md4 = file.file_id;
         P.file_size = file_size file;
         P.file_downloaded = file_downloaded file;
-        P.file_all_sources = 0;
-        P.file_active_sources = 0;
         P.file_state = file_state file;
-        P.file_sources = None;
         P.file_download_rate = file_download_rate file.file_file;
         P.file_chunks = "0";
         P.file_availability = [network.network_num,"0"];
@@ -217,8 +208,6 @@
         P.file_age = file_age file;
         P.file_last_seen = BasicSocket.last_time ();
         P.file_priority = file_priority (as_file file.file_file);
-        P.file_uids = [];
-        P.file_sub_files = [];
       }    
   );
   (*
@@ -253,26 +242,14 @@
 let _ =
   let module P = GuiTypes in
   client_ops.op_client_info <- (fun c ->
-      {
+      { (impl_client_info c.client_client) with
         P.client_network = network.network_num;
-        P.client_kind = Indirect_location (c.client_name, Md4.null, _, _);
+        P.client_kind = Indirect_location (c.client_name, Md4.null, Ip.null, 
0);
         P.client_state = client_state (as_client c.client_client);
         P.client_type = client_type c;
-        P.client_tags = [];
         P.client_name = c.client_name;
-        P.client_files = None;
         P.client_num = (client_num (as_client c.client_client));
-        P.client_rating = 0;
-        P.client_chat_port = 0 ;
         P.client_connect_time = last_time ();
-        P.client_software = "";
-        P.client_release = "";
-        P.client_emulemod = "";
-        P.client_downloaded = zero;
-        P.client_uploaded = zero;
-        P.client_upload = None;
-       P.client_sui_verified = None;
-(*    client_sock_addr = ""; *)
       }
   );
   client_ops.op_client_browse <- (fun c immediate ->
Index: mldonkey/src/networks/soulseek/slskMain.ml
diff -u mldonkey/src/networks/soulseek/slskMain.ml:1.11 
mldonkey/src/networks/soulseek/slskMain.ml:1.12
--- mldonkey/src/networks/soulseek/slskMain.ml:1.11     Sat Nov  5 16:23:41 2005
+++ mldonkey/src/networks/soulseek/slskMain.ml  Mon Apr 10 19:16:36 2006
@@ -48,8 +48,6 @@
     is_enabled := true;
     network.op_network_disable <- disable enabler;
 
-(*  load_url slsk_kind "http://www.slsk.org/slskinfo2";; *)
-
 (*
   let main_server = new_server (new_addr_name !!main_server_name)
     !!main_server_port in
Index: mldonkey/src/networks/soulseek/slskServers.ml
diff -u mldonkey/src/networks/soulseek/slskServers.ml:1.11 
mldonkey/src/networks/soulseek/slskServers.ml:1.12
--- mldonkey/src/networks/soulseek/slskServers.ml:1.11  Wed Mar 29 14:22:08 2006
+++ mldonkey/src/networks/soulseek/slskServers.ml       Mon Apr 10 19:16:36 2006
@@ -168,7 +168,7 @@
                       C2S.LoginReq {
                         L.login = local_login ();
                         L.password = !!password;
-                        L.version = 180; (* This is what pyslsk sends *)
+                        L.version = 156; (* This is what pyslsk sends *)
                       });
                     server_send sock (C2S.SetWaitPortReq !!slsk_port)
                   with e -> 
@@ -206,11 +206,11 @@
   ) files_by_key
 
 let servers_line = "--servers"
-let slsk_kind =  "slsk_server_list"
-let slsk_kind_descr = "List of Soulseek servers (?)"
+let slsk_kind =  "slsk_boot"
+let slsk_kind_descr = "Soulseek servers boot URL"
 
 let load_server_list_last = ref 0
-let load_server_list _ filename  = 
+let load_server_list _ filename = 
   load_server_list_last := last_time ();
   let s = File.to_string filename in
   try
@@ -225,7 +225,7 @@
         match String2.split_simplify s ':' with
           [_;_;server_name; server_port] -> 
             let port = int_of_string server_port in
-            lprintf "NEW SERVER %s:%d" server_name port; lprint_newline ();
+            lprintf_nl () "NEW SERVER %s:%d" server_name port;
             (*
             main_server_name =:= server_name;
 main_server_port =:= port;
Index: mldonkey/src/networks/soulseek/slskTypes.ml
diff -u mldonkey/src/networks/soulseek/slskTypes.ml:1.8 
mldonkey/src/networks/soulseek/slskTypes.ml:1.9
--- mldonkey/src/networks/soulseek/slskTypes.ml:1.8     Mon Aug  9 17:59:47 2004
+++ mldonkey/src/networks/soulseek/slskTypes.ml Mon Apr 10 19:16:36 2006
@@ -65,6 +65,7 @@
     file_file : file CommonFile.file_impl;
     file_id : Md4.t;
     mutable file_clients : client list;
+    mutable file_swarmer : CommonSwarming.t option;
   }
 
 and client = {




reply via email to

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