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, 26 Nov 2006 13:54:10 +0000

CVSROOT:        /sources/mldonkey
Module name:    mldonkey
Changes by:     spiralvoice <spiralvoice>       06/11/26 13:54:10

Modified files:
        distrib        : ChangeLog 
        src/daemon/common: commonInteractive.ml commonNetwork.ml 
                           commonNetwork.mli commonResult.ml 
                           commonSearch.ml commonTypes.ml 
                           commonUploads.ml commonWeb.ml guiDecoding.ml 
                           guiEncoding.ml 
        src/daemon/driver: driverCommands.ml driverInteractive.ml 
                           driverInterface.ml 
        src/gtk2/gui   : guiNetworks.ml 
        src/networks/bittorrent: bTMain.ml 
        src/networks/direct_connect: dcMain.ml 
        src/networks/donkey: donkeyGlobals.ml donkeyMain.ml 
        src/networks/fileTP: fileTPMain.ml 
        src/networks/gnutella: gnutellaMain.ml 
        src/networks/openFT: openFTMain.ml 
        src/networks/opennap: opennapMain.ml 
        src/networks/server: serverMain.ml 
        src/networks/soulseek: slskMain.ml 

Log message:
        patch #5588

CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/mldonkey/distrib/ChangeLog?cvsroot=mldonkey&r1=1.1112&r2=1.1113
http://cvs.savannah.gnu.org/viewcvs/mldonkey/src/daemon/common/commonInteractive.ml?cvsroot=mldonkey&r1=1.84&r2=1.85
http://cvs.savannah.gnu.org/viewcvs/mldonkey/src/daemon/common/commonNetwork.ml?cvsroot=mldonkey&r1=1.32&r2=1.33
http://cvs.savannah.gnu.org/viewcvs/mldonkey/src/daemon/common/commonNetwork.mli?cvsroot=mldonkey&r1=1.18&r2=1.19
http://cvs.savannah.gnu.org/viewcvs/mldonkey/src/daemon/common/commonResult.ml?cvsroot=mldonkey&r1=1.10&r2=1.11
http://cvs.savannah.gnu.org/viewcvs/mldonkey/src/daemon/common/commonSearch.ml?cvsroot=mldonkey&r1=1.18&r2=1.19
http://cvs.savannah.gnu.org/viewcvs/mldonkey/src/daemon/common/commonTypes.ml?cvsroot=mldonkey&r1=1.62&r2=1.63
http://cvs.savannah.gnu.org/viewcvs/mldonkey/src/daemon/common/commonUploads.ml?cvsroot=mldonkey&r1=1.51&r2=1.52
http://cvs.savannah.gnu.org/viewcvs/mldonkey/src/daemon/common/commonWeb.ml?cvsroot=mldonkey&r1=1.36&r2=1.37
http://cvs.savannah.gnu.org/viewcvs/mldonkey/src/daemon/common/guiDecoding.ml?cvsroot=mldonkey&r1=1.65&r2=1.66
http://cvs.savannah.gnu.org/viewcvs/mldonkey/src/daemon/common/guiEncoding.ml?cvsroot=mldonkey&r1=1.59&r2=1.60
http://cvs.savannah.gnu.org/viewcvs/mldonkey/src/daemon/driver/driverCommands.ml?cvsroot=mldonkey&r1=1.200&r2=1.201
http://cvs.savannah.gnu.org/viewcvs/mldonkey/src/daemon/driver/driverInteractive.ml?cvsroot=mldonkey&r1=1.115&r2=1.116
http://cvs.savannah.gnu.org/viewcvs/mldonkey/src/daemon/driver/driverInterface.ml?cvsroot=mldonkey&r1=1.60&r2=1.61
http://cvs.savannah.gnu.org/viewcvs/mldonkey/src/gtk2/gui/guiNetworks.ml?cvsroot=mldonkey&r1=1.3&r2=1.4
http://cvs.savannah.gnu.org/viewcvs/mldonkey/src/networks/bittorrent/bTMain.ml?cvsroot=mldonkey&r1=1.23&r2=1.24
http://cvs.savannah.gnu.org/viewcvs/mldonkey/src/networks/direct_connect/dcMain.ml?cvsroot=mldonkey&r1=1.5&r2=1.6
http://cvs.savannah.gnu.org/viewcvs/mldonkey/src/networks/donkey/donkeyGlobals.ml?cvsroot=mldonkey&r1=1.108&r2=1.109
http://cvs.savannah.gnu.org/viewcvs/mldonkey/src/networks/donkey/donkeyMain.ml?cvsroot=mldonkey&r1=1.61&r2=1.62
http://cvs.savannah.gnu.org/viewcvs/mldonkey/src/networks/fileTP/fileTPMain.ml?cvsroot=mldonkey&r1=1.4&r2=1.5
http://cvs.savannah.gnu.org/viewcvs/mldonkey/src/networks/gnutella/gnutellaMain.ml?cvsroot=mldonkey&r1=1.24&r2=1.25
http://cvs.savannah.gnu.org/viewcvs/mldonkey/src/networks/openFT/openFTMain.ml?cvsroot=mldonkey&r1=1.3&r2=1.4
http://cvs.savannah.gnu.org/viewcvs/mldonkey/src/networks/opennap/opennapMain.ml?cvsroot=mldonkey&r1=1.5&r2=1.6
http://cvs.savannah.gnu.org/viewcvs/mldonkey/src/networks/server/serverMain.ml?cvsroot=mldonkey&r1=1.4&r2=1.5
http://cvs.savannah.gnu.org/viewcvs/mldonkey/src/networks/soulseek/slskMain.ml?cvsroot=mldonkey&r1=1.12&r2=1.13

Patches:
Index: distrib/ChangeLog
===================================================================
RCS file: /sources/mldonkey/mldonkey/distrib/ChangeLog,v
retrieving revision 1.1112
retrieving revision 1.1113
diff -u -b -r1.1112 -r1.1113
--- distrib/ChangeLog   26 Nov 2006 13:23:17 -0000      1.1112
+++ distrib/ChangeLog   26 Nov 2006 13:54:09 -0000      1.1113
@@ -15,6 +15,7 @@
 =========
 
 2006/11/26
+5588: Cleanup commonNetwork (pango)
 5582: EDK: Improve CryptoPP logging (Schlumpf)
 5584: EDK: Remove removed servers from walker server lists
 5585: EDK: New parameter "all" for command "x" to disconnect all conn. servers

