A brief description of the EDonkeyProtocol can be found at MLDonkey:eDonkey2000 and at [Infoanarchy]


Links

On Part size and merkle trees


Kad Links and other sfuff

Where to start looking?!

Packed packets

  1. CClientUDPSocket?::OnReceive?() - ClientUDPSocket?.cpp
    Notice
    Packed packets has only its msg_payload compressed, .i.e., the first 2 bytes of the packet (proto and msg) are intact.

Publishing the list of shared files into kad

  1. CSharedFileList?::Publish() - SharedFileList?.cpp
  2. CSharedFileList?::AddFile?() - SharedFileList?.cpp

keyword search

  1. CSearchResultsWnd?::DoNewKadSearch? - SearchResultsWnd?.cpp
  2. CSearchManager?::prepareFindKeywords - kad../kad..(/SearchManager)?.cpp
    Creates a new CSearch (Kad-only)
  3. CSearchManager?::getWords
    Splits search string into keywords and adds 'em to CSearch's list of keywords

And Zlib and the others emule extensions?

[aMule] has support for zlib implemented.


Client Software



Source Exchange


"One of the latest additions to the eMule program is source-propagation between clients. eMule will automatically distribute and fetch known sources for files with other clients it's connected to, greatly speeding the process of discovering rare files that aren't located on your immediately-connected server"[1]

Unknown issues (pending)




For inforrmation on other protocols see PeerToPeerProtocols