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 results.

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
=========

2011/08/07: version 3.1.0 = tag release-3-1-0

2011/07/24
7499: BT/DHT: fix logging in tools/bt_dht_node.ml

2011/07/16
7573: http: better error reporting (ygrek)
7529: configure: better help strings (ygrek)

2011/05/07
7541: BT: better UI for subfile selection (ygrek)
- remove debug prefix from set_subfile_prio command
- do not reload page when toggling subfiles (ajax)
7540: CryptoPP: Fix compile error with g++ 4.6 (glondu)
- fixes Debian bug 625051

2011/03/28
7518: Configure: Ocaml VCS moved to SVN
- replace --enable-ocamlver=CVS with --enable-ocamlver=SVN to compile SVN trunk
7517: http: fix XSS in error handler (ygrek)
7495: Fix compilation of Ocaml 3.11.* with recent binutils (ecc, glondu)

2011/03/20
7506: BT/DHT: show stats, choose random port (ygrek)

2011/03/14
7501: Options: Disable Overnet by default and remove contact.dat from web_infos

2011/03/13
7456: Mail: Multiple mail addresses for admin (ygrek)
7500: Diskinfo: Recognize BTRFS

2011/03/10
7499: BT/DHT: fix logging (ygrek)
7498: BT/DHT: make token more robust against broken nodes (ygrek)
7497: HTML: mark not saved values in options (ygrek)
7496: BT: stop asking users to submit unknown client ids (ygrek)
7495: Fix compilation of Ocaml 3.12.0 with recent binutils (ecc, glondu)
7494: GTK2 GUI: fix too obtrusive splash window (bugmenot, ygrek)
7493: BT: open DHT port by UPnP (tathar)

2011/01/31
7448: BT: support for partial download (jave, pango & ygrek)
- partial files are not committed, location in temp dir is shown so that users
  can easily locate downloaded subfiles

2011/01/23
7442: BT: DHT support (ygrek)
- new options BT-dht_port, BT-use_trackers, BT-dht_bootstrap_nodes
- new verbosity level "dht"
-------------------------------------------------------------------------------
2011/01/22: version 3.0.7 = tag release-3-0-7

2011/01/06
6012: Fix bug in Http_client.wget_string (ygrek)

2010/12/22
7418: Ignore setsockopt_float exception while sending mail

2010/12/19
7303: UPNP: added BT_tracker-port
7418: SMTP auth implementation (ygrek)
- new options smtp_login and smtp_password
- added socket timeout for mail server communication, fix bug #22713
7412: tar.gzip: fix harmless error message (ygrek)
7388: DC: fix sharing on Windows (ygrek)
-------------------------------------------------------------------------------
2010/11/15: version 3.0.6 = tag release-3-0-6

2010/11/13
7386: Makefile: Do not compile make_torrent when BT support is disabled
- fixes compile error during "make utils"

2010/11/07
7355: HTML: Fix URL enconding of commands (ygrek)
7375: FileTP: fix submitting ftp download links (ygrek)
7374: BT: calculate compatible hash for wrong torrents (ygrek)
6012: http_client: Support gzip accept-encoding + content-encoding (ygrek)

2010/11/03
7372: GTK2 GUI: Compile with lablgtk-2.14.2 by default

2010/11/01
7303: UPNP support (zzpptt)
- to compile using pre-installed libs: configure --enable-upnp-natpmp
- to compile UPNP libs during MLDonkey compile use --enable-force-upnp-natpmp
- ToDo: MinGW support
7365: HTML: improve code for sorting tables (ygrek)
7364: KAD: parse new nodes.dat formats (ygrek)

2010/10/28
7358: Update mlnet_strings.ru_RU.UTF-8 (balamutick)

2010/10/24
7318: EDK/Emule captcha: Use Base64 functions (ygrek)
7357: configure: fix quoting of arguments (ygrek)