Index: src/daemon/common/commonInteractive.ml
===================================================================
RCS file: /sources/mldonkey/mldonkey/src/daemon/common/commonInteractive.ml,v
retrieving revision 1.84
retrieving revision 1.85
diff -u -b -r1.84 -r1.85
--- src/daemon/common/commonInteractive.ml      9 Nov 2006 21:32:26 -0000       
1.84
+++ src/daemon/common/commonInteractive.ml      26 Nov 2006 13:54:09 -0000      
1.85
@@ -470,22 +470,17 @@
   with e ->
       lprintf_nl "Exception in contact_remove: %s" (Printexc2.to_string e)
 
-let exit_counter = ref 0
-let exit_timer = ref false
-
-let rec clean_exit n =
-  let can_exit = networks_for_all (fun n -> network_clean_exit n) in
-  if can_exit || (!exit_counter > !!shutdown_timeout) then 
-    exit_properly n
+let clean_exit n =
+  let can_exit = networks_for_all network_clean_exit in
+  if can_exit then exit_properly n
   else 
-    if not !exit_timer then begin
-      exit_timer := true;
+    let rec retry_later retry_counter =
       add_timer 1. (fun _ ->
-        incr exit_counter;
-        exit_timer := false;
-        clean_exit n;
-      );
-    end
+        let can_exit = networks_for_all network_clean_exit in
+        if can_exit || retry_counter > !!shutdown_timeout then
+         exit_properly n
+       else retry_later (retry_counter + 1)) in
+    retry_later 0
 
 let time_of_sec sec =
   let hours = sec / 60 / 60 in
@@ -538,8 +533,7 @@
         networks_iter (fun r ->
             if query.GuiTypes.search_network = 0 ||
               r.network_num = query.GuiTypes.search_network
-            then
-              r.op_network_search s buf);
+            then network_search r s buf);
   end;
   s
 
@@ -551,7 +545,7 @@
   networks_iter_all (fun r ->
     try
       if List.mem NetworkHasStats r.network_flags then
-        r.op_network_display_stats buf o
+        network_display_stats r buf o
     with _ -> ())
 
 let print_connected_servers o =

Index: src/daemon/common/commonNetwork.ml
===================================================================
RCS file: /sources/mldonkey/mldonkey/src/daemon/common/commonNetwork.ml,v
retrieving revision 1.32
retrieving revision 1.33
diff -u -b -r1.32 -r1.33
--- src/daemon/common/commonNetwork.ml  1 Oct 2006 17:53:59 -0000       1.32
+++ src/daemon/common/commonNetwork.ml  26 Nov 2006 13:54:09 -0000      1.33
@@ -25,8 +25,7 @@
     
 
 let ni n m = 
-  let s = Printf.sprintf "Network.%s not implemented by %s" 
-      m n in
+  let s = Printf.sprintf "Network.%s not implemented by %s" m n in
   lprintf_nl "%s" s; 
   s
   
@@ -126,10 +125,14 @@
 let network_disable n = n.op_network_disable () 
 let network_share n s = n.op_network_share s
 let network_recover_temp n = n.op_network_recover_temp ()
+let network_search n s buf = n.op_network_search s buf
+let network_download n r user = n.op_network_download r user
 let network_add_server n s = n.op_network_add_server s
 let network_server_of_option n s = n.op_network_server_of_option s
 let network_file_of_option n f = n.op_network_file_of_option f 
 let network_client_of_option n f = n.op_network_client_of_option f
+(* is returning true (successful) when an exception is caught the
+   right thing to do ? *)
 let network_clean_exit n = try n.op_network_clean_exit () with _ -> true
 let network_reset n = try n.op_network_reset () with _ -> ()
 let network_ports n = n.op_network_ports ()
