ChangeLog	
=========

2002/12/23: Simon (tag release-2-02)
  MAJOR BUG FIX:
  - DonkeyClient: fixed a bug preventing download from indirect clients.

2002/12/21: Simon (tag release-2-01-4) 
  - DonkeyOvernet: updated TCP protocol to overnet 0.42
  - Bug fixes:
   * DonkeyOneFile: removed a bug disconnecting from time to time an uploader.
   * DonkeyClient: 
     * verify that clients have received a slot before uploading
     * remove client from upload queue when reconnecting

2002/12/20: Simon
  - Applied patch #812 (KDE Icon set). The old icons can still be used by
     changing the Makefile line : ICONS_CHOICE=big
  - Applied patch #852 (wildcards in black-list)
  - Applied patch #855: correctly sort servers before remove_old_servers
  - Removed some options for Overnet: publish and search for sources
      is now automatic
  - DonkeyOptions: new options:
     ban_queue_jumper (true): if you want to ban clients reasking files too fast
     ban_period (6): how long are they banned
     send_warning_messages (false): send a message when a client is banned
     max_emule_slots (33): percent of upload slots that emule clients can use
       (cannot be set under 25%)


2002/12/19: Simon
  - DonkeyClient: quota limitations:
     * Emule clients can not get more than 1/3 of the upload slots
     * at least one mldonkey client can always enter the queue
  - DonkeyClient: banning mechanism for clients that connect too often
     (don't prevent downloading from them)
  - Gui: 
     * Remove duplicates at end of list

2002/12/18: Simon
  - Multi-column sort should work again.
  - Reverted again the query for all files to a query for one file.

2002/12/18: Simon (tag release-2-01-3)
  - Removed the Credit System. The world is already unfair enough, no need
      to bring a monetary system here. Moreover, it prevents correct downloads
      from other mldonkey clients !
  - Overnet: Applied Norbert Lataille's patch 3.0

2002/12/18: Simon (tag release-2-01-2)
  - MinGW port: should compile and seems to run. Not yet tested enough.
  - DonkeyServers: 
    * Better way to choose the master servers: if a new
      server has 5 times more users or at least 1000 more users than a master
      server, it replaces the master server.
    * Don't remove old servers if we are connected to them !

2002/12/17: Simon
  - Prevent downloading the entire file list at every connection to a friend
  - Added Ip.reachable to remove local network addresses
  - Started port to native Windows via MinGW

2002/12/16: Simon
  - Applied Martin's patch on WEB Realm
  - Added option 'run_as_user' that can be used to change (setuid) the
      priviledges of mldonkey after ports binding.
  - Started implementing upload in Direct-Connect
  - New command 'friends' to print a list of all friends

2002/12/15: Simon
  - Applied Norbert Lataille's patch 2.5 on Overnet publish
  - Applied Andre Hinrichs's patch for better help
  - Applied Pango's patches (20021213b):
     05_save_client_last_filereqs: applied
     07_keep_user_filenames: applied
     20_vd_sharp_urls: applied
     21_queue_new_sources
     24_unbroke_random_order: applied
     25_bolder_remove_old_sources
     29_mrvn_eta: applied
     32_xou_web_interface: applied
     34_suxxx_display_chunks_in_telnet: applied
     35_fix_console: applied

2002/12/12: Simon
  - Rewritten remove_old_servers, scheduled every 15 min
     * CommonComplexOptions.servers is an intmap, not a list anymore
     * Delays are printed
     * Black-listed servers are removed immediatly
     * Last Connection is extracted immediatly

2002/12/09: Simon
  - Fabrice should compile and release binaries for 2.01
  - Fixed problem with stats
  - Overnet: added an option for publish (false by default since still in dev)
  - IM: Only Yahoo works
  - A message is sent to old clients only randomly. 

2002/12/08: Simon
  - Applied Overnet publish patch from Norbert LATAILLE
  - The Overnet patch is too aggressive (about 5 kB/s). It really needs to
     be tune.

2002/12/07: Simon
  - Fixed bug in "nu" command (thanks Rudolf Polzer)
  - "reshare" now add new files to upload.

2002/12/06: Simon
  - Applying Pango's patch: 
       01_display_server_banners: banners already appear in GUI console
       02_force_high_id: applied
       03_overnet_boot_dns_resolution: already done
       05_network_signature_change: applied
       06_wrong_lowid_display: already done
       07_keep_user_filenames: applied
       08_better_default_parameters: partially applied
       09_md4_speedup.patch: already done
       10_port_blacklist: applied
       11_max_connected_servers_offbyone: already done
       12_files_md4_corruption: already done
       13_revert_iptos: applied, but why in and out ?
       14_get_chunks_in_random_order: applied, but with an option to disable it
       15_fix_ovweb_default_site: applied, but an option would be better
       16_sources_per_chunk: applied
       18_remove_cancelled_downloads: applied
       20_vd_sharp_urls: applied
       24_check_for_x: applied
       22_connect_on_server_urls: applied
       26_old_file_on_cancel: applied, but option, disabled by default
       23_uploaders_command: applied
       27_selective_hide_files: applied

   NOT APPLIED, need some discussion:
       17_hide_chunks_being_uploaded: 
       21_fifo_new_sources:
       25_bolder_remove_old_sources:

2002/12/04: Simon
  - Gpattern: fixed bugs introduced by mldonkey :)
  - Gui_servers, Gui_friends: server users list and file sources list are only
      update 1/10 second after selection to avoid flickering.

2002/12/02: Simon
  - Moved some code in the GUI driver to avoid sending many messages when
      GUI use the POLL extension.

2002/12/01: Simon
  - Applets: new directory applets/, containing 3 sub-directories:
     * api: a common C api used by applets to chat with mldonkey on its GUI port
     * kde: a KDE panel applet
     * gnome: a GNOME panel applet
    A lot to be done. I know a bit GTK, not QT ...
    The Client_stats message is not yet completely filled with useful data
    by the core. 

2002/11/20: Simon
  - IM: 
      * Accounts Window, and Toplevel menu to access it
      * Contacts Window works
      * Dialog Window