2010/10/23
7318: EDK: Emule captcha support and slight cleanup (dennisne)
- added support for Emule's anti-spam chat CAPTCHAs
- added clear_message_log command to clear (long) message logs 
- HTML: reversed order of chat messages
7319: EDK: Fix CryptoPP on mips64 abi n32 (viric)
7356: options: ensure that tmp file is removed (ygrek)
7354: DC: cleanup temporary files (ygrek)
7353: DC: silence "ADC not supported" message (ygrek)
7352: net: do not log ordinary network errors (ygrek)
7351: DC: fix download of large files (integer overflow) (ygrek)
7350: cleanup accesstest temp files (ygrek)

2010/10/19
7349: Fix release.* make targets on GNU/kFreeBSD
7348: Update GNU config.guess and config.sub to version 2010/09
-------------------------------------------------------------------------------
2010/09/26: version 3.0.5 = tag release-3-0-5

2010/09/22
7308: DC: bugfix (generate valid partial list) (ygrek)

2010/09/16
7144: Update clean targets

2010/09/08
7305: Xml-light: fix attributes parsing (ygrek)
7310: EDK: improve comment port option (ygrek)
7308: DC: handle ADCGET list (ygrek)
7307: New make target "tests" for unit tests (ygrek)
7306: DC: show client brand, session transfer and duration (ygrek)

2010/09/07
7302: DC: Fix performance problem with many shared files (ygrek)
7299: configure: abort on unknown options

2010/09/01
7296: Fix compilation problems introduced by patch 7144 (ygrek)
- remove linking to camlp4lib
- use alternative if camlp4of is not present

2010/08/29
7144: BT: Support for UDP trackers (ygrek)
7288: HTML: Prepare localization (balamutick)
7287: Fix GTK1 oldgui compile with Ocaml 3.1* (ygrek)
7289: Raise minimum required Ocaml version to 3.10.1

2010/08/16
7267: Fix compilation error in GTK2 GUI
7282: Fix configure warning
-------------------------------------------------------------------------------
2010/08/15: version 3.0.4 = tag release-3-0-4
7280: BT: fix make_torrent creates sometimes torrents without name argument
      (ygrek)
7278: configure: more useful --enable-debug (ygrek)
- enable also for ocamlopt
- enable when profiling 
7274: DC: Increase message buffer size to fix communication with bots
      (somedamnthing)

2010/08/08
7267: http proxy authentication support (ygrek)
- new options http_proxy_login and http_proxy_password control authentication
  for TCP CONNECT and plain HTTP requests through http proxy

2010/08/07
7273: Fix compile errors on Debian/kFreeBSD
7272: Configure: Use Ocaml 3.12.0 as default compiler
7269: Fix typos (glondu)
-------------------------------------------------------------------------------
2010/08/01: version 3.0.3 = tag release-3-0-3

2010/07/28
7262: BT: improve porttest (ygrek)
7254: BT/bandwidth controllers: accept incoming connections while downloading
- should improve upload when downlink is saturated (ygrek)

2010/07/24
7258: russian i18n mlnet_strings (Balamutick/ygrek)

2010/07/18
7253: Fix downloading Ocaml 3.12 archive, use lablgtk-2.12.0 for Ocaml < 3.10
7252: GTK2 GUI: Fix compile bug with lablgtk2-20100620 and Ocaml 3.12
7251: BT: OCaml 3.08.3 compatibility fix (ygrek)
7250: DC: discover self IP (ygrek)
7249: DC: fix parsing MyINFO with non-latin nicks (ygrek)

2010/07/17
7248: DC: correctly parse dchub:// entries in xml hublist (ygrek)
7247: BT tracker: remember tracked files after restart (ygrek)

2010/07/16
7245: HTML: Fix unstable option sections links position (ygrek)
7210: upload scheduler: correctly handle clock jumps (ygrek)
7219: fsync rename options files (ygrek)

2010/07/15
7208: New aliases (ygrek)
- "unpause", "continue" for command "resume"
- "man" for command "help"
7233: BT: Announce shared files when share_scan_interval = 0 (ygrek)

2010/05/26
7206: MinGW: Fix diskinfo on large partitions