@@ -150,9 +153,9 @@
 let networks_iter_until_true f =
   List.exists (fun r ->
       try
-        network_is_enabled r && f r
+      if network_is_enabled r then f r else false
       with 
-        IgnoreNetwork -> false
+    | IgnoreNetwork -> false
       | e ->
           lprintf_nl "Exception %s in Network.iter for %s"
             (Printexc2.to_string e) r.network_name;
@@ -161,7 +164,8 @@
   
 let networks_iter_all f =
   List.iter (fun r ->
-      try f r  
+    try 
+      f r  
       with
       | IgnoreNetwork -> ()
       | e ->
@@ -171,9 +175,10 @@
   
 let networks_iter_all_until_true f =
   List.exists (fun r ->
-      try f r  
+    try 
+      f r  
       with
-        IgnoreNetwork -> false
+    | IgnoreNetwork -> false
       | e ->
           lprintf_nl "Exception %s in Network.iter for %s"
             (Printexc2.to_string e) r.network_name;
@@ -197,9 +202,9 @@
 let network_find_by_num num =
   Hashtbl.find networks_by_num num
 
-  (*
+(*
 (* we could replace that by a [32..127] array mapping to functions. it would 
-only take 100*4 bytes ... *)
+  only take 100*4 bytes ... *)
   
 let network_escape_chars = ref []
   
@@ -213,7 +218,7 @@
 
 let commands_by_kind = Hashtbl.create 11
 
-let _ =
+let () =
      Heap.add_memstat "CommonNetwork" (fun level buf ->
       Printf.bprintf buf "  networks_by_name: %d\n" (Hashtbl.length 
networks_by_name);
       Printf.bprintf buf "  networks_by_num: %d\n" (Hashtbl.length 
networks_by_num);
@@ -244,9 +249,12 @@
   let url = try Url.decode url with _ -> url in
   n.op_network_parse_url url
     
+let network_display_stats n buf o = n.op_network_display_stats buf o
 let network_info n = n.op_network_info ()
+let network_stat_info_list n = n.op_network_stat_info_list ()
+let network_gui_message n s u = n.op_network_gui_message s u
 
-let new_network shortname name flags = 
+let new_network shortname name ?comment flags = 
   let manager = TcpBufferedSocket.create_connection_manager name in
   let r =
     {
@@ -291,25 +299,22 @@
       op_network_porttest_result = (fun _ -> fni name "porttest_result");
     }
   in
-  let rr = (Obj.magic r: network) in
-  networks_ops := (rr, { rr with network_name = rr.network_name })
-  :: !networks_ops;
+  (* attempt: what is this cast for ? *)
+  let rr = (*(Obj.magic*) r (*: network)*) in
+  (* create a copy of the initial plugin record so that
+     check_network_implementations can detect which methods are overriden
+  *)
+  networks_ops := 
+    (rr, { rr with network_name = rr.network_name }) :: !networks_ops;
   networks := r :: !networks;
   Hashtbl.add networks_by_name r.network_name r;
   Hashtbl.add networks_by_num r.network_num r;
-  let s =
-    if r.network_name = "Donkey" then
-      if Autoconf.donkey_sui_works () then
-        "Donkey (SUI)"
-      else
-        "Donkey (noSUI)"
-    else
-      r.network_name
-  in
-  if !networks_string = "" then
-    networks_string := s
-  else
-    networks_string := Printf.sprintf "%s  %s" !networks_string s;
-(*  lprintf_nl "Network %s registered" r.network_name; *)
+  let display_name =
+    match comment with
+    | None -> r.network_name
+    | Some c -> Printf.sprintf "%s (%s)" r.network_name c in
+  networks_string := 
+    if !networks_string = "" then display_name 
+    else Printf.sprintf "%s %s" !networks_string display_name;
+  (*  lprintf_nl "Network %s registered" r.network_name; *)
   r
-  

Index: src/daemon/common/commonNetwork.mli
===================================================================
RCS file: /sources/mldonkey/mldonkey/src/daemon/common/commonNetwork.mli,v
retrieving revision 1.18
retrieving revision 1.19
diff -u -b -r1.18 -r1.19
--- src/daemon/common/commonNetwork.mli 9 Nov 2006 21:32:26 -0000       1.18
+++ src/daemon/common/commonNetwork.mli 26 Nov 2006 13:54:09 -0000      1.19
@@ -1,63 +1,301 @@
+(** Generic network services *)
+
+(*
+(** log and return a "method not implemented" message
+    @param n network name
+    @param m name of the method that's not implemented
+    @return the "not implemented" message *)
 val ni : string -> string -> string
+*)
+
+(** log and raise a Failure exception because of a "method not implemented"
+    @param n network name
+    @param m name of the method that's not implemented
+    @raise Failure *)
 val fni : string -> string -> 'a
+
+(** log a "method not implemented" message 
+    @param n network name
+    @param m name of the method that's not implemented *)
 val ni_ok : string -> string -> unit
-val network_uid : unit -> int
-val networks : CommonTypes.network list ref
-val networks_by_name : (string, CommonTypes.network) Hashtbl.t
-val networks_by_num : (int, CommonTypes.network) Hashtbl.t
-val networks_ops : (CommonTypes.network * CommonTypes.network) list ref
+
+(** define a new instance of network class, to be filled later with
+    functions defining the specialized methods for this network.
+    @param shortname short name for the network
+    @param name standard name for the network
+    @param ?comment comment to add to network name in networks list
+    @param flags network properties
+    @return the new network instance *)
 val new_network :
-    string ->  string ->   CommonTypes.network_flag list -> CommonTypes.network
+  string ->  string -> ?comment:string -> CommonTypes.network_flag list -> 
+  CommonTypes.network
+
+(** Find a network by its name
+    @param network name
+    @return network instance
+    @raise Not_found *)
+val network_find_by_name : string -> CommonTypes.network
+
+(** Find a network by its internal number
+    @param network identifier
+    @return network instance
+    @raise Not_found *)
+val network_find_by_num : int -> CommonTypes.network
 
+(** List all networks, and for each, which methods are defined 
+    Useful for debugging only *)
 val check_network_implementations : unit -> unit
+
+(** {6 Network methods} *)
+
+(** call the op_network_clean_exit method of a network. Can require
+    more than one try to succeed, if cleaning up needs some time.
+    @param network instance
+    @return true if successful *)
 val network_clean_exit : CommonTypes.network -> bool
+
+(** call the op_network_reset method of a network.
+    (called when SIGHUP is received)
+    @param network instance *)
 val network_reset : CommonTypes.network -> unit
+
+(** call the op_network_connected_servers method of a network.
+    @param network instance
+    @return the list of servers currently connected to *)
 val network_connected_servers :
   CommonTypes.network -> CommonTypes.server list
+
+(** call the op_network_is_enabled method of a network.
+    @param network instance
+    @return true if the network is enabled *)
 val network_is_enabled : CommonTypes.network -> bool
+
+(** call the op_network_save_complex_options method of a network.
+    @param network instance *)
 val network_save_complex_options : CommonTypes.network -> unit
+
+(** call the op_network_save_sources method of a network.
+    @param network instance *)
 val network_save_sources : CommonTypes.network -> unit
+
+(** call the op_network_load_complex_options method of a network.
+    @param network instance *)
 val network_load_complex_options : CommonTypes.network -> unit
+
+(** call the op_network_enable method of a network, to activate it.
+    @param network instance *)
 val network_enable : CommonTypes.network -> unit
+
+(** call the op_network_update_options method of a network.
+    @param network instance *)
 val network_update_options : CommonTypes.network -> unit
+
+(** call the op_network_disable method of a network, to deactivate it.
+    @param network instance *)
 val network_disable : CommonTypes.network -> unit
+
+(** call the op_network_recover_temp method of a network.
+    @param network instance *)
 val network_recover_temp : CommonTypes.network -> unit
+
+(** call the op_network_share method of a network.
+    @param network instance
+    @param fullname
+    @param codedname
+    @param size *)
 val network_share : CommonTypes.network -> string -> string -> int64 -> unit
+
+(** call the op_network_add_server method of a network.
+    @param network instance
+    @param ip of server
+    @param port of server 
+    @return the added server *)
 val network_add_server :
-  CommonTypes.network ->
-  Ip.addr -> int -> CommonTypes.server
+  CommonTypes.network -> Ip.addr -> int -> CommonTypes.server
+
+(** call the op_network_server_of_option method of a network.
+    @param network instance
+    @param assoc list of server properties
+    @return the created server *)
 val network_server_of_option :
   CommonTypes.network ->
   (string * Options.option_value) list -> CommonTypes.server
+
+(** call the op_network_file_of_option method of a network.
+    @param network instance
+    @param file size
+    @param file state
+    @param assoc list of file properties
+    @return the created file *)
 val network_file_of_option :
   CommonTypes.network ->
-    int64 ->
-    CommonTypes.file_state ->
-    (string * Options.option_value) list -> CommonTypes.file
+  int64 -> CommonTypes.file_state -> (string * Options.option_value) list -> 
+  CommonTypes.file
+
+(** call the op_network_client_of_option method of a network.
+    @param network instance
+    @param true if client is a friend 
+    @param assoc list of client properties
+    @return the created client *)
 val network_client_of_option :
   CommonTypes.network ->
   bool -> (string * Options.option_value) list -> CommonTypes.client
-val networks_iter : (CommonTypes.network -> unit) -> unit
-val networks_iter_until_true : (CommonTypes.network -> bool) -> bool
-val networks_iter_all : (CommonTypes.network -> unit) -> unit
-val networks_iter_all_until_true : (CommonTypes.network -> bool) -> bool
-val networks_for_all : (CommonTypes.network -> bool) -> bool
-val network_find_by_name : string -> CommonTypes.network
-val network_find_by_num : int -> CommonTypes.network
-val network_commands : (string * string * CommonTypes.arg_kind * string) list 
ref
-val register_commands : (string * string * CommonTypes.arg_kind * string) list 
-> unit
+
+(** call the op_network_connect_servers method of a network.
+    Try to connect to one more server.
+    @param network instance *)
 val network_connect_servers : CommonTypes.network -> unit
-val network_ports : CommonTypes.network -> (int * string) list
-val network_porttest_start : CommonTypes.network -> unit
-val network_porttest_result : CommonTypes.network -> 
CommonTypes.network_porttest
+
+(** call the op_network_search method of a network.
+    Initiate a new search.
+    @param network instance
+    @param search to start
+    @param buffer to send any feedback messages to *)
+val network_search : 
+  CommonTypes.network -> CommonTypes.search -> Buffer.t -> unit
+
+(** call the op_network_forget_search method of a network.
+    On donkey, it stops extended searches. 
+    On others, it does the same as network_close_search.
+    @param network instance
+    @param the search to forget *)
 val network_forget_search : CommonTypes.network -> CommonTypes.search -> unit
-val network_close_search : CommonTypes.network -> CommonTypes.search -> unit
+
+(*
 val network_private_message : CommonTypes.network -> string -> string -> unit
+*)
+
+(** call the op_network_extend_search method of a network.
+    @param network instance
+    @param the search to extend 
+    @param the kind of extension (local or remote) *)
 val network_extend_search :
   CommonTypes.network ->
   CommonTypes.search -> CommonTypes.extend_search -> unit
+
+(** call the op_network_close_search method of a network.
+    Stop for search procedure, and release associated resources.
+    @param network instance
+    @param the search to close *)
+val network_close_search : CommonTypes.network -> CommonTypes.search -> unit
+
+(*
 val network_connected : CommonTypes.network -> bool
+*)
+
+(** call the op_network_clean_servers method of a network.
+    Remove dead servers from the list.
+    @param network instance *)
 val network_clean_servers : CommonTypes.network -> unit
-val network_parse_url : CommonTypes.network -> string -> CommonTypes.userdb -> 
string * bool
+
+(** call the op_network_parse_url method of a network.
+    Try to recognize a download URL, and if successful, to actually
+    start that download.
+    @param network instance
+    @param URL
+    @param user to start the download for
+    @return status message
+    @return true if successful *)
+val network_parse_url : 
+  CommonTypes.network -> string -> CommonTypes.userdb -> string * bool
+
+(** call the op_network_download method of a network.
+    Start a download from the result of a search.
+    @param network instance
+    @param search result
+    @param user to start the download for
+    @return the newly started download *)
+val network_download :
+  CommonTypes.network -> CommonTypes.result_info -> CommonTypes.userdb -> 
+  CommonTypes.file
+
+(** call the op_network_display_stats method of a network.
+    Output statistics about a network
+    @param network instance
+    @param output buffer
+    @param interface context *)
+val network_display_stats : 
+  CommonTypes.network -> Buffer.t -> CommonTypes.ui_conn -> unit
+
+(** call the op_network_info method of a network.
+    Return the current status of a network.
+    @param network instance 
+    @return status of this network *)
 val network_info : CommonTypes.network -> CommonTypes.network_info
+
+(** call the op_network_stat_info_list method of a network.
+    @param network instance 
+    @return list of label, duration, network_stat_info tuples *)
+val network_stat_info_list : CommonTypes.network -> 
+  (string * int * CommonTypes.network_stat_info list) list
+
+(** call the op_network_gui_message method of a network.
+    Handle a message received from a GUI.
+    @param network instance
+    @param message
+    @param user *)
+val network_gui_message : 
+  CommonTypes.network -> string -> CommonTypes.userdb -> unit
+
+(** call the op_network_ports method of a network.
+    @param network instance 
+    @return list of port numbers, with their descriptions *)
+val network_ports : CommonTypes.network -> (int * string) list
+
+(** call the op_network_porttest_start method of a network.
+    Start an asynchronous test of ports well-behaving,
+    if one is available for that network.
+    @param network instance *)
+val network_porttest_start : CommonTypes.network -> unit
+
+(** call the op_network_porttest_result method of a network.
+    Return the result of the asynchronous ports test, 
+    if some are available.
+    @param network instance 
+    @return port test result *)
+val network_porttest_result : CommonTypes.network -> 
CommonTypes.network_porttest
+
+(** {6 Iterators} *)
+
+(** Call a function for each enabled network 
+    @param function to call *)
+val networks_iter : (CommonTypes.network -> unit) -> unit
+
+(** Call a predicate for each enabled network, until it returns true 
+    @param predicate to call
+    @return true if predicate was verified for a network *)
+val networks_iter_until_true : (CommonTypes.network -> bool) -> bool
+
+(** Call a function for each known network 
+    @param function to call *)
+val networks_iter_all : (CommonTypes.network -> unit) -> unit
+
+(** Call a predicate for each known network, until it returns true 
+    @param predicate to call
+    @return true if predicate was verified for a network *)
+val networks_iter_all_until_true : (CommonTypes.network -> bool) -> bool
+
+(** Call a predicate for each enabled network, until one returns false 
+    @param predicate to call
+    @return true if predicate was verified for all enabled networks *)
+val networks_for_all : (CommonTypes.network -> bool) -> bool
+
+(** {6 Internal command interpreter} *)
+
+(** For each command, one must provide:
+    - a name
+    - a section name
+    - the handler function
+    - a textual description *)
+
+(** List of registered commands in the internal command interpreter *)
+val network_commands : (string * string * CommonTypes.arg_kind * string) list 
ref
+
+(** Hashtable of registered commands names and descriptions in the
+    internal command interpreter, grouped by section *)
 val commands_by_kind : (string, (string * string) list ref) Hashtbl.t
+
+(** Add commands to the registry *)
+val register_commands : (string * string * CommonTypes.arg_kind * string) list 
-> unit
+
+

Index: src/daemon/common/commonResult.ml
===================================================================
RCS file: /sources/mldonkey/mldonkey/src/daemon/common/commonResult.ml,v
retrieving revision 1.10
retrieving revision 1.11
diff -u -b -r1.10 -r1.11
--- src/daemon/common/commonResult.ml   19 Sep 2006 17:07:42 -0000      1.10
+++ src/daemon/common/commonResult.ml   26 Nov 2006 13:54:09 -0000      1.11
@@ -148,7 +148,7 @@
   CommonNetwork.networks_iter (fun n ->
       (* Temporarily download results only from the network that returned the 
result *)
       if (n.network_num = r.result_source_network) then
-      files := (n.op_network_download r user) :: !files
+      files := (CommonNetwork.network_download n r user) :: !files
   );
   !files  
     

Index: src/daemon/common/commonSearch.ml
===================================================================
RCS file: /sources/mldonkey/mldonkey/src/daemon/common/commonSearch.ml,v
retrieving revision 1.18
retrieving revision 1.19
diff -u -b -r1.18 -r1.19
--- src/daemon/common/commonSearch.ml   13 Nov 2006 13:14:49 -0000      1.18
+++ src/daemon/common/commonSearch.ml   26 Nov 2006 13:54:09 -0000      1.19
@@ -160,12 +160,12 @@
 let can_search = ref false
   
 let custom_query buf query =
-  can_search := false;
-  Hashtbl.iter (fun name net ->
-      try if net.op_network_is_enabled () && List.mem NetworkHasSearch 
net.network_flags then
-            can_search := true;
-      with _ -> ()
-  ) CommonNetwork.networks_by_name;
+  can_search :=
+    networks_iter_all_until_true (fun net ->
+      try 
+       network_is_enabled net && List.mem NetworkHasSearch net.network_flags
+      with _ -> false
+    );
   if !can_search then begin
   try
     let q = List.assoc query (CommonComplexOptions.customized_queries()) in
@@ -525,13 +525,15 @@
     <select name=network>
     <option value=\"\"> --- </option>            
 ";    
-    Hashtbl.iter (fun name net ->
-        try if net.op_network_is_enabled () && List.mem NetworkHasSearch 
net.network_flags then
-            Printf.bprintf buf "
-            <option value=\"%s\"> %s </option>            
-            " name name
+    networks_iter_all (fun net ->
+        let name = net.network_name in
+        try 
+         if network_is_enabled net && 
+           List.mem NetworkHasSearch net.network_flags then
+              Printf.bprintf buf 
+               "<option value=\"%s\"> %s </option>" name name
         with _ -> ()
-    ) CommonNetwork.networks_by_name;
+    );
     Printf.bprintf buf "
       </select></td></table>" ;
     
@@ -557,12 +559,11 @@
   "
  *)
 let complex_search buf =
-  can_search := false;
-  Hashtbl.iter (fun name net ->
-      try if net.op_network_is_enabled () && List.mem NetworkHasSearch 
net.network_flags then
-            can_search := true;
-      with _ -> ()
-  ) CommonNetwork.networks_by_name;
+  can_search := 
+    networks_iter_all_until_true (fun net ->
+      try network_is_enabled net && List.mem NetworkHasSearch net.network_flags
+      with _ -> false
+    );
   Buffer.add_string buf "<div class=\"results\">
 <table id=\"memstatsTable\" name=\"searchTable\" class=\"search\" 
cellspacing=0 cellpadding=0>
 <tr><td class=\"srh\" >";
@@ -746,13 +747,15 @@
       <select name=network>
     <option value=\"\"> --- </option>            
 ";    
-  Hashtbl.iter (fun name net ->
-      try if net.op_network_is_enabled () && List.mem NetworkHasSearch 
net.network_flags then
-          Printf.bprintf buf "
-            <option value=\"%s\"> %s </option>            
-            " name name
+  networks_iter_all (fun net ->
+      let name = net.network_name in
+      try 
+       if network_is_enabled net && 
+         List.mem NetworkHasSearch net.network_flags then
+            Printf.bprintf buf 
+             "<option value=\"%s\"> %s </option>" name name
       with _ -> ()
-  ) CommonNetwork.networks_by_name;
+  );
   Printf.bprintf buf "
       </select></td></tr></table></form></td>";
   end;

Index: src/daemon/common/commonTypes.ml
===================================================================
RCS file: /sources/mldonkey/mldonkey/src/daemon/common/commonTypes.ml,v
retrieving revision 1.62
retrieving revision 1.63
diff -u -b -r1.62 -r1.63
--- src/daemon/common/commonTypes.ml    13 Nov 2006 13:10:17 -0000      1.62
+++ src/daemon/common/commonTypes.ml    26 Nov 2006 13:54:09 -0000      1.63
@@ -447,10 +447,10 @@
     network_netnum : int;
     network_config_filename : string;
     network_netflags : network_flag list;
-    mutable network_enabled : bool;
-    mutable network_uploaded : int64;
-    mutable network_downloaded : int64;
-    mutable network_connected : int; (* number of connected servers *)
+    network_enabled : bool;
+    network_uploaded : int64;
+    network_downloaded : int64;
+    network_connected_servers : int;
   }
 
 type extend_search =

Index: src/daemon/common/commonUploads.ml
===================================================================
RCS file: /sources/mldonkey/mldonkey/src/daemon/common/commonUploads.ml,v
retrieving revision 1.51
retrieving revision 1.52
diff -u -b -r1.51 -r1.52
--- src/daemon/common/commonUploads.ml  21 Nov 2006 22:34:33 -0000      1.51
+++ src/daemon/common/commonUploads.ml  26 Nov 2006 13:54:09 -0000      1.52
@@ -226,6 +226,7 @@
   network.op_network_connected <- (fun _ -> false);
   network.op_network_is_enabled <- (fun _ -> raise IgnoreNetwork);
   network.op_network_update_options <- (fun _ -> raise IgnoreNetwork);
+  (* op_network_info defined twice ?? *)
   network.op_network_info <- (fun _ -> raise Not_found);
   network.op_network_info <- (fun n ->
       {
@@ -237,7 +238,7 @@
         network_enabled = true;
         network_uploaded = Int64.zero;
         network_downloaded = Int64.zero;
-        network_connected = 0;
+        network_connected_servers = 0;
       });
   network.op_network_ports <- (fun _ ->
     [

Index: src/daemon/common/commonWeb.ml
===================================================================
RCS file: /sources/mldonkey/mldonkey/src/daemon/common/commonWeb.ml,v
retrieving revision 1.36
retrieving revision 1.37
diff -u -b -r1.36 -r1.37
--- src/daemon/common/commonWeb.ml      15 Nov 2006 12:37:13 -0000      1.36
+++ src/daemon/common/commonWeb.ml      26 Nov 2006 13:54:09 -0000      1.37
@@ -134,7 +134,7 @@
   let command_urlencoded = Str.string_after url 8 in
   let command = Url.decode command_urlencoded in
   let filename = Filename.temp_file "wget_" ".tmp" in
-    Sys.command (Printf.sprintf "%s > %s" command filename);
+    ignore (Sys.command (Printf.sprintf "%s > %s" command filename));
     (f filename : unit)
       
 let mldonkey_wget url f =

Index: src/daemon/common/guiDecoding.ml
===================================================================
RCS file: /sources/mldonkey/mldonkey/src/daemon/common/guiDecoding.ml,v
retrieving revision 1.65
retrieving revision 1.66
diff -u -b -r1.65 -r1.66
--- src/daemon/common/guiDecoding.ml    14 Nov 2006 18:42:59 -0000      1.65
+++ src/daemon/common/guiDecoding.ml    26 Nov 2006 13:54:09 -0000      1.66
@@ -925,7 +925,7 @@
     network_config_filename = config_file;
     network_uploaded = uploaded;
     network_downloaded = downloaded;
-    network_connected = connected;
+    network_connected_servers = connected;
   }, pos
 
 

Index: src/daemon/common/guiEncoding.ml
===================================================================
RCS file: /sources/mldonkey/mldonkey/src/daemon/common/guiEncoding.ml,v
retrieving revision 1.59
retrieving revision 1.60
diff -u -b -r1.59 -r1.60
--- src/daemon/common/guiEncoding.ml    31 Oct 2006 15:40:05 -0000      1.59
+++ src/daemon/common/guiEncoding.ml    26 Nov 2006 13:54:09 -0000      1.60
@@ -694,7 +694,7 @@
   buf_int64 buf n.network_uploaded;
   buf_int64 buf n.network_downloaded;
   if proto > 17 then begin
-      buf_int buf n.network_connected;
+      buf_int buf n.network_connected_servers;
       buf_list buf (fun buf e ->
           buf_int16 buf (match e with
               NetworkHasServers -> 0

Index: src/daemon/driver/driverCommands.ml
===================================================================
RCS file: /sources/mldonkey/mldonkey/src/daemon/driver/driverCommands.ml,v
retrieving revision 1.200
retrieving revision 1.201
diff -u -b -r1.200 -r1.201
--- src/daemon/driver/driverCommands.ml 26 Nov 2006 13:21:06 -0000      1.200
+++ src/daemon/driver/driverCommands.ml 26 Nov 2006 13:54:09 -0000      1.201
@@ -1433,7 +1433,7 @@
          begin
            let r = List.hd !forceable_download in
              CommonNetwork.networks_iter (fun n ->
-               ignore (n.op_network_download r o.conn_user.ui_user));
+               ignore (network_download n r o.conn_user.ui_user));
 
             let output = (if o.conn_output = HTML then begin
                 let buf = Buffer.create 100 in

Index: src/daemon/driver/driverInteractive.ml
===================================================================
RCS file: /sources/mldonkey/mldonkey/src/daemon/driver/driverInteractive.ml,v
retrieving revision 1.115
retrieving revision 1.116
diff -u -b -r1.115 -r1.116
--- src/daemon/driver/driverInteractive.ml      21 Nov 2006 22:34:33 -0000      
1.115
+++ src/daemon/driver/driverInteractive.ml      26 Nov 2006 13:54:09 -0000      
1.116
@@ -1757,7 +1757,7 @@
               Printf.bprintf buf "\\<tr class=\\\"dl-%d\\\"\\>" 
(html_mods_cntr ());
               html_mods_td buf [
                 ("", "sr br", n.network_name);
-                ("", "sr br", if n.op_network_is_enabled () then "Enabled" 
else "Disabled");
+                ("", "sr br", if network_is_enabled n then "Enabled" else 
"Disabled");
                 ("", "sr br", net_has NetworkHasUpload);
                 ("", "sr br", net_has NetworkHasServers);
                 ("", "sr br", net_has NetworkHasSupernodes);
@@ -1780,13 +1780,11 @@
   else
     begin
       Printf.bprintf buf "Networks:";
-      Hashtbl.iter
-        (fun name n ->
+      networks_iter_all (fun n ->
           try
-            Printf.bprintf buf "\n   %2d %-30s %s" n.network_num name
-                (if n.op_network_is_enabled () then "Enabled" else "Disabled")
-          with _ -> ()
-        ) networks_by_name
+            Printf.bprintf buf "\n   %2d %-30s %s" n.network_num n.network_name
+                (if network_is_enabled n then "Enabled" else "Disabled")
+          with _ -> ())
     end
 
 let print_gdstats buf o =

Index: src/daemon/driver/driverInterface.ml
===================================================================
RCS file: /sources/mldonkey/mldonkey/src/daemon/driver/driverInterface.ml,v
retrieving revision 1.60
retrieving revision 1.61
diff -u -b -r1.60 -r1.61
--- src/daemon/driver/driverInterface.ml        21 Nov 2006 22:34:33 -0000      
1.60
+++ src/daemon/driver/driverInterface.ml        26 Nov 2006 13:54:09 -0000      
1.61
@@ -440,7 +440,7 @@
       networks_iter_all (fun n ->
           List.iter (fun s ->
               addevent gui.gui_events.gui_servers (server_num s) true
-          ) (n.op_network_connected_servers ())
+          ) (network_connected_servers n)
       );
       
       server_iter (fun s ->
@@ -656,7 +656,7 @@
           | P.EnableNetwork (num, bool) ->
              if user2_is_admin gui.gui_conn.conn_user.ui_user then
               let n = network_find_by_num num in
-              if n.op_network_is_enabled () <> bool then
+              if network_is_enabled n <> bool then
                 (try
                     if bool then network_enable n else network_disable n;
                   with e ->
@@ -725,9 +725,7 @@
               networks_iter (fun r -> 
                   if search.search_network = 0 ||
                     r.network_num = search.search_network
-                  then
-                    
-                    r.op_network_search search buf);
+                  then network_search r search buf);
           
           | P.Download_query (filenames, num, force) ->
               let r = find_result num in
@@ -1040,14 +1038,14 @@
   
           | NetworkMessage (num, s) ->
               let n = network_find_by_num num in
-              n.op_network_gui_message s gui.gui_conn.conn_user.ui_user
+              network_gui_message n s gui.gui_conn.conn_user.ui_user
                 
           | AddServer_query (num, ip, port) ->
               let n = network_find_by_num num in
 (* [CONTRIBUTE:] change the GUI protocol to transfer an address (ip/name)
   instead of just an ip. *)
               
-              let s = n.op_network_add_server (Ip.addr_of_ip ip) port in
+              let s = network_add_server n (Ip.addr_of_ip ip) port in
               server_connect s
           | RefreshUploadStats ->
               if user2_can_view_uploads gui.gui_conn.conn_user.ui_user then
@@ -1060,7 +1058,7 @@
 
           | P.GetStats num ->
               let n = network_find_by_num num in
-              let l = n.op_network_stat_info_list () in
+              let l = network_stat_info_list n in
               gui_send gui (P.Stats (num, l))
 
           | P.GiftAttach (profile, version, client) ->

Index: src/gtk2/gui/guiNetworks.ml
===================================================================
RCS file: /sources/mldonkey/mldonkey/src/gtk2/gui/guiNetworks.ml,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -b -r1.3 -r1.4
--- src/gtk2/gui/guiNetworks.ml 27 Jun 2006 10:38:36 -0000      1.3
+++ src/gtk2/gui/guiNetworks.ml 26 Nov 2006 13:54:09 -0000      1.4
@@ -132,10 +132,10 @@
         nn.net_downloaded <- n.network_downloaded;
         update_label_dled n.network_netnum n.network_downloaded
       end;
-    if nn.net_connected <> n.network_connected
+    if nn.net_connected <> n.network_connected_servers
       then begin
-        nn.net_connected <- n.network_connected;
-        update_label_serv_connected n.network_netnum n.network_connected
+        nn.net_connected <- n.network_connected_servers;
+        update_label_serv_connected n.network_netnum 
n.network_connected_servers
       end
   with _ ->
     if n.network_netname <> "Global Shares"
@@ -149,7 +149,7 @@
            net_displayed = true;
            net_uploaded = n.network_uploaded;
            net_downloaded = n.network_downloaded;
-           net_connected = n.network_connected;
+           net_connected = n.network_connected_servers;
           }
         in
         Hashtbl.add G.networks n.network_netnum nn

Index: src/networks/bittorrent/bTMain.ml
===================================================================
RCS file: /sources/mldonkey/mldonkey/src/networks/bittorrent/bTMain.ml,v
retrieving revision 1.23
retrieving revision 1.24
diff -u -b -r1.23 -r1.24
--- src/networks/bittorrent/bTMain.ml   16 Jun 2006 16:53:19 -0000      1.23
+++ src/networks/bittorrent/bTMain.ml   26 Nov 2006 13:54:09 -0000      1.24
@@ -160,10 +160,10 @@
             [] -> "" | opfile :: _ -> options_file_name opfile);
         network_netflags = network.network_flags;
         network_netname = network.network_name;
-        network_enabled = network.op_network_is_enabled ();
+        network_enabled = network_is_enabled network;
         network_uploaded = !bt_upload_counter;
         network_downloaded = !bt_download_counter;
-        network_connected = 0;
+        network_connected_servers = 0;
       });
   CommonInteractive.register_gui_options_panel "BitTorrent"
   gui_bittorrent_options_panel

Index: src/networks/direct_connect/dcMain.ml
===================================================================
RCS file: /sources/mldonkey/mldonkey/src/networks/direct_connect/dcMain.ml,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -b -r1.5 -r1.6
--- src/networks/direct_connect/dcMain.ml       20 Nov 2003 16:43:18 -0000      
1.5
+++ src/networks/direct_connect/dcMain.ml       26 Nov 2006 13:54:09 -0000      
1.6
@@ -102,12 +102,12 @@
             [] -> "" | opfile :: _ -> options_file_name opfile);
         network_netname = network.network_name;
         network_netflags = network.network_flags;
-        network_enabled = network.op_network_is_enabled ();
+        network_enabled = network_is_enabled network;
         network_uploaded = Int64.zero;
         network_downloaded = Int64.zero;
         network_connected = List.length !connected_servers;
       });
-  network.op_network_share <- (fun a b c ->
-      ignore (CommonUploads.add_shared a b c));
+  network.op_network_share <- (fun fullname codedname size ->
+      ignore (CommonUploads.add_shared fullname codedname size));
   CommonInteractive.register_gui_options_panel 
   "DC" gui_dc_options_panel;
\ No newline at end of file

Index: src/networks/donkey/donkeyGlobals.ml
===================================================================
RCS file: /sources/mldonkey/mldonkey/src/networks/donkey/donkeyGlobals.ml,v
retrieving revision 1.108
retrieving revision 1.109
diff -u -b -r1.108 -r1.109
--- src/networks/donkey/donkeyGlobals.ml        26 Nov 2006 13:22:04 -0000      
1.108
+++ src/networks/donkey/donkeyGlobals.ml        26 Nov 2006 13:54:09 -0000      
1.109
@@ -56,6 +56,7 @@
 **************************************************************)
 
 let network = CommonNetwork.new_network "ED2K" "Donkey"
