mldonkey-tasks
[Top][All Lists]
Advanced

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

[Mldonkey-tasks] [task #4194] selectable update for update_server_list (


From: spiralvoice
Subject: [Mldonkey-tasks] [task #4194] selectable update for update_server_list (servers/clients/Ov/Kad)
Date: Mon, 30 May 2005 13:17:34 +0000
User-agent: Mozilla/5.0 (X11; U; Linux i686; de-DE; rv:1.7.8) Gecko/20050519 Firefox/1.0.4

Follow-up Comment #1, task #4194 (project mldonkey):

Currently I am working on this but I found some code where I donĀ“t know what
to do:
------------------------------------------------
donkeyClient.ml

  DonkeySources.functions.DonkeySources.function_connect <-
    (fun s_uid ->
      try
        match s_uid with
          Direct_address _ ->
            let c = new_client s_uid in
            reconnect_client c
        | Invalid_address _ -> ()
        | Indirect_address (ip, port, id) ->

       if low_id ip && ip_reachable ip then
              query_id ip port id;
------------------------------------------------
This code is called when we are connected by a client.
If the client is firewalled (low_id ip true) we have to make
contact with this client (id) through its server (ip, port).

query_id called is also in donkeyClient.ml
------------------------------------------------
let query_id ip port id =
  let client_ip = client_ip None in

  if ip_reachable client_ip then
    let module Q = DonkeyProtoUdp.QueryCallUdp in
(*    lprintf "Ask connection from indirect client\n"; *)

    let s = check_add_server ip port in
------------------------------------------------
which calles check_add_server, there is a check for "if
!!update_server_list"
which, if set to false, breaks the connection between MLDonkey
and that client because the server never receives our "callback"
to the firewalled client.

So currently we can only connect to firewalled clients if they
are on the same server than we.

My plan for implementing the requested feature is to move the
"if !!update_server_list_***" statements into the code where
check_add_server and safe_add_server are called and remove the
checks from the mentioned functions completely.

Example:
------------------------------------------------
Some (ip, port) ->  if !!update_server_list_client then safe_add_server ip
port
------------------------------------------------

But what to do with the firewalled clients which are on other servers?

    _______________________________________________________

Reply to this item at:

  <http://savannah.nongnu.org/task/?func=detailitem&item_id=4194>

_______________________________________________
  Nachricht geschickt von/durch Savannah
  http://savannah.nongnu.org/





reply via email to

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