2002/11/18: Simon
  - Gui_rooms: each opened room has its own users/messages widgets, to avoid
	reprinting all messages when changing of room. Maxence, could you
	look at that and explain me how to destroy a widget when room is
	closed
  - CommonInteractive: raise Not_found when the option doesnot exists
	(no more "option NAME value changed" for non-existing options :)
  - Instant Messaging: Started implementing the interface for instant 
	messaging.

2002/11/17: Simon
  - CommonClient: check MD4 replies from client (inspired from patch #662)
  - DriverMain: track options_version, to be able to update the options
	when a new version of mldonkey is used.

2002/11/16: Simon
  - CommonOptions: added the redirector-generated server list to web_infos,
	and an option to change the redirector. Now, we should probably
	disable auto_update_server by default, since the relocator gives
	a nice server list. Or we should give more weight to new servers
	when trying to connect.

2002/11/15: Simon
  - DonkeyServer: added sending of UDP pings. Check that pings have been
	replied before sending extended search/locate requests.
  - DonkeyClient: changed mldonkey-specific protocol to recognize old
	clients, and send a warning.

2002/11/14: Simon
  - Fixed bug #1701 ?: read at least 1000 bytes before writing stream
	in a file from Limewire. Gnutella clients problem, or is_http_ok is
	not strict enough.
  - Fixed bug #1708 ?: rewritten get_page and wget in net/http_client.ml
	to avoid fd leak.
  - Support #101511: in the Upload panel of the GUI, the contextual menu
	offers to print ed2k links in the Console panel.
  - GuiTypes: new event Server_message_event to send server messages to
	the GUI console.
  - GuiEncoding/GuiDeconding: now, protocol versions will only change when
	the encoding of some old messages changes, not when new messages
	are added, so that new messages can be handled even if an old
	format is used for other messages (old GUIs can benefit from new
	messages)
  - DonkeyOvernet: change the URL in 'ovweb'
  - DonkeyProtoCom: sending much more information to the redirector, so that:
	- we can generate our own server list
	- we can generate an overnet peer list
	- we can gather some statistics on node bandwidth usage to decide
	    when to create supernodes.
  - Observer: now generates a 'servers.met' file every 5 minutes, which is
	sent to savannah, if I find the command :), but the dest is:
	"http://savannah.nongnu.org/download/mldonkey/network/servers.met"
	if you want to add to your web_infos.
	Servers inside are guaranteed alive in the last 5 hours (well,
	unless the redirector is down which is often true :( )

2002/11/13: Simon
  - common/commonOptions.ml: new option "network_update_url" to
	download files "motd.html" and "motd.conf" used to update some
	parameters in all clients. "motd.conf" is displayed in the
	HTML and telnet interfaces, and at startup. Why not in the GUI :) ?
	These URLs are downloaded every day, and can change the configuration
	of the client remotely. This will be used later to test different
	parameters to activate/desactivate ultrapeers behaviors.
  - donkey/donkeyServer.ml: new implementation of remove_old_servers. The
	new implementation sorts the servers, and remove all those that
	exceed their age, but guaranty to let at least "min_left_servers" in
	the list.
  - donkey/donkeySupernode.ml: started implementation of supernodes.
	Supernodes are mldonkey clients, that act as pseudo-servers:
	- they accept queries from mldonkey clients
	- they index files from all clients
  - donkey/donkeyOvernet.ml: fixed bug preventing removal of old
	connected peers.
  - config/configure.in: REQUIRED_LABLGTK=1.2.4 (please, dont force
	people to upgrade if it is not REQUIRED). Use the configure
	script to detect the version and to generate stubs for simple
	modifications (lib/gAutoconf.ml.new.in). Only upgrade for
	major reasons (ocaml release eg).

2002/11/11: Simon
  - config/configure.in: detection of lablgtk version to be able to compile
	without lablgtk-20021031 (must find mouse position, zoggy ??). 
	GToolbox.popup_menu is generated by ./configure from 
	lib/gAutoconf.ml.new.in
  - gpattern/gpattern.ml: using arrays instead of lists. filters directly 
	integrated. Forces many changes in gui/gui*.ml, but should be much
	faster.
  - gui/gui_downloads.ml: Call to remove_client removed until a new message
	is added	for that in the protocol
  - net/udpSocket.ml: implementation of SOCKS 5 support for UDP. Must 
         check that bytes are correctly ordered.

2002/11/10: Simon
  - Fabrice has to move, and his new employer does not allow him to
	program in other open-source projects (for Intellectual Property 
	problems). So he will keep administrating the project (web site, 
	forums, releases), while I'm integrated in the developper team
	as main developper... As a start, I have some bugs to fix, and
	I would like to create a parallel network over edonkey2000 using
	mldonkey supernodes.