2010/05/24
7201: DC: Whitespace fixes (ygrek)
7202: BT: Improve internal tracker (ygrek)
- continue tracking files even if there are no requests
- better logging and error reporting
- remove peer from peers list when it sends 'stopped' event
7203: Fix linking with binutils-gold

2010/05/23
7183: DC: magnet links and html ui usability tweaks (ygrek)
7180: DC: better encoding handling (ygrek)
- new option default_encoding for communications with hubs, default CP1252
7181: HTML: Fix sorting of friends' file list (ygrek)
7200: Allow compilation with upcoming Ocaml 3.12
-------------------------------------------------------------------------------
2010/04/25: version 3.0.2 = tag release-3-0-2
7175: DC: PtokaX compatibility (ygrek)
7169: Equal scales for graphical up/down stats (ygrek)
7167: Improve add_mail_brackets option description,
      change default according to RFC (ygrek)

2010/04/11
7164: BT: more user-friendly tracker (ygrek)
- `compute_torrent` shows full path and url to generated torrent file
- `torrents` output htmlized
- corrected server header
- improved comments for tracker options
- search torrents in old directory too
7163: Fix not sending UDP packets when max_hard_upload_rate = 0 (ygrek)

2010/04/10
7162: filter longhelp output (ygrek)
- longhelp (or ??) with parameters will output only those commands that
  contain all of the specified parameters as substring

2010/04/08
7161: bw_toggle: Add options "high" and "low"
- bw_toggle without options works as before
- if "high" is added, the *_2 option set is used if max_opened_connections_2
  is higher than max_opened_connections, otherwise the option values are kept
- if "low" is added, the *_2 option set is used if max_opened_connections_2
  is lower than max_opened_connections, otherwise the option values are kept
6959: DC: Fix invalid XML (ygrek)
- enhanced patch (use Xml.escape and properly escape attributes in Xml.to_string)

2010/04/04
7153: BT: correctly handle failed tracker requests (ygrek)
7155: DC: understand hublist.xml (ygrek)

2010/04/02
7151: BT: html ui tweaks (ygrek)

2010/04/01
7150: BT: track torrents created with compute_torrent (ygrek)

2010/03/27
7142: BT: max_uploaders_per_torrent option not restored from .ini files (xboct)
7140: MinGW: Fix linking with Ocaml 3.11.2
7139: BT: Some improvements and fixes (ygrek)
- Don't request sources from tracker (set numwant=0) if we don't need them e.g.
  'stopped' event or when sharing
- Prevent client from repeatedly sending 'started' events for shared files
- Check that peer addresses, returned from tracker in compact format, are valid
  and not blocked (same check as for non-compact format)
- Show torrent info_hash in html ui
7138: BT: Recognize more client brands (ygrek)
7137: Fix error in calculating average upload speed for client (ygrek)
7136: GTK2 GUI: start downloads from search results items
      by double-click (soulcatcher)

2010/03/20
7128: BT: Fix ratio reporting (ygrek)
7127: Configure: Use Ocaml 3.11.2 as default compiler
7076: Support preallocating files on Unix systems (drwho)
      Recent Linux kernels support fast preallocation when the filesystem is
      XFS, EXT4 or BTRFS, this patch adds preallocation support when
      posix_fallocate() is available
6968: GTK2 GUI: Fix switching server preferred status (dcoppa)
-------------------------------------------------------------------------------
2009/10/23: version 3.0.1 = tag release-3-0-1
6961: BT: Fix torrent parsing when announce-list is empty

2009/10/22
6959: DC: Fix invalid XML (lucasn)
6804: EDK: Log incoming chat messages with ip:port info (Dennis Nezic)
6772: New option max_result_name_len, shortens strings in
      HTML/Telnet search results
6958: EDK: Fix server connects on Solaris due to missing SO_KEEPALIVE
6957: Configure: Make Ocaml 3.11.1 the default compiler
6956; BT: Fix download of torrent files with no 'announce' field (Hose Bag)

