[Top][All Lists]
[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/