2002/11/06: zoggy
  - changes to use lablgtk-20021031 (@#!:@* Why the fuck did you do that ? 
	you are the only developper to use it, nobody can compile now :(
	
2002/11/04: mldonkey
  - Applied patch #634 (increase buffer size for md4 comp.)
            patch #631 (max_connected_servers off by one)
            patch #630 (low id display)
            patch #632 (use DNS in "boot")

2002/10/23: Simon
  - New implementation of 'remove_old_clients'

2002/10/22: mldonkey
  - Patch #576 applied.
  - i18n: 
      * Message files changed: ~/.mldonkey_gui_messages.ini for GUI and
          ~/.mldonkey_messages.ini for core
      * Some messages customizable in core
      * web_common_header, html_header and download_html_header moved
          to ~/.mldonkey_messages.ini
      * ~/.mldonkey_messages.ini can be overwritten MLDONKEY_MESSAGES

2002/10/21: mldonkey
  - lib/options.ml: always close open files. "Too Many Open File" bug again.

2002/10/20: mldonkey
  - New default options for 'web_common_header' and 'html_header' by Xou.
  - Patches #572, #573 and #574 applied.

2002/10/16: mldonkey
  - release 2.00
  - fix: uploaded files do not appear twice in panel
  - fix: empty results are not accepted anymore (Overnet ?)
  - fix: "ovweb" accepts URLs since default site is down

2002/10/15: mldonkey
  - fix: files should not appear twice anymore in upload panel (files whose
      md4s have been computed replace [are not added anymore to] their
      corresponding temporary shared file).
  - fix: added must_write in udpSocket.ml when bandwidth controler is used
      (UDP packets were not sent anymore...)
  - fix: upload not more than the bandwidth each second

2002/10/14: mldonkey
  - add: internationalisation
      * envirronment variable MLDONKEY_GUI_MESSAGES
  - fix: rewritten upload in edonkey. Old mode can be restaured with option
     'new_upload_system' set to false

2002/10/13: mldonkey
  - add: internationalisation
      * new module lib/gettext.ml for format options
      * new GUI config file gui_messages.ini
      * new directory i18n to store gui_messages.ini.?? files for
         contributed languages

2002/10/12: mldonkey
  - fix: support for several GUIs at the same time
      * Changes in how objects updates are monitored
      * Lots of changes in DriverInterface        

2002/10/11: mldonkey
  - add: 'close_all_sockets' command to close all connection sockets.
      Added to the SIGHUP signal handler.
  - fix: SIGHUP doesn't call network_enable/disable anymore. Bug about
      automatic disabling of edonkey plugin ?
  - fix: new udp bandwidth management
  - add: starting reimplementing multi-gui

2002/10/09: mldonkey
  - add: catch SIGTERM and save the config before exiting
  - add: publication on Overnet has been implemented, but not tested yet.
  - fix: "ovstats" displays more information on current searches

2002/10/08: mldonkey
  - fix: bug in indexer2.ml that prevented complex searches in local history
      and in filters.
  - patch #556 and debian/ from #553 from Goswin von Brederlow. Some problems
      with the end of the patch #553.
      * Availability seen in % of missing chunks, and height in color bar.
      * New "last-seen" and "Age" columns in GUI
      * No segfault on division by zero when size=0
      * No queries for paused files.
      * New debian/ directory
  - GUI protocol 9
  - add: gui open a message box when password is not valid.

2002/10/07: mldonkey
  - fix: "forget_search" should work correctly now
  - fix: use Unix.LargeFile.stat instead of Unix.stat to avoid 
      exception when sharing files greater than 1.7 Go
  - add: filters. Need to enable 'filter_search' option, and to 
      change 'filter_search_delay' (results are gathered during this delay,
      and all filtered together and displayed, so results are displayed
      with this period, and no results are displayed before the delay).

2002/10/06: mldonkey
  - fix: split add_interesting_client in two different functions:
      force_fast_connect_client (connect immediatly, regardless of
       min_reask_delay) and connect_as_soon_as_possible.
  - fix bug #1291: vma does now display all servers
  - add: new command "version"
  - fix: "nu" can take negative arguments to decrease the no-upload period
  - fix: stop adding MD4 to proposed names

2002/10/05: mldonkey
  - fix: clients_lists are now stored in a 5 buckets array, one per minute.
      Strange behavior: the list is almost always full, and the number of fds
      increases dangerously. set client_timeout to 30 or smaller to
      improve that ? Must check that this timeout is changed when the client
      becomes interesting (queued for upload or download). Also set
      max_clients_per_second to more than 5...
  - fix: prefered files are not queried twice anymore, nor client repeatedly 
     queried after connection, to avoid Emule Black-list stupid mechanism.
  - fix: unknown commands should print an error now
  - add: new command "priority" that can be used to change the priority of
      a file. Such files will get priority times more bandwidth than
      normal connections.
  - fix: 
     * new command "use_poll" to switch between poll and select.
     * Fixed bug in poll making huge CPU usage
  - add: new messages for publishing files on Overnet.

2002/10/04: mldonkey
  - fix: file_best_name should be used more often
  - fix: recover_temp should use the best available name
  - fix: the number of overnet peers saved in servers.ini is now limited
      by overnet_max_known_peers

2002/10/03: mldonkey
  - add: new files for IP multicast, not used, probably never
  - add: overnet URLs in "ovlink", statistics "ovstats"
  - add: overnet new options to reduce memory usage "overnet_max_search_hits"
      and "overnet_max_waiting_peers"

2002/10/02: mldonkey
  - add: priority of files
     * read power added to TcpBufferedSocket.t for priviledged connections
     * DonkeyTypes.file_priority for priviledged files
     * DonkeyTypes.client_power for priviledged clients

2002/10/01: mldonkey
  - add: more debug output for 'dump_heap'
  - donkeyClients.ml: SourceReq clients are not immediatly added to
     clients_list

2002/09/29: mldonkey
  - fix: bug #1252: servers were added several times in Opennap/DC to each user.
  - fix: ed2k link should appear again in 'download' mail

2002/09/28: mldonkey
  - fix: sources are correctly removed from the GUI locations panel
  - fix: Makefile should correctly compile targets 'static' and 'byte'
  - fix: Add command
       MORECFLAGS="-I patches/ocaml-3.06/ -DHEAP_DUMP" make cdk/heap_c.o
      to compile with "dump_head" command.

2002/09/28: mldonkey
  - fix: incoming connections timeout are now correctly set, and
      connections should be correctly initialized.
  - fix: 
     * With select, you cannot use more than 1024 file descriptors
       (otherwise, it segfaults)
     * Added poll support, that allows to use more than 1024 fds and
        is used by default.
  - fix: better control of the number of used fds
  - add: message in GUI starter about the 'ask_for_gui' option
  - fix: faster sharing of downloaded files (probably present chunks are
     checked first)
  - fix: Ip.valid check for class D addresses
  - add: new option 'verbose_overnet'
  - fix: a file name is changed only if it was the MD4 before.
  - fix: don't query blocks for Paused files

2002/09/27: mldonkey
  - fix: upload improvements
     * names are correctly chosen, and sent to the server
     * all BUFFER_OVERFLOW due to long file lists have been removed
     * after restart, non commited files are still shared.
     * bug fixed when shared file list is too long (shortened message)
     * the size of the ShareReq message directly depends on the space
        available in the server buffer.
     * md4s for downloaded files are never recomputed after commit
  - fix: force download:
     * new contectual menu item "Force Download" in GUI result panel
     * "force_download" should now work well
  - add: core errors are displayed in the GUI console (maybe the last line
     of the console should be displayed in the status bar ?)
  - GUI protocol 7 for "force" argument to Download_query

2002/09/27: zoggy
   - add : web directory to manage source files of generated mldonkey pages
   - change : chat protocol version (-> 1.1) to be able to communicate with
	mlchat from Cameleon

2002/09/25: mldonkey
  - add: new module common/commonDownloads.ml to share the functions used
      in all network where downloads are in one piece.
  - fix: mail, chat and file_completed_cmd are used for all finished downloads
       not only eDonkey (CommonInteractive.file_complete)
  - fix: file_commit now moves the file to incoming/. All networks must now
       use the "commit" function, not only edonkey.
  - fix: try to save the md4 of each file before sharing it.

2002/09/24: mldonkey
  - fix: renewed my passport (6 hours)
  - fix: prevent "BAD BAD BAD" lines from removing good sources. Very Important
     Bug for your downloads.

2002/09/23: mldonkey
  - fix: mldonkey_gui prints a better error message when the hostname couldn't 
      be resolved.
  - fix: the configure script allows ocaml versions with +n extensions.
  - add: new program mldonkey_guistarter to start the GUI immediatly at
      mldonkey startup
    * New options 'ask_for_gui', 'start_gui', 'mldonkey_bin' and 'mldonkey_gui'
    * New option panel 'Startup'
  - fix: get_int64 works correctly (no more negative upload counters)

2002/09/22: mldonkey
  - fix: udp packets added to bandwidth computation
  - GUI:
     - add: new option panel for plugins
     - add: each plugin defines its own option for the GUI panel
     - fix: when gui_poll, don't send options values
  - Overnet: 
     * No need for servers anymore :), searches and downloads are OK
        (but no filter on search results)
  - add: lots of debug messages for bandwidth control. 
     * I should probably remove from remaining_bytes the size of the
        TCP packet header, each time the write/read is OK.
     * I should optionnally include the GUIs in the control !

2002/09/21: mldonkey
  - fix: removal of out-of-bounds accesses, not supported by Ocaml on 
        OSX Jaguar
     * added check in ./configure for MacOsX 6.0 to enable CheckBounds
     * added -inline 10 for checkbounds to be removed for other archs (5
        would be enough)
     * added Autoconf.check_string calls in littleEndian.ml and bigEndian.ml
  - add: Overnet works for simple queries and sources
     * two options disabled by default: overnet_search_keyword and
           overnet_search_sources

2002/09/20: mldonkey
  - add: OverNet should now be able to add sources to eDonkey downloads
     (it is triggered using the "overnet" command). You need peers to
     access OverNet: see the end of the distrib/servers.ini file.
  - fix: started debugging mldonkey on Mac OS X 10.2
     - fix : SIGBUS in telnet "q" command.
     - need to check all possible array/string out-of-bounds accesses.

2002/09/19: mldonkey
  - add: OverNet support started in donkey/donkeyProtoOvernet.ml and
      donkey/donkeyOvernet.ml. Can connect to OverNet peers and learn 
      more peers.
  - add: new donkey command "import_temp <dir>" to import old files
     currently downloaded by edonkey in mldonkey.
  - fix: Bug #1052 (buffer overflow warnings when MLdonkey is reading 
      my shared files)