2009/02/28
6759: HTML: Properly sort column hits in Options, IP blocking
-------------------------------------------------------------------------------
2009/02/24: version 3.0.0 = tag release-3-0-0
6754: Fix local file access bug in internal http server
- this is an urgent security related bug-fix and effects
  all MLDonkey versions >= 2.8.4
6752: Optimized implementation of the ip_set module (cbah)
6736: Add/fix some copyright texts
-------------------------------------------------------------------------------
2009/01/20: version 2.9.7 = tag release-2-9-7
6727: Web_infos: Replace old GeoIP URL with new one
- old code added the new URL, even if GeoIP was not present in web_infos

2009/01/04
6714: BT: Fix bug when computing limits for max_bt_uploaders
6713: GeoIP: New web_infos URL for country list (thx to Choby)
- old URLs are updated to:
  http://www.maxmind.com/download/geoip/database/GeoLiteCountry/GeoIP.dat.gz

2008/12/13
6689: Allow compilation with Ocaml 3.11.0

2008/09/01
6629: Mail: Move hostname from subject to body (eydaimon)
Updated Mozilla protocol handler to version 2.5
- original source from http://www.informatik.uni-oldenburg.de/~dyna/mldonkey
6628: IP discover: Use http://whatismyip.org, old URL is not working anymore
-------------------------------------------------------------------------------
2008/08/04: version 2.9.6 = tag release-2-9-6
6599: Allow values lower than max_upload_slots for BT-max_bt_uploaders

2008/07/29
6593: CryptoPP performance fix for ARM (Marc Pignat)
6592: HTML: Fix invalid html respond when login is invalid

2008/07/17
6571: Runinfo: Include DirectConnect in list of enabled nets

2008/07/02
6558: Fix text relocation warnings on hardened distributions (Davide Pesavento)
6557: BT: Send correct downloaded value when download is stopped to tracker
      (Fox Mulder)
-------------------------------------------------------------------------------
2008/05/02: version 2.9.5 = tag release-2-9-5
6503: Remove release status when download is finished

2008/03/31
6465: BT: Send correct downloaded value when download starts to tracker
      (colchaodemola)
6477: Use $MLDONKEY_DIR/mlnet_tmp instead of /tmp
- This patch fixes problems with hash checking of multifile BT
  downloads when /tmp is too small.
- To override $MLDONKEY_DIR/mlnet_tmp use variable $MLDONKEY_TEMP.
  This patch has nothing to do with option temp_directory.
6472: Multiuser: Count only files in download queue for user/group statistics
6471: Clean logfile
6470: BT: Use default of max_upload_slots as minimum for BT-max_bt_uploaders
      instead of hard-coded value

2008/03/18
6466: Fix option_hook loop when changing max_upload_slots < 3,
      caused by patch #6451

2008/03/14
6462: Multiuser: Restrict chown to admin users only

2008/03/11
6458: Fix commit bug when filesystem reports negative values
      for maximum filename length

2008/03/07
6451: BT: Implement minimum of 3 (like max_upload_slots)
      for option max_bt_uploaders
-------------------------------------------------------------------------------
2008/03/02: version 2.9.4 = tag release-2-9-4
6440: GTK2 GUI: Compile with lablgtk-2.10.1 by default
- lablgtk-2.10.0 does not compile with Ocaml 3.10.2

2008/02/29
6439: Configure: Make Ocaml 3.10.2 the default compiler

2008/02/06
6407: New options run_as_group/run_as_groupgid
- works the same way as options run_as_user/run_as_useruid
- display system user:group running MLDonkey core in runinfo
6406: Mail: Fix bug in rfc2047 encoding

2008/02/05
6404: New option release_new_downloads
- set to true to activate release slot feature for all newly started downloads

2008/02/04
6080: HTTP interface: new command/button "logout" (Schlumpf)
6077: bw_toggle: support new option "max_opened_connections_2" (Schlumpf)
6401: Swarmer: Correctly update file_downloaded during recover_temp (pango)
6400: EDK: Correctly update filename after recover_temp
6396: Log: Print user:group when starting a download
6395: Makefile: Do not strip shared linked binaries on Mac OS X, clean Makefile

