The release mechanism was changed in a way that minor updates
will not get a release tag in CVS, also the version number reported
by MLDonkey will stay the same.

Patches done after the last release are experimental,
please test carefully and report your findings.

All numbers mentioned here can be found as patches on
http://savannah.nongnu.org/patch/?group=mldonkey

To compile MLDonkey on MinGW follow this guide:
http://mldonkey.sourceforge.net/Windows#MinGW_Installation

ChangeLog
=========

2006/11/29 version 2.8.2 = tag release-2-8-2
5597: GD: New option html_mods_vd_gfx_h_intervall
      (compute values for hourly graph every x minutes) (skeeve)

2006/11/28
5591: EDK: Fix small file search result parsing

2006/11/26
5590: EDK: .gz & .bz2 support for command "servers"
5581: EDK: Improve server logins, send fewer data, minor improvements
- Copied eMule behaviour:
  - send fewer data to server during login, support server capability "newtags",
    same opcodes as in eMule are used
  - UDP ping servers once per 4,5h - (random of 1s-1h)
  - UDP server statistic request during every second UDP ping
    (~9h, not once per hour like before)
  - request serverlist from server only when ED2K_update_server_list_server true
  - ping one server per 5s
  - remove servers after 10 unsuccessful UDP pings
  - save challenge values sent with UDP server statistic and description request
    and dismiss answers containing wrong challenge
- New functions, restructurings:
  - new server status "Server full"
  - support new tag emule_miscoptions2 (empty atm.)
  - remove server descriptions from servers.ini
  - clean donkeyTypes.server definitions
5588: Cleanup commonNetwork (pango)
5582: EDK: Improve CryptoPP logging (Schlumpf)
5584: EDK: Remove removed servers from walker server lists
5585: EDK: New parameter "all" for command "x" to disconnect all conn. servers
5586: BT: Recognize Bitrocket clients

2006/11/21
5579: Remove BasicSocket.[mini|maxi], replace them with Pervasives functions
- small fix for DonkeyOptions.max_allowed_connected_servers
5578: Remove unused files
- src/utils/net/tcpClientSocket.ml
- src/utils/net/tcpClientSocket.mli
- src/utils/net/tcpSocket.mli
5577: EDK: Send correct SUI tags
- sometimes MLDonkey sent SUI=true tag when CryptoPP was not linked

2006/11/20
5568: EDK: Support CIDR and IP ranges in server_black_list (pango)
5574: allowed_ips: Fix list usage when 0.0.0.0/0 is part of the list (pango)
5570: Some log messages in gettext module (Schlumpf)
5569: HTML: Fix display bug in server list after js popups
      introduced by patch #5549 (Schlumpf)
5564: HTML: Remove non-working option use_html_frames (Schlumpf)
5563: EDK: Fix broken log message when master server changes (Schlumpf)

2006/11/15
5556: web_infos: new option rss_preprocessor used for fixing broken RSS feeds,
      safer process spawning for command "!" (pango)
- broken feeds like http://thepiratebay.org/rss.php?cat=D601 can now be parsed
  directly using (for example) xmllint, if a feed can not be read be MLDonkey
  its piped through rss_preprocessor and read again
5560: EDK: Parse some more server.met fields, log unknown server tags

2006/11/14
5424: web_infos/rss: shell:// type url
5549: EDK: Parse all data from server.met, new HTML javascript popup
5553: EDK/OV/KAD: small updates (bogeyman)
- EDK: log unknown client tags with verbosity mct
- OV/KAD: ignore OvernetPeerNotFound and log number of peers every
  60 secs when logging
5551: web_infos: Fix mtime detection, old files were not updated
5550: debug_fileinfo: Print [a|c|m]time values
5530: GD: Improve graph output (skeeve, Schlumpf)
- html_mods_vd_gfx_h_grid_variable
  "Stretch hourly until at program start", default true
- html_mods_vd_gfx_h_grid_time
  "Max hours on time scale per grid (0 = no limit)", default 0
- html_mods_vd_gfx_subgrid
  "Number of shown subgrids on graph (0 = no subgrids)", default 0

2006/11/13
5548: New search parameters: "-and", "-or", "-not", removed "-without"
      (Schlumpf)
5546: Some sharing updates
- solved bug 10957, updating the prio of an already shared dir is now possible
- fix bug where missing shared dirs with strategy incoming_* where not recreated
- remove "network = []" from downloads.ini, currently not supported
- created workaround to fix bug on MinGW: no files were shared. Introduced by
  patch 5475, but source of problem is Ocaml bug 4159
5547: HTML: Fix unicode display in vd & upstats javascript popups

2006/11/12
5545: EDK: Do not show empty server message lines in GUI
5509: Common: Merge file_print functions,
      BT: print BT-specific source infos in Telnet (thx to jave)
5544: Clean up code to avoid otags warnings (pango)
5543: Improve exception handling, fix some indentions (pango)
5542: CommonSources: Work-around division-by-zero bug in Ocaml
      on Alpha platform (pango)

2006/11/09
5526: Multiuser: Internal restructuring, new commands
- from ftp://ftp.berlios.de/pub/mldonkey/pango/userdb-cleanups_v2.patch (pango)
  - create commonUserDb.mli to protect userdb data from other modules
  - cleanups
- replace strings in commonFile with multiuser commonTypes.userdb/groupdb
- implement security checks when core starts
  - user "admin" must exist
  - group "mldonkey" must exist and must have admin status
- update HTML interface, command "users"
  - create link to remove a group from a user
  - create link to change group admin status
  - new column group members
- Telnet: Show all data in command "users"
- do not allow removal of users or groups with downloads,
  groups with members, user "admin" and group "mldonkey"
- filter files shown with command "downloaders"
- fixed bug where wrong group list was displayed in HTML, vd #file_num
- Display user and groups columns
  new options html_mods_vd_user & html_mods_vd_group to en-/disable display in HTML, vd
  - Javascript popups show User:Group infos
  - Telnet support
- implement new commands
  - usergroupadd <user> <group> : add a group to a mldonkey user
  - usergroupdel user> <group> : remove a group from a mldonkey user
  - userdgroup <user> <group|None> : change user default group
  - groupdel <group> : remove an unused mldonkey group
  - groupadmin <group> <true|false> : change group admin status