2002/09/18: mldonkey
  - fix: Bug #420 (Wrong permission on imported files)
  - fix: Bugs #421 and #591 (vd: meta refresh use external ip)
  - fix: Bug #842 (mldonkey overwrites the modified download.ini)
  - fix: Bug #878 (Hidden files are shared)
  - fix: Bug #1053 (no warning when overwriting files)
      Note: / and \ in names are also replaced by _
       Duplicated files get a .2 , .3, etc

2002/09/16: mldonkey
  - fix: Bug #432 (same packet is send with the same data)

2002/09/15: mldonkey
  - add: GUI
      * Display the current upload/download rate in bytes.

2002/09/14: mldonkey
  - add: New options in downloads.ini:
      * [gui_options_panel] to configure the options that are configurable in
       the GUI without modifying the GUI. Fix for Bug #844
      * [debug_net] to display more information about low-level network layer
  - add: GUI
      * New protocol 5 for message [Add_section_option]
      * Boolean and filename options have special entries
      * More client options in the GUI option panel
  - fix: LimeWire
      * Correctly display file sources
      * No more Unix.write errors due to early disconnections
      * More ultra-peers agent types allowed

2002/09/11: mldonkey
  - add: CyMeS server directory

2002/09/08: mldonkey
  - fix: prevent connecting several times to the same server
  - fix: remove_old_servers should work again
  - fix: 'vo' command only display one-line options

2002/09/07: mldonkey
  - Fix: Removed mldonkey_ suffix from names.
  - Add: option 'files_queries_per_minute' and 'files_queries_initial_delay'
      in downloads.ini to meet lugdunum master and Smurk UK requests.
  - Fix: edonkey private messages should work again.

2002/09/05: mldonkey
  - fix: upload tab should work

2002/09/04: zoggy
  - add : upstats in the uploads tab
	
2002/09/04: mldonkey
  - fix: shared files are not shared between all networks anymore (each 
     network has its own shared file type).
  - add: edonkey protocol files are not hidden anymore
  - add: upload per shared file.
  - add: new upload messages in GUI protocol 4

2002/09/03: mldonkey
  - Soulseek:
      * Browse friend and simple downloads should work.

2002/08/30: zoggy
  - add : download a whole directory from a friend
  - fix : the 'goto <page>' actions, because of the new rooms and uploads tabs
  - add : an option to specify if we display sizes with G,M, and k suffixes
  - code : moved the servers, downloads and uploads status label to
    Gui_servers.pane_servers, Gui_downloads.pane_downloads and
    Gui_uploads.box_upstats so they can be updated more accurately,
    and not each time a message comes.
	
