/[mldonkey]/mldonkey/src/daemon/common/commonWeb.ml
ViewVC logotype

Diff of /mldonkey/src/daemon/common/commonWeb.ml

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 1.16 by spiralvoice, Fri Jul 22 10:58:55 2005 UTC revision 1.17 by spiralvoice, Wed Jul 27 19:57:24 2005 UTC
# Line 174  let propagation_socket = UdpSocket.creat Line 174  let propagation_socket = UdpSocket.creat
174  let counter = ref 1  let counter = ref 1
175    
176  let connect_redirector () =  let connect_redirector () =
177    if !!propagate_servers then begin    if !!propagate_servers && !!enable_mlnet_redirector then begin
178        decr counter;        decr counter;
179        if !counter = 0 then begin        if !counter = 0 then begin
180            counter := 6;            counter := 6;
# Line 198  let load_web_infos () = Line 198  let load_web_infos () =
198  (* Try to connect the redirector to get interesting information, since we  (* Try to connect the redirector to get interesting information, since we
199  are not allowed to use savannah anymore. The redirector should be able to  are not allowed to use savannah anymore. The redirector should be able to
200  support the charge, at least, currently. *)  support the charge, at least, currently. *)
201    let (name, port) = !!mlnet_redirector in    if !!enable_mlnet_redirector then begin
202    let packet = gen_redirector_packet () in        let (name, port) = !!mlnet_redirector in
203    Ip.async_ip name (fun ip ->        let packet = gen_redirector_packet () in
204        try        Ip.async_ip name (fun ip ->
205          if !verbose_redirector then lprintf_nl "connecting to redirector";            try
206          let token = create_token unlimited_connection_manager in              if !verbose_redirector then lprintf_nl "connecting to redirector";
207          let sock = TcpBufferedSocket.connect token "connect redirector"              let token = create_token unlimited_connection_manager in
208              (Ip.to_inet_addr ip) port              let sock = TcpBufferedSocket.connect token "connect redirector"
209              (fun sock event ->                  (Ip.to_inet_addr ip) port            
210                match event with                  (fun sock event ->
211                | BASIC_EVENT (LTIMEOUT | RTIMEOUT) ->                    match event with
212                    TcpBufferedSocket.close sock Closed_for_timeout                    | BASIC_EVENT (LTIMEOUT | RTIMEOUT) ->
213                | _ -> ())                        TcpBufferedSocket.close sock Closed_for_timeout
214          in                    | _ -> ())
215          TcpBufferedSocket.set_rtimeout sock 30.;              in
216          let to_read = ref [] in              TcpBufferedSocket.set_rtimeout sock 30.;
217          set_reader sock (cut_messages (fun opcode s ->              let to_read = ref [] in
218                if !verbose_redirector then lprintf_nl "redirector info received";              set_reader sock (cut_messages (fun opcode s ->
219                let module L = LittleEndian in                    if !verbose_redirector then lprintf_nl "redirector info received";
220                      let module L = LittleEndian in
221                let motd_html_s, pos = L.get_string16 s 2 in  
222                let pos = if motd_html_s <> "XX" then                    let motd_html_s, pos = L.get_string16 s 2 in
223                    let servers_met_s, pos = L.get_string16 s pos in                    let pos = if motd_html_s <> "XX" then
224                    let peers_ocl_s, pos = L.get_string16 s pos in                        let servers_met_s, pos = L.get_string16 s pos in
225                    let peers_dat_s, pos = L.get_string16 s pos in                        let peers_ocl_s, pos = L.get_string16 s pos in
226                    let motd_conf_s, pos = L.get_string16 s pos in                        let peers_dat_s, pos = L.get_string16 s pos in
227                    let peers_kad_s, pos = L.get_string16 s pos in                        let motd_conf_s, pos = L.get_string16 s pos in
228                          let peers_kad_s, pos = L.get_string16 s pos in
229                    motd_html =:= motd_html_s;  
230                          motd_html =:= motd_html_s;
231                    let servers_met_file = Filename.temp_file "servers" ".met" in  
232                    File.from_string servers_met_file servers_met_s;                        let servers_met_file = Filename.temp_file "servers" ".met" in
233                    if !!enable_donkey then                        File.from_string servers_met_file servers_met_s;
234                    load_file "servers.met" servers_met_file;                        if !!enable_donkey then
235                          load_file "servers.met" servers_met_file;
236                    let peers_ocl_file = Filename.temp_file "peers" ".ocl" in  
237                    File.from_string peers_ocl_file peers_ocl_s;                        let peers_ocl_file = Filename.temp_file "peers" ".ocl" in
238                    if !!enable_overnet then                        File.from_string peers_ocl_file peers_ocl_s;
239                    load_file "ocl" peers_ocl_file;                        if !!enable_overnet then
240                            load_file "ocl" peers_ocl_file;
241                    let peers_dat_file = Filename.temp_file "contacts" ".dat" in  
242                    File.from_string peers_dat_file peers_dat_s;                        let peers_dat_file = Filename.temp_file "contacts" ".dat" in
243                    if !!enable_overnet then                        File.from_string peers_dat_file peers_dat_s;
244                    load_file "contact.dat" peers_dat_file;                        if !!enable_overnet then
245                            load_file "contact.dat" peers_dat_file;
246                    let motd_conf_file = Filename.temp_file "motd" ".conf" in  
247                    File.from_string motd_conf_file motd_conf_s;                        let motd_conf_file = Filename.temp_file "motd" ".conf" in
248                    load_file "motd.conf" motd_conf_file;                        File.from_string motd_conf_file motd_conf_s;
249                          load_file "motd.conf" motd_conf_file;              
250                    let peers_kad_file = Filename.temp_file "peers" ".kad" in                    
251                    File.from_string peers_kad_file peers_kad_s;                        let peers_kad_file = Filename.temp_file "peers" ".kad" in
252                    if !!enable_kademlia then                        File.from_string peers_kad_file peers_kad_s;
253                    load_file "kad" peers_kad_file;                        if !!enable_kademlia then
254                            load_file "kad" peers_kad_file;
255                    pos  
256                  else                        pos
257                        else
258                  let get_item s pos =  
259                    let kind, pos = get_string32 s pos in                        let get_item s pos =
260                    let file, pos = get_string32 s pos in                          let kind, pos = get_string32 s pos in
261                    (kind, file), pos                          let file, pos = get_string32 s pos in
262                  in                          (kind, file), pos
263                  let files, pos = L.get_list16 get_item s pos in                        in
264                  List.iter (fun (kind, file) ->                        let files, pos = L.get_list16 get_item s pos in
265                      let temp_file = Filename.temp_file "temp" ".mld" in                        List.iter (fun (kind, file) ->
266                      File.from_string temp_file file;                            let temp_file = Filename.temp_file "temp" ".mld" in
267                      load_file kind temp_file                            File.from_string temp_file file;
268                  ) files;                            load_file kind temp_file
269                  pos                        ) files;
270                in                        pos
271                let ip = L.get_ip s pos in                    in
272                last_high_id := ip;                    let ip = L.get_ip s pos in
273                      last_high_id := ip;
274                lprintf "Redirector info loaded (IP set to %s)\n"  
275                  (Ip.to_string ip);                    lprintf_nl "Redirector info loaded (IP set to %s)"
276                TcpBufferedSocket.set_lifetime sock 30.;                      (Ip.to_string ip);
277                      TcpBufferedSocket.set_lifetime sock 30.;
278            ));  
279          write_string sock packet                ));
280                write_string sock packet
281        with e ->  
282            lprintf "Exception %s while connecting redirector\n"            with e ->
283              (Printexc2.to_string e)                lprintf_nl "Exception %s while connecting redirector"
284    );                  (Printexc2.to_string e)
285          )
286        end;
287    
288    if !!network_update_url <> "" then begin    if !!network_update_url <> "" then begin
289      load_url "motd.html" (Filename.concat !!network_update_url "motd.html");      load_url "motd.html" (Filename.concat !!network_update_url "motd.html");
290      load_url "motd.conf" (Filename.concat !!network_update_url "motd.conf");      load_url "motd.conf" (Filename.concat !!network_update_url "motd.conf");
291    end;    end;
292    List.iter (fun (kind, period, url) ->    List.iter (fun (kind, period, url) ->
293        if !days mod period = 0 then        if !hours mod period = 0 then
294          match kind with          match kind with
295          | "contact.dat" -> if !!enable_overnet then load_url kind url          | "contact.dat" -> if !!enable_overnet then load_url kind url
296          | "guarding.p2p" -> load_url kind url          | "guarding.p2p" -> load_url kind url

Legend:
Removed from v.1.16  
changed lines
  Added in v.1.17

savannah-hackers-public@gnu.org
ViewVC Help
Powered by ViewVC 1.1.26