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 " 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 ' 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 " 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: * - 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 ...' 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 ' to load a file, and '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