2002/08/29: zoggy
  - add :Now display the tree of files instead of just the list of files
    for the selected friend (with a new option files_auto_expand_depth)
  - add : new added chat room automatically selected
	
2002/08/29: mldonkey
  - CVS commit on Savannah:
      * Ocaml 3.06 is now used to compile.
      * donkey/donkey.lam is not distributed anymore with mldonkey.
          It should be downloaded as:
           http://pauillac.inria.fr/~lefessan/src/edonkey/donkey.lam.SOME_MD5
          and copied in the donkey/ directory.

          where SOME_MD5 is the contents of the file donkey/donkey.lam.md5

          This can be automated by the configure script.
  - GUI protocol version 4:
      * new message Room_remove_user
  - Updates to be sent to the GUI are now stored in common/commonEvent.ml
  - Only one GUI can be connected to mldonkey at any given time.
  - Soulseek: 
      * Join/Leave room works with dialog and user updates.

2002/08/23: mldonkey
  - update: ocaml 3.06 should now be used to compile mldonkey without secret/.
  - add: GUI protocol version 3 should work for poll.
  - Private messages are now received in a special (hidden) chat room,
     which is used to send messages to the GUI.
  - fix: Gui_columns has been rewritten with functors
  - fix: commonChatRoom.ml renamed in commonRoom.ml
  - add: room panel now displays both active and inactive rooms.
  - add: better SoulSeek support:
     * Searches work (no download yet :(
     * Join/Leave room works (no dialog yet)

2002/08/23: zoggy
  - add : an uploads tab (modules Gui_uploads and Gui_uploads_base)
	  only the tab for this evening, gotta go sleeeeeeep
	
2002/08/22: mldonkey
  - gui_proto.ml has been cut in guiTypes.ml (types), guiProto.ml (protocols)
     and guiEncoding.ml and guiDecoding.ml.
  - Better soulseek support

2002/08/21: zoggy
  - fix : memorize the size of the vpane in the friends tab, 
	  for the chat notebook.
	  BTW, mldonkey compiled like a breeze will ocaml 3.06 
	  without patch :-) I let mldonkey change the configure 
	  script, don't want to disturb ;-)
	
2002/08/19: zoggy
  - fix : a bug closing two chat boxes instead of one
  - add : in chat rooms, try to get the user name and give him
	  its own color to display his name in the messages
  - add : file sizes in downloads and result boxes now displayed
	  with G(iga), M(ega) or k(ilo) suffixes
  - fix : scrollbar added to the chat room boxes, and the text
	  with the messages is not editable any more. 
	  Chat rooms on direct connect work, except that kicked
	  people are not removed from the list.
	
2002/08/18: zoggy
  - add: chat integrated in the gui; pb with the Gtk Main loop:
	 the chat window receive no event; will investigate,
	 or add the chat boxes in a notebook of the friends tab ?
	 Ok, done. I had to find my way through the not really clear
	 code of the Gui_proto module. And surprise, the code
	 indent is really, really bad, making it still more difficult 
	 to understand...
	 Yet to do : change and memorize the size of the chat notebook,
	 but now i gotta go while it is not raining.
	
2002/08/16: mldonkey
  - add: New command "dd <size> <md4>" originally used by mldonkey_submit.
     mldonkey now generates a mlsubmit.reg file that can be used under Windows
     to submit ed2k urls to mldonkey (thanks to equinox), and the 
     mldonkey_submit file.
  - fix: Client files are now stored in a tree in the GUIs.
  - fix: Config/config.guess and .sub updated.

2002/08/15: mldonkey
  - fix: "set" and "vo" should work on simple options of all networks.
  - add: New option "calendar" to execute commands at different hours of day.

2002/08/14: mldonkey
  - add: The ./configure script is now able to download, compile and install
      locally (not as root) ocaml and lablgtk to be able to compile mldonkey.
  - fix: The ocaml-3.05.patch file contains the fix for the memory bug.

2002/08/12: mldonkey
  - Olivier and Manu now work on another branch for servers rings

2002/08/10: mldonkey
  - Move bigEndian.ml to littleEndian.ml to be correct :)
  - Started implementing the OpenFT plugin, using LimeWire plugin code.

2002/08/09: mldonkey
  - Client_ip is now always recomputed to avoid keeping an old IP address after
   the IP changed (unless force_client_ip is true)
  - The md4 is only used to save a file if no other name is available
  - Files of new friends are correctly displayed (the client structure in the
     friend list was not the canonized one).
  - When sighup is sent, all networks are reset (disable/enable). Can be used
     after a reset of the DSL connection.
  - Removed friends are not kept as Contact any more.

2002/08/08: mldonkey 
  - Fixed bug in mldonkey_gui2 preventing removal of downloaded files.
  - Number of downloaded files is now displayed in mldonkey_gui. I still
     don't understand why so many features of the first GUI have been
     removed from the new GUI. Moreover, the object-oriented style makes
     it hard to understand and uggly to program. PLEASE, never put objects
     in the core.

2002/08/08: zoggy
  - fix : extended search button now does not appear any more in the friends tab
  - add : the user must confirm before cancelling a download
  - fix : window and global variables cleared when disconnected
  - fix : Detect disconnection to client in the GUI
	
2002/08/07: mldonkey
  - Upload statistics are correctly displayed by GUIs
  - Upload is now computed in bytes
  - Server_state and Client_state messages are used again.
  - Fixed bug in TcpBufferedSocket preventing UDP packets from being sent when
       bandwidth control is disabled (prevent Extended Searches).
  - Fixed bug in Options causing Stack Overflow in convert_list
  - Implemented simple form of subscription in server
  - Predicate should now work completely in server
  - Number of replies to a query limited to 1000
  - Fixed bug in mldonkey_gui2 forcing GUI protocol 0

2002/08/06: mldonkey
  - Rewritten server code to recognize mldonkey clients
  - New GUI protocol 2
  - Local search works again
  - New subscribe button

2002/08/05: mldonkey
  - The eDonkey server now shares the list of servers with the eDonkey client
  - An error in the ocaml-3.05 patch has been fixed.