2008/01/24
6381: Multiuser: Block commands "shares" and "share" for non-admin users
-------------------------------------------------------------------------------
2008/01/16: version 2.9.3 = tag release-2-9-3
6379: bwstats: Show downloaded bytes (pango)

2008/01/16
6377: Configure: Make Ocaml 3.10.1 the default compiler
- Ocaml 3.10.1 fixes crashes in MLDonkeys eDonkey module when compiled with
  Ocaml 3.10.0 on 64bit systems

2008/01/15
6373: Swarmer: Ignore received data when file is queued

2008/01/08
6367: FileTP: Fix bug when starting downloads > 4GB via dllink

2008/01/07
6364: MinGW: Fix broken share priorities (thx to vbnuy6)
6365: HTML: Use option max_name_len in upstats for unhashed files

2008/01/04
6362: Small Geoip updates
- new countries + flags: Saint Barthelemy, Saint Martin
- updates flags: Georgia, Democratic Republic of the Congo, Western Sahara, Lesotho

2008/01/02
6361: GUI: Send console messages to admin users after unsharing a file
6349: DirectConnect: Correctly report total shared filesize to server (LuCasn)
6360: BT: New command print_torrent <file_num>,
      new link in HTML, upstats to display .torrent details

2007/12/19
6351: Allow compilation with upcoming Ocaml 3.10.1

2007/12/17
6342: HTML: fix broken vm output in Opera (schlumpf)
6346: Environment variables for file_started_cmd (see option help text)

2007/12/13
6343: gcc-4.3 compile fix for CryptoPP (brian m. carlson)

2007/12/09
6337: Fix inequality test for option html_mods_theme (pango)

2007/11/03
6255: Fix compile warnings for GTK2 GUI and DC++ (pango)
-------------------------------------------------------------------------------
2007/10/20: version 2.9.2 = tag release-2-9-2
6242: Allow deactivation of [telnet|gui|gift]_port by setting it to 0

2007/10/17
6240: GTK1 oldgui: Hide password in server settings
6239: Update GNU config.guess and config.sub to version 2007/07
Updated Mozilla protocol handler to version 2.2
- original source from http://www.informatik.uni-oldenburg.de/~dyna/mldonkey
6238: Fix statvfs code on alpha platform (Alexander Kotelnikov)
6237: EDK: Load server.met files from archives even if unpack fails
- http://www.gruk.org/server.met.gz is not a gz archive at the moment...

2007/10/10
6231: Swarming: Propagate chunks of finished file before commit (pango)
      to other downloading files

2007/10/04
6223: GTK2 GUI: Compile with lablgtk-2.10.0 by default
- this patch changes the lablgtk2 version used by ./configure
- self-compiled lablgtk-2.10.0 must be patched with patches/lablgtk-2.10.0.patch

2007/09/30
6221: Configure: Remove unneeded checks
6220: GTK2 GUI: Fix compile bug due to changed API in lablgtk-2.10.0
- GTK2 GUI still compiles with older versions of lablgtk2

2007/09/13
6197: Options backup: Better log messages, remove useless exception
-------------------------------------------------------------------------------
2007/09/09: version 2.9.1 = tag release-2-9-1
6192: EDK: Use discovered client_ip when lowid

2007/09/05
6187: BT: Fix wrong file order of multifile torrents due to patch #6174

2007/09/01
6179: BT: Send correct downloaded amount to tracker when download completed
6174: BT: Encode non-UTF8 filenames using "encoding" or "codepage" data
      from .torrent if present

2007/08/31
6175: Yet another patch for share_scan_interval
- new default 30 minutes for newly created ini files
- still use 0 to disable
- hard-coded global minimum of 5 minutes, this updates old default 1 to 5
- automated options update, if update is needed (options_version <= 19) and
  share_scan_interval = 5 (because of new hard-coded minimum, which is
  processed earlier) its changed to new default of 30
6145: EDK: Update options description of max_connected_servers (Schlumpf)
6172: EDK: properly advertise and honour noviewshared tag (TripleM)