+  ~comment:(if Autoconf.donkey_sui_works () then "SUI" else "noSUI")
          [
     NetworkHasServers;
     NetworkHasSearch;

Index: src/networks/donkey/donkeyMain.ml
===================================================================
RCS file: /sources/mldonkey/mldonkey/src/networks/donkey/donkeyMain.ml,v
retrieving revision 1.61
retrieving revision 1.62
diff -u -b -r1.61 -r1.62
--- src/networks/donkey/donkeyMain.ml   21 Nov 2006 21:38:00 -0000      1.61
+++ src/networks/donkey/donkeyMain.ml   26 Nov 2006 13:54:09 -0000      1.62
@@ -372,10 +372,10 @@
             [] -> "" | opfile :: _ -> options_file_name opfile);
         network_netname = network.network_name;
         network_netflags = network.network_flags;
-        network_enabled = network.op_network_is_enabled ();
+        network_enabled = network_is_enabled network;
         network_uploaded = !donkey_upload_counter;
         network_downloaded = !donkey_download_counter;
-        network_connected = List.length (connected_servers ());
+        network_connected_servers = List.length (connected_servers ());
       });
   network.op_network_ports <- (fun _ ->
     [

Index: src/networks/fileTP/fileTPMain.ml
===================================================================
RCS file: /sources/mldonkey/mldonkey/src/networks/fileTP/fileTPMain.ml,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -b -r1.4 -r1.5
--- src/networks/fileTP/fileTPMain.ml   26 Jul 2005 23:16:48 -0000      1.4
+++ src/networks/fileTP/fileTPMain.ml   26 Nov 2006 13:54:09 -0000      1.5
@@ -94,7 +94,7 @@
         network_enabled = network.op_network_is_enabled ();
         network_uploaded = Int64.zero;
         network_downloaded = Int64.zero;
-        network_connected = 0;
+        network_connected_servers = 0;
       });
   CommonInteractive.register_gui_options_panel "FileTP"
   gui_fileTP_options_panel