2002/08/02: mldonkey
  - Fixed a bug in eDonkey saving sources for files in files.ini
  - Fixed a bug in the parsing of server.met files downloaded from the WEB
     (there was a "made by ..." at the end !!)
  - load_url now supports HTTP 302 redirections
  - Fixed a bug to connect to friends at startup

2002/08/01: mldonkey
  - Fixed a bug in the GUI protocol version 0
  - More fields in commonFile.file_impl. Download rate is computed the same
      way for all networks.
  - LimeWire download bug fixed (3 mp3s loaded for test)

2002/08/01: mldonkey
  - Fixed bug with multiple files displayed in the GUI
  - New GUI protocol 1 containing Client_stats

2002/07/31: mldonkey
  - Old gui2 compiles normally and works.
  - SendMessage (-1, PrivateMessage (num, string)) is used to send a private
     message outside any room.

2002/07/30: mldonkey
  ********* Ocaml 3.05 should now be used to compile mldonkey ********
  - The patch to the ocamlopt compiler is not required anymore.

2002/07/29: mldonkey
 - Re-included old gui as gui2/ and mldonkey_gui2. Not yet working. 
     Let the user choose until mldonkey_gui is working properly.

2002/07/27: mldonkey
 - GUI: 
    o Only connected servers are normally displayed.
    o New button to display all servers.

2002/07/26: zoggy
 - GUI: Extended search button only available in the result box of the 
	last query
 - GUI : fixed font for the console
	
2002/07/24: mldonkey
 - Added GUI counter for better protocol compression.
 - Removed user_remove function

2002/07/23: mldonkey
 - Bug fix in Ocaml weak hash tables
 - First file downloaded on DC (yeah !!)

2002/07/21: mldonkey
 - Fixed a bug in the GUI protocol
 - Improve timers behaviors

2002/07/16: mldonkey
 - Upload should be OK in Direct-Connect
 - CDDB: research is possible in index. building the index takes at least 
     600 Mo of RAM ... maybe some work to compress it.

2002/07/15: mldonkey
 - New structure network_info
 - Direct-Connect: allow other clients to browse our client
 - CDDB: use_tags is able to index a freedb database. take about 300 Mo for
    the full indexed database. need to build a server now.
 - Donkey: fixed a buf in the protocol that removed shared files from shared
     list.

2002/07/14: mldonkey
 - New env variable MLDONKEY_DIR

2002/07/13: mldonkey
 - More options in alternative networks.
 - ./configure script accepts a --disable-multinet option.
 - New option -check_impl to display unimplemented methods.
 - New behavior for computing the downloaded size in donkey.

2002/07/11: mldonkey
 - Upload on edonkey is priviledged, thanks to the upload_power option.
    Done by giving more upload to some connections in TcpBufferedSocket.

2002/07/10: mldonkey
 - Protocol between GUI and Core completely rewritten. No more Ocaml specific.
     Other GUIs are encouraged to move to this new protocol.
 - network-specific URLs are supported:
     ed2k://|file|...
     ed2k://|server|ip|port|
     ed2k://|friend|ip|port|
     dc://|server|ip:port|
     dc://|friend|ip:port|
 - Client browsing in Opennap.

2002/07/04: mldonkey
 - Better types for result, client, user and file in LimeWire

2002/07/03: mldonkey
 - Better Opennap support
    - Should no more be 'too many pending searches'.
    - Better types for result, client, user and file.

2002/07/02: mldonkey
 - Per network options better supported (use "set" command with a prefix).
 - One step towards soulseek implementation.
 - Started implementing 'disable' methods.
 - Using Weak hash tables for all common modules.

*** 2002/07/01: in holidays :) no network access for two weeks ...

2002/06/30: mldonkey
 - HE3 compress/decompress code completely working for DirectConnect
 - Can download file list in DirectConnect (not display it)
 - Client IP correctly detected.

2002/06/29: mldonkey
 - Added columns configuration for users in GUI.
 - Added message BrowseUser from GUI to Core and user_ops.op_user_browse_files.
 - Communication between clients in Direct Connect started.
 - User information from Direct Connect displayed in GUI (admin/link/bytes)

2002/06/28: mldonkey
 - Fixed several problems in WEB/telnet interface
 - Added enable(disable) networks menu in GUI (disable not implemented):
     networks can be started from GUI. New message EnableNetwork from GUI.
 - Added display networks menu in GUI: servers and results from a network
     can be hidden.

2002/06/27: mldonkey
 - Started using Weak Hashtbl in common/ structures to avoid memory leaks.
 - The GUI displays correctly eDonkey, Open-Napster, LimeWire and DirectConnect.
 - Lots of debbugging messages have been removed.

