mldonkey-users
[Top][All Lists]
Advanced

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

[Mldonkey-users] [patch #5336] Fix LowID support for eDonkey network


From: Krzysztof Nowicki
Subject: [Mldonkey-users] [patch #5336] Fix LowID support for eDonkey network
Date: Sun, 27 Aug 2006 18:12:22 +0000
User-agent: Mozilla/5.0 (X11; U; Linux i686; pl; rv:1.8.1b1) Gecko/20060821 Firefox/2.0b1

URL:
  <http://savannah.nongnu.org/patch/?5336>

                 Summary: Fix LowID support for eDonkey network
                 Project: mldonkey, a multi-networks file-sharing client
            Submitted by: krissn
            Submitted on: Sunday 08/27/2006 at 18:12
                Category: Bug fixes
                Priority: 5 - Normal
                  Status: None
             Assigned to: None
        Originator Email: 
             Open/Closed: Open

    _______________________________________________________

Details:

The fact that MLDonkey has a problem with indirect connections is really
nothing new. I've been digging into this for some time and I think I found
the main reason why this doesn't work. The normal handling of a LowID client
is as follows:
1. MLD gets a LowID source. A client structure for client 1 is created with
client_kind Indirect_address(serverip, serverport, clientid, 0.0.0.0, 0). The
IP:port is not known at this stage.
2. CommonSources issues a connection request to client 1.
3. MLD sends a QueryID packet to the server owning that client.
4. The client connects and is identified as a new incoming connection. A
search is made to find out, if such a client is already known, but this
search won't bring any results, because now that the real IP:port is known,
we search for a client with client_kind = Indirect_address(serverip,
serverport, clientid, clientip, clientport). Of course such a client doesn't
exist and a new client 2 is created.
5. CommonSources doesn't know that client 1 (which is not connected) and
client 2 (which is now connected and waiting for a file request) are in fact
one and the same client. As a result client 1 connection attempt fails, and
client 2 disconnects itself after some idle time, because it didn't receive
any request.

To make things work I've fixed stage 4. I've rewritten the comparison in
donkeyGlobals:new_client to ignore client IP:port if the client is indirect.
The effect: callback connections running and resulting in a nice, fat data
stream from indirect sources right after adding a file into the download
queue.

Please review this patch whether it is correct or improve it, as I think
there is still some room for it.






    _______________________________________________________

File Attachments:


-------------------------------------------------------
Date: Sunday 08/27/2006 at 18:12  Name: mldonkey-2.7.7-lowid.patch  Size:
2.04KB   By: krissn

<http://savannah.nongnu.org/patch/download.php?file_id=10610>

    _______________________________________________________

Reply to this item at:

  <http://savannah.nongnu.org/patch/?5336>

_______________________________________________
  Message sent via/by Savannah
  http://savannah.nongnu.org/





reply via email to

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