1 (* Copyright 2001, 2002 b8_bavard, b8_fee_carabine, INRIA *)
3 This file is part of mldonkey.
5 mldonkey is free software; you can redistribute it and/or modify
6 it under the terms of the GNU General Public License as published by
7 the Free Software Foundation; either version 2 of the License, or
8 (at your option) any later version.
10 mldonkey is distributed in the hope that it will be useful,
11 but WITHOUT ANY WARRANTY; without even the implied warranty of
12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 GNU General Public License for more details.
15 You should have received a copy of the GNU General Public License
16 along with mldonkey; if not, write to the Free Software
17 Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
23 open CommonComplexOptions
26 open OpenFTComplexOptions
33 let is_enabled = ref false
35 let disable enabler
() =
36 if !enabler
then begin
39 Hashtbl2.safe_iter
(fun s
-> disconnect_from_server s
) servers_by_key
;
40 Hashtbl2.safe_iter
(fun c
-> disconnect_client c
) clients_by_num
;
41 (match !listen_sock
with None
-> ()
44 TcpServerSocket.close sock
"");
45 if !!enable_openft
then enable_openft
=:= false
49 if not
!is_enabled then
50 let enabler = ref true in
52 network
.op_network_disable
<- disable enabler;
54 if not
!!enable_openft
then enable_openft
=:= true;
57 Hashtbl.iter (fun _ file ->
58 if file_state file <> FileDownloaded then
59 current_files := file :: !current_files
62 List.iter
(fun s
-> Fifo.put ultrapeers_queue s
) !!ultrapeers
;
64 add_session_timer
enabler 1.0 (fun timer
->
65 OpenFTServers.connect_servers
());
67 add_session_timer
enabler 60.0 (fun timer
->
68 OpenFTServers.ask_for_files
();
69 OpenFTServers.send_pings
());
71 add_session_timer
enabler 300.0 (fun timer
->
72 OpenFTServers.recover_files
());
74 OpenFTClients.listen
();
78 network
.op_network_is_enabled
<- (fun _ -> !!CommonOptions.enable_openft
);
79 option_hook enable_
(fun _ ->
80 if !CommonOptions.start_running_servers
then
81 if !!enable_
then network_enable network
82 else network_disable network
);
84 network.op_network_save_simple_options <- OpenFTComplexOptions.save_config;
85 network.op_network_load_simple_options <-
88 Options.load openft_ini;
90 OpenFTComplexOptions.save_config ()
93 network
.op_network_enable
<- enable;
94 network
.network_config_file
<- Some openft_ini
;
95 network
.op_network_info
<- (fun n
->
97 network_netnum
= network
.network_num
;
98 network_config_filename
= (match network
.network_config_file
with
99 None
-> "" | Some opfile
-> options_file_name opfile
);
100 network_netname
= network
.network_name
;
101 network_enabled
= network_is_enabled network
;
102 network_uploaded
= Int64.zero
;
103 network_downloaded
= Int64.zero
;
107 let main (toto
: int) = ()