Pre-Release 1.99:
  Complete change of the architecture. mldonkey should now support multiple
   peer-to-peer networks. Currently, download is possible from:

    * Audiogalaxy support: works great (oups, not useful anymore :(
     1) Must set 'enable_audiogalaxy' to true in downloads.ini 
     2) Start mldonkey. It should create 'audiogal.ini'. If you don't have any
        audiogalaxy account, create an account: go on http://localhost:4081/
        (if you are running mldonkey on localhost), and create it.
     3) Stop mldonkey. Edit audiogal.ini. Set the 'login' and 'password' 
         options from your account.
     4) Restart mldonkey. Go on http://localhost:4081/ to choose files to
         download. 

   * LimeWire bridge. works great.
     1) Must set 'enable_limewire' to true in downloads.ini
     2) It should automatically connect to several ultra peers.
     - Recover downloads works

   * Open Napster support. Seems to work.
     1) Must set 'enable_opennap' to true in downloads.ini

   * Direct Connect support. Not working  yet.
     1) Must set 'enable_directconnect' to true in downloads.ini
     2) You can connect to some hubs and search for files. Download
      is not yet working, nor sharing, so that you will probably be
      kicked fast.

  IMPORTANT:
   If you want to test some of these networks, edit the downloads.ini to
   enable them. There are a lot of debugging messages (pipe to /dev/null,
   don't kill the terminal). Most telnet commmands should work, but it is
   not sure. In the GUI, use the File->Settings->GUI->Columns panel and,
   for each type of structure, add the Network column to see in which 
   network a server or a file is located.

  * Improved server implementation (enable_server option). Not working yet.
  * Started implementing freedb bridge. Not working yet.
  * replace Sys.rename with Unix2.rename (to allow cross-device moves)
  * brand new GUI : choice of columns, icons, external chat utility, support
	for custom searches. See file ~/.mldonkey_gui.ini for changing icons
	and keyboard shortcuts. Searches skeletons are defined in the
	searches.ini file in the directory where you launched the mldonkey core.


Release 1.16:
  * Compaction forced every 'compaction_delay' hours (default is 2).
  * File age computed for files smaller than one chunk. Better downloads for
      these files.
  * Servers sending extended search results are remembered, and immediatly
     asked if their files are downloaded.
  * Predicates in Indexer should work in most cases.
  * Fixed #100833: new options 'http_bind_addr', 'gui_bind_addr', 
     'telnet_bind_addr' and 'telnet_bind_addr'.
  * Started implementing 'use_tags', a program to rename mp3s from tags (and
      maybe from freedb, someone interested ?)
  * New option 'propagate_sources' to allow mldonkey to propagate sources
     to other peers. When enabled, send far fewer messages than in 1.15.
  * Fixed #100870: WEB interface can be configured through 'html_header', 
     'web_common_header' and 'vd_reload_delay'
  * GUI buffer size increased. Can be set by 'interface_buffer' in 
     ~/.mldonkey_gui.ini
  * Fixed bug making mldonkey use 100% CPU for long periods.
  * Fixed option name for 'update_server_list'
  * New options 'max_sources_per_file' to limit the number of sources for
    a given file. One source is removed each time a new source is added 
    above this number.
  * New command 'id' to display ID numbers for connected servers.
  * 'client_buffer_size' set to 500000 by default.
  * Fixed bug in ocaml patch that made open_mldonkey never finish downloads.

Release 1.15:
  * Started implementing mldonkey_s (eDonkey compatible server)
  * GUI:
    - Should fit in 640x480 screens.
    - Server can be specified by ip:port in Add Server entry.
    - Removed some non-tailrecursive functions.
  * Core acts now with all (direct) clients as a server to diffuse sources
     for files. Indirect mldonkey clients can also receive information.
  * WEB interface:
    - New option 'customized_searches' that can be used to add new
       queries in the WEB interface (see new option file searches.ini
       for examples).
    - Improved searches (work also in the GTK GUI): 
       * In the keyword/artist/title/album fields, a '-' in front of
        a word means 'without'. Words separated by
        spaces must appear in the reply. 
       * In the format field: you can specify several formats, separated by
        spaces. A '-' in front of a format means you don't want that format.
    - New options 'web_header' and 'web_header_frame' to customize the header
       displayed by the Web interface.
    - Generate correct HTML with HEAD and TITLE :)
    - Downloads can be sorted by name/percent/downloaded/size/rate.
    - Paused downloads are correctly displayed.
    - Use tables instead of spaces (for non-fixed fonts).
    - Added option 'use_html_frames'. When frames are enabled, clicking
       on a result to download will only modify the second frame.
    - Checklist of downloads and results can be activated/desactivated with
      the option 'html_checkbox_file_list'.
    - The number of days since the file was last seen complete is now displayed
  * Core:
    - New option 'file_completed_cmd' for a command which is called when 
     a file download is completed with as arguments: 
     <filename on disk> <md4> <size> <names on the edonkey networks>*
    - Started moving local indexation from mldonkey to an auxiliary program,
     controled by options 'local_index_find_cmd' and 'local_index_add_cmd'.
     See the 'Using auxiliary programs for local indexation' section in
     the help (in progress, doesn't work).
    - New command line option -client_ip that can be used to force the
     IP used by mldonkey (if you have a firewall). Be careful with
     dynamic IPs.
    - Delay between md4 computation can be set by 'compute_md4_delay' option.
     Chunks downloaded improve to reduce long md4 computations.
  * Most problems with ed2k:// links should be fixed (/ at the end, and
     spaces in the middle). MLdonkeySubmit is distributed for Konqueror users.
  * Improved implementation of indexation. Documents description are
     stored on disk. Different choices of indexation.
  * Server black list: 'bs <ip1> <ip2> ...' in console to add IPs to the
    server blacklist. Servers on this black list are eventually removed,
    and will never be added again.
  * New option 'master_server_min_users' that prevent mldonkey from remaining
     connected to a server with too few users.
  * New option 'dont_update_server_list' to disable automatic update of
     server lists.
  * Telnet interface: 
     - New command 'remove_old_servers'
  * New (less-aggressive) management of sources:
     - New option 'max_source_age' (in days) to remove old sources.
     - New option 'max_clients_per_second' to prevent bursts of connections.
  * Faster computation of md4s for i486/i586/i686 Linux systems.
  * Fixed bugs:  
   - #100662: only valid server IPs are accepted.
   - Use IP returned by getsockname instead of the one from gethostbyname.
   - #100761: new option 'update_server_list' to choose whether you want 
     mldonkey to automatically add new servers to your server list.
   - Fixed bug preventing sharing of in-download files after restart.
   - Fixed bug making history.met always increase.

Release 1.14:
  * Bandwidth is now controled by the 'max_hard_download_rate' and
      'max_hard_upload_rate' options. Old rate options are obsolete.
  * All simple options can now be set by arguments on the command line (use 
     -help to show arguments).
  * Bug fixes:
    - Removed non-tailrecursive function in options.ml causing segfault when
       loading files.ini.
    - Connected clients without names in GUI should not appear anymore.
    - Remove 2 minutes timeout for queued clients.

