As far as I know, the official edonkey client never provided any mean for peers to exchange sources addresses between them: they always had to rely on servers.
MLdonkey was the first client to provide such feature; To be fully compatible with existing protocol, it just faked "sources reply" UDP server packets to send sources to other peers.
Limitations were :
- UDP port number had to be guessed, and official client used random ports. MLdonkey enforced the "udp port number = tcp port number + 4" for itself (tcp port is published, so udp port could be guessed reliably with no extra information), and b8_bavard published that information so that regular client users could also benefit from (but not participate to, without modification) MLdonkey's sources propagation by setting their own UDP port accordingly. As far as I know, this is a little known unofficial trick, and few edonkey2000 users ever took advantage of it.
- some clients could be confused by this hack, and add MLdonkey peer to their servers list
- sources propagation rate is in control of sender, so it could waste a lot of bandwidth if receiver was not in need for more sources at that time.
Later, eMule developers added a protocol extension for sources exchange. They took a totally different route, using a new packet type. This scheme does not suffer from above limitations.
Since MLdonkey now also supports eMule sources exchange extension, its own sources propagation mecanism should be considered obsolete, and disabled. That can be done by setting
propagate_sources false. (eMule sources exchange is always enabled).
// this doesn't appear correct when compared to the description in donkey.ini:
Allow mldonkey to propagate your sources to other donkey clients
Then fix the comment /Pango