Voor het uitwisselen van bestanden kan onder andere gebruik worden gemaakt van het eDonkey-netwerk. Naast de originele client, eDonkey2000, werd er ook een opensourceclient ontwikkeld met de naam MLdonkey, die op een groot aantal besturingssystemen werkt. Deze laatste heeft in de loop van de jaren ondersteuning gekregen voor andere netwerken zoals Emule-kademlia, BitTorrent, Fasttrack, Gnutella en Gnutella2. De ontwikkelaars hebben in het afgelopen weekend versie 2.8.3 de deur uitgedaan met de volgende lijst van aanpassingen:
Version 2.8.3:
- Update camlzip to version 1.03 (thx to orbit for reporting)
- BT: Fix make_torrents to sort dictionary entries alphabetically. Bittornado did not read MLDonkey-made torrents (amadeo)
- MinGW: Work-around missing Unix.fstat - fixes failed removal of torrent files from torrents/[incoming|downloads]
- Unix2: Fix copying files > 1GB (1073741823 bytes), bug was introduced by patch 5589 after release of 2.8.2
- http_client: Retry GET request if HEAD request returns http error 400
- HTML: print tracker errors in html table at 'vd <num>' (Schlumpf)
- HTML: use Printf2.html_mods_cntr () for table row classes (Schlumpf)
- Swarmer: block choice algorithm 2 from patch 5141 is new default
- remove swarming_block_selection_algorithm = 1 because it finishes chunks too slowly
- remove swarming_block_selection_algorithm = 3 from TripleM because it uses too much CPU power.
- remove option swarming_block_selection_algorithm, hard-coded default is now 2
- remove option block_switching, hard-coded default is now true
- Optimize function print_command_result
- Improve porttest (Schlumpf)
- use 'porttest' command to start the network porttest the first time, after this to see the results
- new command 'force_porttest' to force an new porttest
- improve html porttest output and make it also available in telnet
- EDK: Do not send share list to servers with state Connecting
- HTML: show messages link in vd clickable (Schlumpf)
- Multiuser: New verbosity "com" to log commands by non-admin users
- Multiuser: Block commands preferred, bs, bp, port for non-admin users
- Swarmer: swarming_block_selection_algorithm = 3 (TripleM)
- this new algorithm select always the rarest choice, if average availability is below 5, or one choice_availability is below average availability
- added a hashtable to store blockmaps of uploaders for a given swarmer
- long term memory usage has to be observed
- Swarmer: Fix chunk propagation (pango)
- "voo changed" prints changed options only, useful for support (Schlumpf)
- EDK: fix display of porttest result images (Schlumpf)
- Multiuser: Fix wrong file path (user_commit_dir) in notification mail
- Command "set": better error text if option does not exist
- Fix small typo in buildinfo
- New core start parameter: -useradd "user pass", needed for Debian package
- New options for command force_web_infos: kind/URL (thx to Schlumpf)
- EDK: Recognize compatibleclient 60: IMPmule (imp-project.net)
- EDK: Log downloading file name when client disconnects
- GUI: Fix build of mlprogress (Alt linux)
- Options: New concept of option types, fix non-admin Sancho http preview
- EDK: Support compressed upload, implement file read cache (TripleM) new options:
- ED2K_upload_compression to enable compressed upload, default true
- ED2K_upload_compression_threshold, default 2000 bytes Size difference in bytes between one zone (180 kBytes) and its compressed counterpart, which has to occure, to send compressed parts instead of plain.
- ED2K_upload_compression_level, Zlib compression level, default 9
- ED2K_upload_compression_table_size, default 20
- HTML: Add HTML headers to prohibit browser-side caching (Schlumpf)
- Configure: Fix question whether to compile lablgtk, same as patch 5401
- Updated Mozilla protocol handler to version 1.10
- New option upload_complete_chunks (TripleM)
default false, if true, each client is allowed to complete only one chunk, independent, if it is empty or partial. this setting overrides upload_full_chunks and dynamic_upload_lifetime, but is, as a failsafe, limited by upload_lifetime (should be set reasonable high)
- EDK: Avoid uploading data more than due to eMules rotating block requests (pango)
- EDK: New option upload_full_chunks (thx to TripleM)
If the new option upload_full_chunks is set to true, each client is allowed to receive one chunk, this setting overrides upload_lifetime. Well, not exactly one chunk. eMule has this code in opcode.h: #define SESSIONMAXTRANS (PARTSIZE+20*1024) // "Try to send complete chunks" always sends this amount of data MLdonkey now does the same, if upload_full_chunks is true and client A got 9728000+20*1024 bytes during the current session its upload slot will be revoked unless pending slots are empty.
- EDK: Print network specific infos in command "vc
", remove unneeded fields from client structures - commonHasher: fix wrong arg types from several functions (Schlumpf)
- MinGW: fix missing declarations and wrong pointer initialization in stubs_c.c (Schlumpf)
- EDK: Support for files >4GB (TripleM, pango) - this patch does not include > 4GB support for Kademlia
- Swarming: Enable wrongly disabled select block memoization (pango)
- GD: Fix wrong months display (skeeve)
- New option share_scan_interval
- how often (in minutes) should MLDonkey scan all shared directories for new/removed files, default one minute
- on slow machines raise the interval to a higher value to reduce CPU load
- to force a re-scan of shared directories use command "reshare"
- Another longhelp cleanup (anhi)
- EDK: Parse more fields from server.met files
- EDK: OP_HELLO tag 0x75, print os_info in logfile
- HTML: Display share status in upstats
- New field type Field_KNOWN, EDK: recognize more HELLO/EmuleInfo tags
- CommonSources: Cleanups and reformatting the code (pango)
- Multiuser, chgrp: Prevent change of file_group to None if the user is not file_owner
- Multiuser, chown: Change file_group to user_default_group if the new user is not member of file_group
- Introduce display of session transfer values
- new columns for session up-/download
- send session values to GUIs
- HTML: Fix search list display when html_checkbox_search_file_list = true
- Remove use of deprecated sort module, remove unused sort2.ml* (pango)
- New option create_file_mode, rename create_dir_mask to create_dir_mode (pango)
- EDK: Fully parse emule_miscoptions1/2
- EDK: If update_server_list_client true, add yet unknown server of lowid clients