Release 1.13:
  * Annotations on files in file 'comments.met'. Commands 'comments <filename>'
    to load a file, and 'comment <md4> <comment>' to add a new comment.
    Such comments could be downloaded from web sites (sharereactor.com).
  * New option 'web_infos' and new command 'add_url' on console: allow
    to download a file from the WEB automatically everyday (or less 
    frequently). Currently, only server.met and comments.met files are
    supported.
  * GUI:
     - New config file in $HOME/.mldonkey_gui.ini with GUI options
     - colors added in lists (see .mldonkey_gui.ini)
     - Layout is saved.
     - File locations are updated.
     - Improved protocol to decrease bandwidth
     - Comments are displayed in searches, and can be added in contextual menu.
     - Shortcuts can be configured by options.
  * Mailer accept non-canonnical addresses.
  * Option 'verbose': '#' for download, 'U' for upload, and other messages.
  * When possible, find extra names for files in history.
  * Console:
      - New command 'close_fds' to close all open files, to free space on disk 
        after remove.
      - New command 'pause' and 'resume' to pause and resume downloads (use
         arg 'all' to apply to all files).
  * Some control on how many connections can be opened per minute.
  * Better scheduling of compaction (new option 'compaction_overhead')
     in both core and GUI that caused delay when exiting.
  * Bug fixes:
    - Remove block change causing many 'exceeding block boundaries'
    - history.dat changed to history.met, using more secure marshaling.
    - OVERFLOW with GUI should not appear anymore.
    - Compaction makes GUI memory usage better.

Release 1.12:
  * Bug fixes:
    - Remove error 'bad file descriptor' when saving files.
    - Remove possible infinite loop in upload function.

Release 1.11:
  * Option 'shared_directories' to specify other directories where files to
   share can be found.
  * Setting 'telnet_port', 'http_port' or 'gui_port' to 0 disables the
      corresponding access.
  * Console: 
   - Sort results by size in vr.
   - When 'd' fails with Already_done, you can use 'force_download' to force
      an already downloaded file to be restarted.
   - New command 'dllink' taking an ed2k URL to download as argument.
   - Command 'set' can be used to set the allowed_ips option:
       set allowed_ips '127.0.0.1 128.91.255.255' 
     255 is for networks.
   - shorten names in 'vd' output (see 'max_name_len' option). 
  * WEB:
   - New Cancel links in 'vd' output.
   - New 'Complex Search' link in interface.
   - 'View Options' output can be edited to modify options.
  * GUI:
   - The GUI tries to connect to the core every second until it succeeds.
   - Corrected MD4 columns
   - In search panel, 'Max hits' combo set the maximal number of replies
      per server.
  * Bug fixes:
   - Don't add twice the incoming dir to shared file names.
   - Cross-partition moves fail, but filename is renamed in temp dir.
   - Limited open fds for files to 50 (doesn't limit shared files
       and downloaded files).
   - Execute entry on WEB interface always displayed.
   - Removed a timeout closing all client connection after 2 minutes.
   - Shared files are opened in read-only mode.

Release 1.10:
  * Default timeout for server connection set to 5 for faster connection.
  * Options are now divided into four configuration files: downloads.ini,
      servers.ini, friends.ini and files.ini.
  * Console: better display of downloads.
  * Verification of IP addresses for admin ('allowed_ips' option).
  * WEB interface: added pragma no-cache. 
  * Keep checking servers in the background.
  * GUI: Auto-resize is now delayed. Default selection
     mode is EXTENDED. Contextual menu items to switch between
    auto-resize/manual resize and EXTENDED/MULTIPLE selection.
  * Send a mail when download is finished. You must complete the
    'smtp_server', 'smtp_port' and 'mail' options.
  * Bug fixes: partial page in WEB interface fixed (often with vr).
      Removed two minutes timeout on good client connections.
      NoSpaceLeft causes pause in download.

Release 1.09:
  * Bug fixes: fixed bad md4 computation of the first chunk, preventing
     completion of downloads.
  * New command 'recover_temp' to recover all lost files from the temp
     directory.
  * See  http://www.freesoftware.fsf.org/mldonkey/ for porting mldonkey on new OSes.

Release 1.08:
  * Remove use of the 'mmap' system call.
  * Better management of delays between connection attempts.
  * Local searches use minsize/maxsize information.
  * More information on availability on WEB/console interface.
  * Small improvement in MD4 computation. Shared files MD4s are saved in
     a 'shared_files.ini' file to avoid computating them again.
  * Filters on replies: set the 'filters' option to a string containing
     sub-words you want to remove, separated by spaces.
  * Maximal download rate can be specified in 'max_download_rate' option.
   (need probably to be rewritten more carefully).
  * Bug fixes: files greater than 9mb in incoming/ can now be shared,
      ftruncate replaced by lseek (for vfat FS), multiple connections to
      the same client fixed.

Release 1.07:
  * Exchange of sets of sources between mldonkey clients.
  * Started implementing chat between friends.
  * GUI allows adding friends by specifying IP and port. New 
     'Connect friend' menu. Better properties of files.
  * New menu item 'preview' in GUI, associated with option 'previewer'.
  * New menu 'Select All' in lists.
  * Bug fixes: in mp3 tags edition, in connected servers count, in
    displaying friends files, in passive connections.

Release 1.06:
  * History of seen files. New commands: 'ls' for local search on the history,
    of search on servers, 'clh' for clear local history. New options: 
    'use_file_history' to allow history on files, 'save_file_history' to
    save the history on disk. For now, search only by words (not size).
  * Authentification by the 'auth' command on the telnet client.
  * Bug fixes: servers disconnected viewed as connected.

Release 1.05:
 * UDP protocol implemented: extended searches to all servers.
 * Improved HTTP interface (port 4080).
 * Limitation on minimal upload dropped to 1 kB/s.
 * Fixed bug preventing queries on multiple words.

Release 1.04:
  * Improved WEB interface (download files by clicking).
  * Stats on upload.

Release 1.03:
  * Upload can be disabled temporarily, if your client has been running long
   enough.

Release 1.02:
  * max_upload_rate is not modified automically anymore.
  * command-line client available from the GUI.

Release 1.01:
  * New command 'set' in command-line client to change options values
  * Command-line client accessible from the GUI or any 
   WEB browser (at http://localhost:4080/)

Release 1.00:
  * Upload/download works
  * Friends works
  * Complex queries works
  * Command-line interface works
  * Graphical interface works
  * Import old config works