- Restrict commands to admin users:
  - bw_toggle
  - enable
  - disable

2006/11/06
5527: mlguistarter: print correct syntax (fixes Debian bug #396754)

2006/11/05
5481: Overnet: Small updates
- do not print opcode 18 (OvernetNoResult) as unknown message
- parse bcp type bcp://xxxxxxxxxxxxxxxxxxxxxxxxxxx:ip:tcpport:udpport
- print debug log message when a new source was added
5513: HTML: Let webinterface work in a HTML frame (ported from Knockers Mulus)
- third button row does not work yet, patches welcome
5521: BT: Fix non-working EDK upload when BT is enabled,
      introduced by patch 5461

2006/10/31
5508: OV/KAD eMule style search and some small fixes (bogeyman)
5486: UDP bandwidth monitor fix (bogeyman)
5505: EDK: Support aMule/Hydranode style OS_INFO tag

2006/10/30
5488: Multiuser: New commands
- groups -> displays groups of the logged-in user
- dgroup -> displays default group of the logged-in user
- restrict command "unshare" to admin users

2006/10/29
5475: Multiuser: Implement user_commit_dir
- directories with strategy incoming_files are shared recursively now
- support several directories with incoming_* strategies, use the
  first one with enough space to commit the finished file

2006/10/27
5499: Configure: find camlp4 in local, fix patch 5479 (dunk)

2006/10/26
5477: BT: Add downloads to share list after core restart

2006/10/25
5474: updated bw_toggle
- fix cosmetic bug, wrong values were displayed
  as a result if option_hook changed values
5489: HTML: Improve serverlist display (Schlumpf)
5487: Update URLs, change mldonkey.net to mldonkey.org
5485: HTML: Print sharing strategies in command "shares"
5461: Release slot, fix missing filenames in upstats
- Each downloading file can be set to status "Release", this can
  be done by clicking the "R" column in HTML, Transfers or by
  using the new "release <file_num>" command to toggle the state.
- A new option max_release_slots exists, default 20% of the default
  5 max_upload_slots. This means 1 upload slot is available per default
  and granted for files with status "Release" when requested.
- Show filenames in pending upload slots list
5484: Fix DNS test, test other domains besides www.mldonkey.net

2006/10/23
5474: New command bw_toggle (ported from Knockers Mulus client)
- two new options: max_hard_upload_rate_2 and max_hard_download_rate_2
- new command bw_toggle, quickly switch between two bandwidth options
5480: Update Mozilla protocol handler, cleanup docs in distrib/
5479: Configure: Force presence of camlp4
5478: Support gdlib-config --static-libs function (new on Debian Etch)
5476: Urladd: Change default period to 0 (load file only when core starts)

2006/10/21
5473: Log: Redirect CryptoPP messages to MLDonkey logfile (Schlumpf)
5472: Urladd: New optional parameter period (in hours) (thx to Schlumpf)
5471: HTML: New colums for pending slots list: SUI, GeoIP, Filename
5470: Options: New type percent_option, values are bound to be >= 0 and <= 100
5469: HTML: Implement 404 error page for unknown URLs

2006/10/20
5419: EDK: Re-implement titanesel.ws links - service is up again (thx to sk38)

2006/10/13
5458: OV/KAD: tweak and bugfix the search (bogeyman)

2006/10/12
5454: OV/KAD: Block blocked ips + small Overnet updates (bogeyman)
5451: HTML: clickable new messages indicator (jave)

2006/10/09
5428: HTML: Fix style sheet errors (rwruck)
5446: EDK: Small update for EDK publish patch 5430
- new option max_published_files
  maximum number of files published to servers per minute, eMule default 200
- bug fix for patch 5430, publish also to non-preferred servers

2006/10/08
5430: EDK: Improve file publishing
- publish no more than 200 files/minute to avoid server-side blacklisting,
  eMule uses the same limit,
  least published files are published first (thx to pango)
- respect server hard_limit, never publish more files to servers
- HTML: in server list display number of files published by server, by clicking
  on this number the list of files is displayed (new command server_shares num)
- HTML: diplay master server status, only master server are used for publishing
- HTML: in upstats display number of server the file was published to,
  also display server name + IP in javascript popup
- bug fix: properly update DonkeyGlobals.master_server to be used in 
  DonkeyClient.read_first_message, this is used when replying to non-Overnet
  clients so they know to which server MLdonkey is connected to,
- remove development option become_master_delay
5445: Self-test charset conversion, disable conversion if test fails
5444: BT: Correctly display client connected time,
      also allow correct upload speed calculation (tradie)
5443: BT: do not allow connections with ourselves (tradie)

2006/10/06
5442: BT: Verbose error messages when torrent is sent from GUI,
      BT-multiuser: Protect command seeded_torrents
5441: BT: Re-enable all trackers when file is resumed
5440: HTML: Strip CR from multiline dllink input to fix FileTP filenames

2006/10/03
5439: Increase required ocaml version to 3.09.3 (schlumpf),
      remove old TYPE_FORMAT stuff needed for Ocaml < 3.06 (pango)

2006/10/02
5297: In addition to previous patch 5297 force conversion of allowed_ips to
      IP blocklist when $MLDONKEY_DIR points to an existing directory
      and ini files are created for the first time
5429: Fix compile bug in Ocaml 3.08.3 (thx to eike for reporting)

2006/10/01
5404: New command porttest, support for eMule- and Azureus-style porttest
      (thx to pango for Azureus result parsing)
5421: HTML: Add "Users" to options frame (unease)
5429: New common lprintf_file_nl function
5432: Updates and fixes for the Win resource file (schlumpf)

2006/09/26
5407: BT: Improve handling of tracker error messages
- print additional information in telnet, vd #num already present in HTML
- show tracker errors in Telnet and HTML popups over tracker info lines
- pause torrents with no valid trackers left
5336: EDK: Fix lowid support (krissn)
5427: EDK: Increase hash speed when threads are available (pango)

2006/09/25
5426: CommonSources: Reduce CPU load when refilling queues
      of many non-BT downloads (pango)
5425: FileTP: Support options file_started_cmd and pause_new_downloads
5423: Print warning for empty admin password only if allowed_ips was altered
5422: Command "sources": Display only downloading files

2006/09/24
5405: BT: Use field "encoding" from .torrent to convert strings to UTF-8
5419: EDK: Remove titanesel.ws links
5418: Gnutella/G2/Fasttrack: Support client_bind_addr
5417: Edonkey comments: Telnet support, UTF-8 output in HTML
5416: Makefile.in: New variable $DEVFLAGSOPT for .cmx files (jave)
5415: New command option: rem disc - remove all disconnected servers

2006/09/23
5414: Edonkey comments, update gui prot, some bt peer ids (zet)
- Reimplement edonkey file comments with ratings (ro)
  (fixes exploitable DOS introduced in patch #5371)
- Add options "comments_filter", "max_comments_per_file", "max_comment_length"
- GUI protocol updated for comments, stats, libmagic, users/groups
- BT: Identify some more peer ids, as well as the reserved bits
- Fix some html code and other bugs
- Minor code cleanup

2006/09/22
5411: Portinfo: Rename gift_port to gift_port GUI

2006/09/19
5406: Multiuser: Small bug fixed in recover_temp (mu2.patch)
5406: Main multiuser patch, see docs/multiuser.txt for details
      thx to jave, pango, zet and many other people who have helped
      to make this work possible
- this patch is experimental, if it breaks, you can keep the pieces;-)
- multigroup_usercommit.patch and multigroup_su.patch are not included
- this patch is still not finished, the To-Do list in docs/multiuser.txt
  is still long, also GUI protocol updates have to be implemented.
  To manage users, groups and files, its best to use the HTML interface,
  multiuser commands can also be used in Telnet interface.
-------------------------------------------------------------------------------
2006/09/17 version 2.8.1 = tag release-2-8-1
5401: Fix question whether to compile Ocaml with some bash versions (pango)
5400: Allow use of Ocaml 3.09.3, keep 3.09.2 as default
5399: EDK, Telnet: Fix and clarify message when starting a search (schlotter)

2006/09/16
5397: EDK: Disable broken option emulate_sparsefiles
5395: Improve max_hard_up/download_rate computation code (pango)
5380: BT: Add file_num to certain log entries (jave)
5392: fix typos in help texts (schlotter)
5394: Fix max_hard_up/download_rate computation
- crashed on Windows when max_hard_upload_rate = 0
- when max_hard_upload_rate = 0 max_hard_download_rate was badly computed
-------------------------------------------------------------------------------
2006/09/14 version 2.8.0 = tag release-2-8-0
5390: Distinguish between charsets zh_cn and zh_tw
5389: Fix verify_chunks (pango)
5388: Small log update

2006/09/13
5386: Telnet: Longhelp cleanup
5385: Command mem_stats: verbosity 0 is default now
5360: patch removed, it does not fix the bug
5383: BT: Detect new client types (thx to pango)
- fix Mainline detection for two-digit version numbers
- fix Tornado detection
- fix broken Bits on wheels detection
- detect Rufus
- detect Bitspirit v3
5384: BT: Fix serious bug causing bad performance introduced
      by abstract bitmaps patch (pango)

2006/09/07
5369: Portinfo: fix String.length problems in Telnet (5369_2.patch)

2006/09/05
5294: HTML: Fix sources display for Gnutella/G2/Fasttrack/Filetp
      broken by patch #5294 (thx to z)
5368: Remove unused code from md5_c.c & os_stubs.h
5371: EDK: Support for eMule comments (read-only)
- new option html_mods_vd_comments to enable column in HTML, vd
- comments are shown in javascript popups and vd #num
5369: New command portinfo, display used ports during start-up

2006/09/04
5370: Correct option_versions defaults, remove commented EDK code

2006/09/03
5367: EDK: Use random default for ED2K_port instead of fixed 4662
- existing ini files are never changed
- after donkey.ini is created the value is not changed automatically
5366: HTML: Remove obsolete EDK history links
5365: Accept FTP URLs on command line
5364: Update options descriptions, remove obsolete options, clean log
5363: Limit max_hard_download_rate when max_hard_upload_rate < 10
- upload >= 10    -> unlimited download
- upload < 10 > 3 -> download limited to upload * 4
- upload < 4      -> download limited to upload * 3

2006/09/01
5361: Faster filenames_variability computation (pango)
5315: EDK: Change some internal server data to option values
5354: New option: max_filenames, maximum number of different filenames
5355: Move buffer_writes_delay timer from Donkey to Global module
5344: Small code optimization for stderr warnings (thx to pango)

2006/08/28
5341: New command: filenames_variability
- compute differences between the filenames of a file to detect fakes
  the higher the value, the more likely its a fake
5335: Fix small bugs in "!" command (execute shell commands)
5334: HTML: Display edk2 links in search results
5333: Clean logging (Swarmer, Fasttrack, Gnutella)
5332: New command option: rem blocked - remove all IP blocked servers
5330: Configure: Check MinGW version, at least 3.10 is needed (Schlumpf)
5329: some configure improvements and cleanups (Schlumpf)

2006/08/26
5320: some html_mods tables & css improvements (Schlumpf)
5322: Use CXXFLAGS present at configure when compiling (smimram)

2006/08/21
5319: Configure: New option --enable-minimum
- Compile MLDonkey with Donkey only, without gd, magic, bzip2, sui
5304: cleanup donkeyOptions.ml (whitespace, tabs, comments) (Schlumpf)
5303: cleanup btOptions.ml (whitespace, tabs, comments) (Schlumpf)
5302: cleanup commonOptions.ml (whitespace, tabs, comments) (Schlumpf)
5318: Fix wrong buildinfo configure args with autoconf 2.60
5317: Compile fix for GTK1 newgui in addition to patch 5310

2006/08/16
5309: Increase reserved number of FDs from 20 to 40 for dynamic libs
5310: EDK: Request filelist from friends only when requested,
      disable automatic download (pango)
5312: GTK2 GUI: Fix histograms (su_blanc)
5313: CryptoPP: Check for g++ capabilities

2006/08/15
5308: CryptoPP: Fix infinite loop when re-creating private key fails
5307: CryptoPP: Deactivate compiler option -momit-leaf-frame-pointer
5300: Fix iconv compile bug on Eisfair
5299: Support magicdb in $MLDONKEY_DIR/magic/magic if present
      this location is used in addition to the defaults of libmagic
5277: MinGW: use new gettimeofday() from mingw-runtime-3.10 (Schlumpf)

2006/08/12
5298: Some internal changes moved from multiuser patch to CVS
5285: GUI: Self-test en-/decoding only down to protocol 24 to solve
      crash when system date is wrong
5297: Force conversion of allowed_ips to IP blocklist when $MLDONKEY_DIR
      and ini files are created for the first time
5296: Telnet: Fix filesize display for 1kb, 1mb, 1gb values

2006/08/11
5295: Hard-coded minimum of 600s for min_reask_delay

2006/08/10
5294: Clean logging, small "if .. then true else false" function rewrites

2006/08/09
5288: EDK: Improve log when sharing is prevented due to inconsistent filesizes
5287: Swarmer: Remove obsolete option file_bitmap from files.ini
5286: Swarmer: (pango WIP10a)
      Fix commit of merged downloads + internal optimizations
5283: EDK: Fix IP display in GUIs for some firewalled clients

2006/08/08
5281: BT: Allow startbt to use URLs without extension ".tor" and ".torrent"

2006/08/06
5275: Change functions called when SIGHUP is sent
- BT: stop_all_bt is called to improve disconnect recognition
- instead of closing all sockets now all clients+servers are disconnected,
  GUIs will not be disconnected anymore
5276: web_infos, part II: Update server.met URL
- fix defaults and server list URL

2006/08/05
5276: web_infos: Update server.met URL
- http://www.jd2k.com/server.met does not exist anymore,
  now using http://www.gruk.org/server.met.gz again

2006/08/04
5272: Fix OS-detection bug in Unicode conversion when committing files
- should solve file naming problems on non-UTF8 systems

2006/07/29
5269: Fix maximum filename length recognition on Mac OS X

2006/07/28
5268: Swarmer: Fix Division_by_zero when starting downloads
      of files smaller than 200 bytes

2006/07/27
5266: EDK: New default 600s for upload_timeout, 60s was too short
5265: EDK: New option keep_sources, false to disable use of file_sources.ini
5264: allowed_ips: Support CIDR address/mask format and IP ranges (pango)
* old syntax is converted to CIDR format:
  - 192.168.000.255 -> 192.168.000.000/24
  - 192.168.255.255 -> 192.168.000.000/16
  - 192.255.255.255 -> 192.000.000.000/8
  - 255.255.255.255 -> 000.000.000.000/0
* new possible syntax, to calculate: http://www.subnet-calculator.com/cidr.php
  - CIDR, like 192.168.0.106/30 (192.168.0.104 - 192.168.0.107)
  - IP ranges, like 192.168.1.123 - 192.168.1.133

2006/07/24
5262: Small compile patch for Mac OS X 10.2.8 (Jaguar), small log fix
5260: Enable logging to syslog, update syslog.ml to version 1.3
* New option log_to_syslog, default false
  Post log messages to syslog. This setting is independent of log_file
  and its associated commands, therefore close_log does not stop log to syslog.
  Its therefore possible to log to syslog and log_file at the same time.
5261: MinGW: Fix compile bug with mingw-runtime-3.10
5259: Use Charset functions to determine extention of
      mlnet_strings file if $LANG is not set

2006/07/21
5257: HTML: Let allowed_ips allow connections from IPs part
      of IP blocklist for HTML interface only
5258: Add some files to src/utils/lib for later usage
* from pango
  ./src/utils/lib/levenshtein.ml
* from http://packages.qa.debian.org/s/syslog-ocaml.html
  ./src/utils/lib/syslog.ml
  ./src/utils/lib/syslog.mli

2006/07/20
5256: GTK1 GUIs: Compile fix for patch 5253
5253: Commit: Remove spaces at end of filename on FAT partitions,
      respect max_name_len value for all filesystems (pango)
5255: EDK: New client type VeryCD (compatibleclient 240)
5254: EDK: New default 60s for upload_timeout
5247: Update camlzip library to version 1.02 (Xavier Leroy)
- 64-bit incompatibility fixed
- Better support for large ZIP files (> 2 Gb)
5252: Update config.guess and config.sub to version 2006-07-02
5251: HTML: Re-implement motd_html by popular demand
* This patch brings motd_html back in addition to the current welcome message,
  default is empty.
5250: EDK: Print High/LowID in cleartext for command "id", fix LowID display
5249: Remove obsolete files from src/utils/[cdk;lib] and tools/
5246: HTTP: Print 401 error when login was unsuccessful

2006/07/17
5243: HTTP: Print 403 error for requests blocked by allowed_ips

2006/07/15
5203: Swarmer: Anti-fragmentation (pango, antifrag_v7)
* Each file is divided into blocks saved in new option
* file_disk_allocation_bitmap in swarmer section of files.ini
* Blocksize is computed like this: file_size / 200, rounded up to full
  megabytes, if bigger than 10MB: 10 MB are used as maximum blocksize.
  Preallocated blocks are marked file_disk_allocation_bitmap option.
* Blocks already fully preallocated on disk are prefered for downloading.
  That way one can get antifragmentation benefits without preallocating
  too much space, specially for downloads with small chunks.
* If the block about to be filled with data for the first time its read/written
  back to disk to allocate the space.
  Set verbosity to "verb" to enable logging of preallocation.
5242: GTK2 GUI: Remove unnecessary linefeed in console,
      remove some log and compiler warnings
5239: GTK2 GUI: Fix result sorting,
      update search results instead of double display (su_blanc)

2006/07/14
5222: Improve log output when HDD is full
5214: Gettext: Improve translations
* added ./distrib/i18n/mlnet_strings.de_DE.utf8 for testing purposes
  startup messages should appear in German now, more strings have
  yet to be translated, help welcome for all languages.
5238: Fix HDD space checks on CFS mounts
5235: Lock config_files_space.tmp and delete unused file on startup
5232: GUI: Fix decoding bug for Gnutella/G2/Fasttrack search results (zet)

2006/06/29
5213: Swarmer: Commit only primary downloads (pango)
5212: Fix DNS lookup of localhost (pango)
      SIGTERM & SIGINT support for GTK2 GUI

2006/06/27
5207: Remove some obsolete options: html_mods_vd_queues, ED2K-initial_score,
      ED2K-max_dialog_history, ED2K-immediate_master
5206: Remove Kiss DP500 support
5200: BT: Do not start downloads if no usable trackers are found in file.torrent
      MLDonkey only supports http:// style trackers, not udp:// or dht://
      Deactivated http:// trackers are better marked in HTML,vd #num
5202: Remove mlchat and outdated IM (instant messenger) code
      Remove outdated files from ./packages/windows
5204: Cleanup longhelp (anhi)
5205: Telnet: Fix another UTF8.length exception in search results

2006/06/22
5199: BT: Fix BT_client_uid changing between core start (orbit)
-------------------------------------------------------------------------------
2006/06/19: version 2.7.7 = tag release-2-7-7
5196: IP: Store IPs with two int values instead of four to save RAM (pango)
5195: BT: Log tracker error messages in UTF-8
5194: HTML: Print warning on opening page when enable_servers is set to false

2006/06/18
5191: HTML: remove sysinfo on opening page & option motd_html
5192: Fix deactivation of verbosity "gui"
5163: Configure: CVS SCM support for Mac OS X 10.3 (gstat)

2006/06/17
5158: HTML: Use table for printing buildinfo and runinfo data (schlumpf, pango)

2006/06/16
5187: New option: BT_import_new_torrents_interval,
      ignore Thumbs.db & desktop.ini in directory lists
5186: GUI: Send only non-empty real_startup_message string

2006/06/15
5156: HTML, improve Options output (schlumpf)
* new command html_mods_use_js_helptext (true|false)
  to change display of helptext between javascript popup`s and html table
* fix some padding and border bugs
* add "toggle js_helptext" button to 'vo' and 'voo' to directly toggle the style

2006/06/12
5061: New option small_files_slot_limit to push release of small files (pango)
      all files below the configured file size (default 10kb) are uploaded
      through one reserved slot
5144: Increase default max_upload_rate to 10 (schlumpf)
5177: HTML, Options: update display after changing options (schlumpf)
5176: Swarming: Change error message text and verbosity for BAD WRITE
      BAD WRITE is not really an error, MLDonkey just receives unwanted data
5175: GTK1 oldgui: Last compile fix for abstract verification bitmaps (pango)
5174: Abstract verification bitmaps:
      compile fixes for GTK1 GUIs, move generic code to CDK (pango)
5173: Swarmer: Small fix for merged downloads (WIP7b') (pango)

2006/06/11
5172: EDK: Log error which causes pausing a download
5171: New command group "Driver/Users",
      print help text for "Bad number of arguments" error message
5170: Fix default max_indirect_connections, minimum is 30
5169: HTML, Options: add description to option section buttons,
      remove 'save' button (schlumpf)
5168: Global module to abstract verification bitmaps (pango)
5167: Swarmer: Fix saving ini data for merged downloads (pango)
5166: Swarmer: New module to abstract verification bitmaps (pango)

2006/06/07
5164: CommonSwarming: Pangos WIP5e'
* When cutting a range, the reciprocal link of the range after the right part
  still references the left part
* When cutting a block in two parts can before empty, but then can also before
  complete (if they have no ranges left)
* Added bad_writes_is_back patch
* When find_range can only find ranges already being downloaded, it now first
  does a quick check to see if there's no other, probably more interesting,
  blocks remaining. If so, it forces a block change (report no more ranges left)
* While it's a good feature in itself, it's probably a workaround for a bug in
  select_block (?); It seems that blocks oversaturated with sources happen way
  too often (4 or 5 sources on a single range shouldn't happen).
* Compute the size of unselected ranges in each blocks, so that sources don't
  "rush" on blocks just left by a source.
* Some BAD WRITEs seems to happen because we forget ranges we requested
  (when switching blocks ?)
* Replaced call to clear_uploader_ranges by a call to clear_uploader_intervals
  in BitTorrent support Choke message handler.
5063: EDK: remove duplicate entries in shared_files_new.ini (pango)
5160: Remove stale avifile.ml, clean commonMultimedia logging
5159: Compute magic values only when needed
5157: add some line breaks to option help text for shorter lines (schlumpf)

2006/06/01
5153: New command: force_web_infos to manually download web_infos URLs
5152: Do not connect friends from disabled networks
5151: Options: New stringvalue functions needed for multiuser support
5150: Log: Fix log when server list is empty in check_blocked_servers

2006/05/31
5149: Log: Some additions for commonSwarming
5148: Mail: Fix for multiline SMTP responses (zet)
5143: HTML/Telnet: Country codes for servers
5147: G1/G2: Display proper filename (and therefore support rename) (zet)
5145: EDK: Fix md4 hashing when filesize is an exact multiple
      of edk chunk size, MLDonkey is now eMule-compatible (zet)

2006/05/30
5141: Swarmer: New option swarming_block_selection_algorithm (pango)
* Allow to choose swarmer block selection algorithm at runtime.
  - Algorithm 1 is the current default algorithm
  - Algorithm 2, from WIP3o patch, should try harder to complete partially
    downloaded chunks, specially with Bittorrent. It was previously
    reverted because of unknown performance problem (slower download ?)
5140: Update .cvsignore files (pango)
5138: Catch ip banned exception (zet)
5137: HTML: Fix display of file magic values with '
5136: FileTP: fixes and enhancements (zet)
* Add "FTP-chunk_size" option (0 = no chunks = download full file at once)
-- A chunk_size would be required if downloading from > 1 source
* Add FTP downloads to bandwidth controller (for stats & speed limiter)
* Support FTP sites that do not buffer input (MS FTP)
* Add support for user/pass (http://user:pass@site or ftp://user:pass@site).
  This also adds user/pass support to http_client.
* Error codes from HTTP (ie: 404) and some from FTP are supported (530 sometimes
  signals a retry, sometimes a login failure so a regex was used (lftp)).
  Downloads are paused when a hard error is received (and noted in the log).

2006/05/25
5131: New option gui_log_size: number of lines for GUI console messages
5129: HTML: Display client_bind_addr in options menu
5124: Log: Login messages can be disabled with verbosity "no-login"
5130: CommonSwarming: Pangos WIP4a'
thanks for testing goes to SchAmane, CruX, jave (forgot someone?)
That's a huge patch over CommonSwarming module (whose job is to select what data
to ask from connected sources, and the merging of received data),
I hope I'm not forgetting anything important :
* first, it's a mantainance patch; Lots of code have been reworked for
  readability and compactness (iterators...), functions grouped together,
  sometimes renamed to more descriptive names. Lots of comments have been added,
  including the description of invariants I've found, and a nice ASCII art
  schema of the swarming datastructures ;)
* naming has been made more consistant, to differenciate chunks (from each
  network view) from blocks (internal to swarming), and intervals (list of
  int64 * int64 beggining/end offset pairs)
* Support for bitmaps encoded as strings (AvailableCharBitmap) removed, since
  it's no longer used anywhere; use the more compact AvailableBitv instead
* Removed range_current_begin from ranges, it's enough for a range to have a
  beginning and a end ;)
* Rewrote compute_block_num to have precise preconditions, and algorithm proof
* Added some assertions to better enforce invariants
  (on verification bitmaps, for example)
* Allocation of ranges is now delayed until the very last moment, instead of
  when a chunk starts being downloaded. Main benefit (beside small memory gain)
  is that requests for different ranges sizes can be fulfilled at any time.
* Modified received function so that no BAD WRITE message can happen anymore:
  condition when data that does not start from the beginning of a range is
  correctly detected and data discarded
  (since ranges cannot handle that case anyway)
* Rewrote a much simpler version of present_intervals
* Rewrote block selection algorithm for readability and flexibility; select_block
  simply "folds" over all available blocks, using compare_choices function to
  keep the best available one(s). May need some more CPU (no fast exit)
* Fixed donkey uploaders calls when disconnected
* Reenable the copy of identical chunks between files. Opportunities for copies
  are checked every 5 minutes.
* Made file writing a bit smarter in Unix32 module so that writing zeroed chunks
  (as can happen a lot with chunks copying) on an otherwise sparse temp file
  does not allocate disk space. A bit hackish.

2006/05/23
5121: EDK: Remove obsolete option emule_compression
5122: improve block_list output and runinfo ip blocking (schlumpf)
5123: Fix Invalid_argument("UTF8.length") bug in HTML, down-/uploaders
-------------------------------------------------------------------------------
2006/05/21: version 2.7.6 = tag release-2-7-6
5119: HTML, Options: Include Wiki link in options names
5117: Telnet: replace "avail" by "last seen"/fix non-ASCII-filename column width

2006/05/20
5118: Log: Correct prefix for donkeyClient.ml
5116: HTML: Fix javascript popup in search results for Opera (dextarr)
5112: Fix lprintf_nl (search/replace ()'s) (zet)
5113: Fix config/wget.c (zet)
5111: Configure: Fix $SOURCE_DIR broken since patch #5095
5109: New option: pause_new_downloads
- Set to true all new downloads will be paused automatically.
- This option is automatically set to false on core start.
EDK: Disable ED2K_connect_only_preferred_server if not preferred server is
     found, this check is done once per minute

2006/05/19
5107: Configure: Check for MAGIC_ERROR in magic.h
5106: BT: only send stop once on exit and then wait for success (Amorphous)
5105: BT: Avoid starting torrent which has the same name
      as a currently downloading torrent

2006/05/18
5097: HTML: Improved DL multiline input button (jave)
5103: Fix compile bug in magiclib_stub.c on Solaris & NetBSD

2006/05/17
5101: G2: Gnutella2 fixes/log updates (zet)
- Gnutella2 (G2) is working again
- Re-enables search result networks
- Log logged-in users
5098: EDK: Update option description for initial_score

2006/05/15
5090: Http_client: Fix 302 redirect when Location starts with "."
      and filename changes
5095: Configure: improve libpng detection, optical improvements

2006/05/14
5094: Wget: New internal variable req_save <bool>
5093: CommonSwarming: Verbose error message if file size does not match
5092: HTML, rss: Add startbt link
5091: HTML: update EDK history links

2006/05/13
5089: IPBlock: Print seperate lists in block_list command for IPs
      blocked by local and web IP blocklists (pango)

2006/05/12
4976: Filetype recognition with libmagic
- new debug command: debug_dir, prints magic values for all files
- display file magic values in vd & upstats HTML popup & vd #num
NetBSD/Solaris users have to disable this function "--disable-magic"
until this bug is fixed:
http://savannah.nongnu.org/patch/?func=detailitem&item_id=4976#comment9
5088: Gnutella/FT/http_client fixes (zet)
- Gnutella (G1) is working again

2006/05/11
5087: HTML, upstats: new tooltip with complete filename,
      respect max_name_len for filename

2006/05/10
5083: HTML: Update EDK file history links (unease)

2006/05/09
5082: FileTP/Fasttrack/Soulseek: Fix splitting chunks off-by-one (pango)
5081: Change default ip_blocking_descriptions to false for faster startup
5080: Only print servers of enabled networks (pango)
5079: Ignore ._* in directory lists (pango)
5078: Telnet: Remove HTML code from sysinfo command
5077: FT: Fix fasttrack connection problem and adds a bootstrap nodes file url
      Removes old/broken imesh bootstrap node (zet)

2006/05/07
5076: Gd: Do not disable html_mods_vd_gfx if core is compiled without GD support
5075: DNS round robin, keep all IP addresses associated with DNS names,
      and return next one upon each request. (pango)

2006/05/06
5069: EDK: Fix broken unicode URIs parsing broken since 2.7.4 (pango)
5074: Change default Ocaml version to 3.09.2
5073: Update default IP blocklist URL, replaced
      http://www.bluetack.co.uk/config/antip2p.txt with
      http://www.bluetack.co.uk/config/level1.gz
5068: New global option user_agent, current option BT-user_agent overrides
      the global value in BT module (pango)
5064: BT: only try to connect to http trackers (pango)
5040: Overnet: Open TCP port only when network is active

2006/04/14
5036: BT: Correctly parse .torrent files with an empty directory (again)
5039: Fix dp500 compile
-------------------------------------------------------------------------------
2006/04/13: version 2.7.5 = tag release-2-7-5

2006/04/10
5035: Make Soulseek, Opennapster, DirectConnect compilable again
  This does not mean the network modules work again,
  they only compile again. More work is needed.
5032: CommonSwarming/WIP2: Some function rewrites and comments (pango)

2006/04/09
5031: Merge CommonSwarming and CommonSwarming2 code (pango)

2006/04/08
5029: EDK: Remove set_brothers command and brotherhood option
5030: Update config.guess and config.sub to version 2006-02-27
4778: CommonSwarming: In addition to the first and last chunk also load
      the second last chunk if available before the rest to improve preview
5028: New environment variable for file_completed_cmd:
      $DLFILES (number of downloading files)
5027: EDK: Deactivate DonkeySUI if /dev/urandom is missing

2006/04/06
5021: Fix compile bug in tryopen patch when bzip2 is disabled
5020: Allow compile with Ocaml 3.09.2 CVS code,
      3.09.1 will stay default for MLDonkey-compiled Ocaml
5016: Options save: Really fix bug addressed in patch #5015

2006/04/05
5015: Fix option file saving bug introduced in tryopen patch

2006/04/03
5011: EDK: Update server info received by UDP when
      update_server_list_server false (pango)
5009: Ignore files .DS_Store and ._filename.ext in dir listings on all platforms
5006: Small logfile change
5004: Automatically closes opened descriptors using "tryopen pattern" (pango)
5005: CommonBlocking: Do not block IPs when GeoIP database is not loaded

2006/04/02
5003: BT: Improve client recognition (zet)
5002: Overnet: Fix Out of Memory Exception (zet)

2006/03/31
4997: Swarming: correctly create a new range when one is splitted (pango)

2006/03/29
4931: CommonBlocking: Block/allow IPs by country codes (requires GeoIP) (pango)
- new options:
  - ip_blocking_countries, insert country codes here
  - ip_blocking_countries_block true|false
      false: use ip_blocking_countries as block list,
             all other countries are allowed
      true:  use ip_blocking_countries as allow list,
             all other countries are blocked
4995: HTML: Fix friends filelist display
4996: HTML: Add/remove for web_infos (vwi), update old contact.dat URL
- web_infos, rename command add_url to urladd, new command urlremove
- prints option help texts for web_infos and calendar command
- file_kinds are now printed as list with descriptions for easier setup

2006/03/19
4917: HDD space check
- New options:
  hdd_send_warning_interval
    Send a warning mail each <interval> hours for each directory,
    0 to deactivate mail warnings.

  hdd_temp_minfree
    Mininum free space in MB on temp_directory, minimum 50
  hdd_temp_stop_core, default false
    If true core shuts down when free space on temp dir is below
    hdd_temp_minfree, otherwise all downloads are queued and a
    warning email is sent.

  hdd_coredir_minfree
    Mininum free space in MB on core or log directory, minimum 20
  hdd_coredir_stop_core, default true
    If true core shuts down when free space on core dir is below
    hdd_coredir_minfree, otherwise all ini file saving is stopped
    until core shutdown and a warning email is sent.
    Logging is sent to RAM when log dir is full.

The hard-coded minimum values can not be circumvented, MLDonkey will always
perform these HDD space checks once a minute.

2006/03/18
4985: Log file clean-up for verbosity = "md4"

2006/03/17
4981: Dllink: Fix wrong referer in HEAD request
4980: Multiuser: internal admin_user variable
4979: Fix hashing large number of files

2006/03/15
4972: FileTP: Allow ftp:// downloads via dllink command
4971: BT: Allow read-only access for shared files
4967: CommonUserDb: Keep old user database updated for easy downgrades

2006/03/09
4962: BT: New command "startbt" to force the start of a torrent download (jave)

2006/03/08
4963: Re-apply $DEVFLAGS to Makefile.in (pango)
4961: EDK: New default URL for server list download
4960: Ignore .DS_Store on MacOSX, BT: ignore dirs in torrents/incoming (pango)

2006/03/06
4954: New function Unix32.owner to read user and group entry of a file 
- to debug use command debug_fileinfo <file>
- renamed debug command "disk" to "debug_disk"
- renamed debug command "rlimit" to "debug_rlimit"
4950: Close unneeded file descriptors

2006/03/05
4946: System-wide cookies and referers option
- MLDonkey will not move data from bittorrent.ini to downloads.ini
- This data will be used in web_infos, dllink and BT module.
4951: GUI: Update server country codes after loading GeoIP data
4949: Gzip/Bzip2: Close opened FD after opening an invalid archive file
4945: BT: Automatically start new torrents downloads
- new directory $MLDONKEY_DIR/torrents/incoming, all files present
  in this dir are started automatically, its scanned every 10 seconds.

2006/03/01
4939: Support for compressed ipfilter.dat files (.gz, .bz2 or .zip) (pango)
4930: giFT GUI: Authentication support (pango)
- login with giFTcurs now has to be done like this: giFTcurs -p user:password

2006/02/26
4938: Improve MLDonkey system user database
due to older problems with HTML interface:
- renamed command add_user to useradd
- renamed command remove_user to userdel
- user name is printed in browser title when bwstats is active
-------------------------------------------------------------------------------
2006/02/26: version 2.7.4 = tag release-2-7-4

2006/02/25
4928: BT: Fix invalid encoding in announce URL (darkfader)
- removed old, broken version and added new version

2006/02/23
4934: FileTP: Small improvements
- fix download restart bug when core is restarted, sources where not loaded
- save referer values to files.ini
- display amount of transfered data in downloaders list
- display source IP and Countrycode in HTML downloaders list
- display filesize in GUI
- display number of sources in GUI
4933: BT: Display number of sources in GUI

2006/02/21
4928: BT: Fix invalid encoding in announce URL (darkfader)
4929: Do not print password_empty warning if enable_user_config true
4926: Runinfo: Warn about not-working DNS resolution,
      /dev/urandom detection was not disabled if --disable-donkeysui is used

2006/02/20
4922: OpenBSD: Small change for patch 4920
4921: MinGW: show current DL & UL stats in console title (Schlumpf)
4909: Print warning messages when run on non-supported operating systems
      currently for example Windows 95/98/ME (Schlumpf)
4920: Cleanup included header files in C code (Schlumpf)

2006/02/17
4910: EDK: Use updated protocol information when parsing
      consecutive messages (sam_dennis)
4915: Log: Small cleanups
4918: some syntax and comment cleanups in stubs_c.c (Schlumpf)

2006/02/13
4906: MinGW: improve uname output (Schlumpf)
4908: Configure: Fix for Beos, allow use of Dragonfly BSD

2006/02/11
4883: Mac OS X: Fix for broken Apple cpp-3.3
4902: EDK: Stub respond to directory browsing requests (sam_dennis)
4905: Update for patch 4823: add another -fno-fomit-frame-pointer
      in config/Makefile.in to avoid breaking CryptoPP (mikeX)
4903: EDK: Remove obsolete donkeyNeighbours (thx to sam_dennis)
4907: EDK: Fixed copy/paste error in emule miscoptions1 reading (sam_dennis)

2006/02/10
4904: Configure: Raise required autoconf version to 2.55 due to AC_MSG_FAILURE

2006/02/09
4892: Fix make when CXXFLAGS is defined (mikex)
4894: EDK: Support "new ed2k meta tags" to allow browsing
      shared directories of newer eMule clients (sam_dennis)
4891: Configure: Override system-installed Ocaml and force local compile
  Use ./configure --enable-force-ocaml to force MLDonkey to compile Ocaml,
  regardless if the system has Ocaml already installed or not.
  --enable-ocamlver=CVS uses a CVS checkout of Ocaml HEAD.
4885: EDK: Show correct IP of indirect clients in uploader list

2006/02/06
4879: EDK: Support for sources in ed2k:// links
- example:
ed2k://|file|a.txt|1|AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA|/|sources,1.0.0.0:4662|/
4849: EDK: Fix hashing of newly shared files
- avoid hashing shared files twice
- avoid problems while hashing big files
- remove obsolete compute_md4_delay option
4878: Addition to patch 4875 (conditional bzip2 support using cpp)

2006/02/05
4877: BT: Recognize Ktorrent clients (CruX, zet)
4876: EDK: Remove obsolete option random_order_download
4875: conditional bzip2 support using cpp (pango)
4870: runinfo: add connected_user and check empty PW (schlumpf)
4872: Fix gd detection on NetBSD, use data from gdlib-config
      MinGW compile-guide was updated, gdlib-config has to be changed
4871: Optimize some Printf.sprintf "%s" code
4869: Remove obsolete redirector code
      http://mldonkey.sourceforge.net/Redirector
4856: reverse patch: configure: disable iconv by default on MinGW
      it is not necessary anymore

2006/02/04
4867: Use setrlimit to raise allowed ulimit open files

2006/02/03
4863: GUI/Multiuser: Prevent kill by users other than admin
4862: EDK: Fix broken import of eMule temp Files (import_temp) (schlumpf)
4860: Multiuser: print warning if admin password is empty
- user admin is re-created if deleted, it has to be present in any case because
  some commands are only available for admin,  like users, remove_user and kill
- create structure for startup messages, displayed on GUI, HTML, Telnet
4859: Multiuser: Only user "admin" is allowed to change options
      if the new option enable_user_config (default true) is set to false
4858: HTML: Update some links to mldonkey.sf.net
4857: SIGUSR1 & SIGUSR2 do not exist on Windows
4856: configure: disable iconv by default on MinGW
4853: Fix HTML errors on rss command output (unease)

2006/02/02
4851: Support system signals SIGUSR1 & SIGUSR2
      SIGUSR1 saves options
      SIGUSR2 performs garbage collection
4850: Fixed bitprint hashing for files > 4GB (thx to zet)
      mld_hash: implement SIGINT and SIGTERM signals

2006/01/29
4844: Fix Solaris compile broken since DonkeySUI patch
4830: Update Wiki links
      New Wiki URL: http://mldonkey.sourceforge.net
      New Forum URL: http://mldonkey.sourceforge.net/forums
4843: HTML: Improve output of rss command
4842: Some logfile stuff
4841: Create new dir web_infos for web_infos files,
      BT: do not save .torrent or announce.*
      all files downloaded by web_infos go to $MLDONKEY_DIR/web_infos
      to avoid downloading files twice move files from $MLDONKEY_DIR
      into that new dir
4826: improve error message due to corrupt config files (schlumpf)
4821: improve display of sysinfo (schlumpf)

2006/01/26
4816: Update Ocaml-RSS and Xml-light to current versions
4827: longhelp cleanup (anhi)
4823: EDK: CryptoPP optional, disable with --disable-donkeysui
      Makefile: link CryptoPP stuff only in binaries which need it
      Buildinfo: show compiler versions
      Configure: display compiler versions (schlumpf)
      Configure: if iconv checking fails continue with disabled iconv
      Configure: do not use bzip2 if bzip.h is not found (FLI4L buildroot)

2006/01/25
4820: Move CommonGraphics to DriverGraphics, check libgd version
      Configure: Check if libgd > 2.0.14 is installed
      NetBSD: added paths for libgd package
      NetBSD: adjusted stat command to properly read SCM date
      move build-, run-, and diskinfo command to driver module
      (thanks to SchAmane)
-------------------------------------------------------------------------------

Split Changelog in two parts, all stuff older than 2.7.4 is now in docs/ChangeLog.old:

http://savannah.nongnu.org/cgi-bin/viewcvs/mldonkey/mldonkey/docs/ChangeLog.old?rev=HEAD&content-type=text/vnd.viewcvs-markup