Index: src/networks/gnutella/gnutellaMain.ml
===================================================================
RCS file: /sources/mldonkey/mldonkey/src/networks/gnutella/gnutellaMain.ml,v
retrieving revision 1.24
retrieving revision 1.25
diff -u -b -r1.24 -r1.25
--- src/networks/gnutella/gnutellaMain.ml       19 May 2006 23:43:55 -0000      
1.24
+++ src/networks/gnutella/gnutellaMain.ml       26 Nov 2006 13:54:09 -0000      
1.25
@@ -177,10 +177,10 @@
             [] -> "" | opfile :: _ -> options_file_name opfile);
         network_netflags = network.network_flags;
         network_netname = network.network_name;
-        network_enabled = network.op_network_is_enabled ();
+        network_enabled = network_is_enabled network;
         network_uploaded = Int64.zero;
         network_downloaded = Int64.zero;
-        network_connected = List.length !connected_servers;
+        network_connected_servers = List.length !connected_servers;
       });
   CommonInteractive.register_gui_options_panel "Gnutella" 
   gui_gnutella_options_panel

Index: src/networks/openFT/openFTMain.ml
===================================================================
RCS file: /sources/mldonkey/mldonkey/src/networks/openFT/openFTMain.ml,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -b -r1.3 -r1.4
--- src/networks/openFT/openFTMain.ml   24 May 2003 01:23:34 -0000      1.3
+++ src/networks/openFT/openFTMain.ml   26 Nov 2006 13:54:09 -0000      1.4
@@ -98,7 +98,7 @@
         network_config_filename = (match network.network_config_file with
             None -> "" | Some opfile -> options_file_name opfile);
         network_netname = network.network_name;