2007/08/23
6160: BT: Another fix for share_scan_interval
- Old hard-coded default was 300s, now with share_scan_interval its
  possible to use a minimum of 60s which produces high CPU load.
  This patch implements a minimum of 300s for the BT share_files timer.

2007/08/04
6128: New default for option messages_filter (unease)
6132: HTML: Fix group display in vd <num> for admin users
      view of other users files
6130: Change API for network_parse_url, support user group
6127: HTML: Display file_chunk_sizes/file_piece_size in vd <num>
6135: BT: Fix high CPU load when share_scan_interval = 0
      due to buggy patch #6049 (thx to darkman)
-------------------------------------------------------------------------------
2007/07/27: version 2.9.0 = tag release-2-9-0
6118: Configure: Update defaults
- enable DirectConnect by default 
- disable Gnutella & Gnutella2 by default
  - MLDonkey does not support UDP host cache and contains
    non-working GWebCache URLs
  - Gnutella/G2 code has not been updated for several years,
    its officially unmaintained for now
  - remove non-existing GWebCache URLs

2007/07/25
6087: Fix logging of verbosity "bw", remove obsolete options
6085: BT: Improve UTF8 support
- parse field "encoding"
- use field "name.utf8" instead of "name", if available

2007/07/10
5996: BT: Recognize more client types (orbit)
6065: DirectConnect: Support dc++ hublist in web_infos
6063: BT: Better detect single-file torrents

2007/07/03
6068: BT: Fix download start when torrents/downloads filesystem
      allows more than 16M chars

2007/07/01
6064: BT: Earlier first scan of torrents/incoming/*
6053: HTML: Send correct filename when previewing (chandlerding)
6061: Options: New type port_option, values are bound to be >= 0 and <= 65535
6060: Do not send mail notifications when smtp_server = ""
6059: Multiuser: Avoid double group entries in user_groups
6056: Log username, IP:port and old/new value when changing options

2007/06/30
6049: BT: Support user_commit_dir when seeding,
      reshare every share_scan_interval minutes

2007/06/26
Move docs/multiuser.txt to distrib/multiuser.txt
6048: Make Ocaml 3.10.0 the default compiler
- MLDonkey can still be compiled with Ocaml 3.08.3/4 & 3.09.*
- if you need GTK1 oldgui you must use Ocaml < 3.10.0 to compile

2007/06/24
6044: BT: Limit max_bt_uploaders to max_upload_slots (pango)
6043: Discover WAN IP
- new command "discover_ip" to force discovery
- new option "discover_ip" to enable automatic discovery on startup
  and after SIGHUP, default true
- this patch is important for BT-only usage, without this patch the
  WAN IP was discovered only by using EDK server replies
6034: Load $MLDONKEY/web_infos/* before activating network modules
- this fixes a security hole when networks started connecting
  before IP blocklist was loaded
6025: Extend command "links" to optionally display all downloading files
- "links" displays all files, not only shared ones like before
- "links shared" lists only shared files
- "links downloading" lists only downloading files

2007/06/18
6024: Multiuser: New parameters for command useradd:
      user_mail + user_max_concurrent_downloads

2007/06/17
6021: Remove leftovers from optional zlib support,
      replace Autoconf.zlib__* with Zlib.* functions
6005: Swarmer: Implement new download mechanism
- its now possible to switch the order blocks are downloaded from random
  (first and last block first, default) to linear
- new command: download_order <file number> <random|linear>
6017: Multiuser: New optional parameters group/commit_dir for command useradd
6020: Multiuser: Fix handling of user "admin", its user_commit_dir was not
      used when MLDonkey was not restarted between download start and commit
6019: BT: Disable user_commit_dir for multifile torrents to fix seeding
6011: BT: Send no_peer_id to trackers to save some bandwidth (berni)
6010: Update syslog.ml to version 1.4
5995: EDK: Better handle permission denied errors for shared/downloading files
5992: BT/IP block: Fix country-based IP blocking
-------------------------------------------------------------------------------
Split Changelog, all stuff older than 2.9.0 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