-        network_enabled = network.op_network_is_enabled ();
+        network_enabled = network_is_enabled network;
         network_uploaded = Int64.zero;
         network_downloaded = Int64.zero;
       })

Index: src/networks/opennap/opennapMain.ml
===================================================================
RCS file: /sources/mldonkey/mldonkey/src/networks/opennap/opennapMain.ml,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -b -r1.5 -r1.6
--- src/networks/opennap/opennapMain.ml 20 Nov 2003 16:43:24 -0000      1.5
+++ src/networks/opennap/opennapMain.ml 26 Nov 2006 13:54:09 -0000      1.6
@@ -96,7 +96,7 @@
             [] -> "" | opfile :: _ -> options_file_name opfile);
         network_netname = network.network_name;
         network_netflags = network.network_flags;
-        network_enabled = network.op_network_is_enabled ();
+        network_enabled = network_is_enabled network;
         network_uploaded = Int64.zero;
         network_downloaded = Int64.zero;
         network_connected = List.length !connected_servers;

Index: src/networks/server/serverMain.ml
===================================================================
RCS file: /sources/mldonkey/mldonkey/src/networks/server/serverMain.ml,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -b -r1.4 -r1.5
--- src/networks/server/serverMain.ml   29 Nov 2003 20:36:15 -0000      1.4
+++ src/networks/server/serverMain.ml   26 Nov 2006 13:54:10 -0000      1.5
@@ -340,7 +340,7 @@
         network_config_filename = (match network.network_config_file with
             None -> "" | Some opfile -> options_file_name opfile);
         network_netname = network.network_name;
-        network_enabled = network.op_network_is_enabled ();
+        network_enabled = network_is_enabled network;
         network_uploaded = Int64.zero;
         network_downloaded = Int64.zero;
       })

Index: src/networks/soulseek/slskMain.ml
===================================================================
RCS file: /sources/mldonkey/mldonkey/src/networks/soulseek/slskMain.ml,v
retrieving revision 1.12
retrieving revision 1.13
diff -u -b -r1.12 -r1.13
--- src/networks/soulseek/slskMain.ml   10 Apr 2006 19:16:36 -0000      1.12
+++ src/networks/soulseek/slskMain.ml   26 Nov 2006 13:54:10 -0000      1.13
@@ -106,7 +106,7 @@
             [] -> "" | opfile :: _ -> options_file_name opfile);
         network_netname = network.network_name;
         network_netflags = network.network_flags;
-        network_enabled = network.op_network_is_enabled ();
+        network_enabled = network_is_enabled network;
         network_uploaded = Int64.zero;
         network_downloaded = Int64.zero;
         network_connected = List.length !connected_servers;




reply via email to

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