Please read the IMPORTANT NOTE on xMule's versioning system below!
For changes to the UNSTABLE branch, see ChangeLog-UNSTABLE.

Version 1.10.0a
--------------
2004-03-20

* FIXED: xMule no longer bans clients sending a modstring whle not being
  xMule or eMule (thx to Kry).

Version 1.10.0
--------------
2004-03-20

* FIXED: ./configure now properly detects whether libcrypto++ is installed.
* FIXED: A 1.9.5-specific crash when canceling a download.
* FIXED: Slightly increased wxWidgets 2.5.x support.
* FIXED: The color is saved for categories that do not have descriptions.
* Migrated Tweaks Preferences to Main Prefs->Advanced.
* Changed allowable queue ranges from 2000-10000 to 5-1000.
* More changes that I have forgotten over the past hectic weeks.

* Incorporated all changes from 1.9.0 to 1.9.5.


Version 1.8.4
-------------
2004-07-14

* FIXED: Bug from aMule's "fake" implementation of zlib. First, last, and only
         bit of aMule code Hope had ever copied.  It caused numerous problems
         such as faking support for zlib and even causing eMule clients to leech
         from aMule/xMule clients.  When one copies code from a project, one
         naturally assumes they know what they're doing...In the words of Poe's
         Raven: "Nevermore, nevermore."
* FIXED: Removed all memory leaks and warnings in the Search dialog.
* FIXED: Removed all memory leaks and warnings in the Preferences interface.
* FIXED: Removed a bad bug that had xMule not connecting to many sources. 
* Added compatibility for new proprietary lugdunum 16.47 servers.

Version 1.8.3
-------------
2004-07-10

* FIXED: Only update global search results when search either stops or is 
         cancelled.  Prevents an obnoxious screen flicker.
* FIXED: Major memory leak that occured in CPartFile.
* FIXED: Added a workaround so that buggy eMule 0.43 clients will now upload to 
         xMule clients instead of leeching as before.
* FIXED: Several bugfixes in the base client implementation.

* ADDED: Embedded resource system for New FlowChart Prefs.
* ADDED: xMule can now be minized to the taskbar.

* Updated OP_SERVERIDENT to handle more ed2k servers.
* Require wx 2.4.2 at compile time.
* Warn user when changing dangerous FlowChart settings.
* Start search when ENTER is pressed in the query textbox.
* Leecher protection: Do not upload to clients that routinely will not upload to
  xMule due to their own implementations of the ed2k protocol.
* Server messages function has been upgraded to multiline messages.
* Reimplemented MAP for lists. Improved efficiency and less crashes.
* Added FlowChart option to ban probable leech clients (Off by default).

Version 1.8.2c
--------------
2004-06-01
*New in 1.8.2c
     *ADDED: No further need to install libcryptopp for xmule (all needed functionality is integrated now)
     *ADDED: Additional Secuident-Security (new cryptkey generation on every xmule-start if wanted)
     *FIXED: Timeout was too low for DownloadClients
     *ADDED: Secure-Identification & Secure Clientcredits
     *ADDED: Switches for "Secure Identification ON/OFF" & "Source Exchange ON/OFF"
     *ADDED: Initial "Command Center"-Implementation
     *ADDED: Initial rewriting of mfc.h (finished for ClientCredits)

Version 1.8.2
-------------
2004-04-13
*New in 1.8.2
     *FIXED: Timeout for Clients in the Upload List.
     *Better Source Dropping in the Download List.
     *Color change depending on availabilty in the Searchwindow.

Version 1.8.1
-------------
2004-04-06

*New in 1.8.1
     * FIXED: Systray Integration for KDE 3 and GNOME 1.2.
     * FIXED: Several bugs in the Search Window (Search History, ED2K Multilink).
     * FIXED: Crashes on Startup when .xMule/ doesn't exist.
     * FIXED: Exception-bug in ShowDownloadingParts.
     * FIXED: The Chinese Search font display problem in GTK 1.2.
     * FIXED: Fewer large packets are incorrectly dropped (e.g. faster downloads).
     * Increased maximum filesize from 2GB to 4GB (ed2k's max filesize).

Version 1.8.0
-------------
2004-04-01

* New in 1.8.0:
    * FIXED: Various bugs in interpreting new eMule Protocol UDP responses.
    * FIXED: Removed missing fonts from OSScope in Statistics Window.
    * FIXED: A bug in OP_EMULEINFO that would cause random crashes.
    * FIXED: Last non-minor compiler warning in mfc.h.
    * FIXED: eMule v0.30e clients with completed files no longer sporadically
      drop xMule clients on connect. E.g. far more *usuable* sources now.
    * FIXED: Spurious FAT32 permission warnings.
    * Severly decreased CPU usage yet again. Over 150% decrease in CPU usage when compiled in optimized mode.
    * Enable optimization compiliation by default.
    * Added source exchange functionality.  Now sources are found much faster
      than having to wait on the servers.
    * Added initial support for the eMule-protocol secident.
    * Added FULL precompiled support to libXRC.
    * Added necessary copyright and license clauses to become 100% compliant
      with the GNU Public License (GPL).
* Integrated all changes from 1.7.0-1.7.4c (see ChangeLog-UNSTABLE).
* Highlights from 1.7.x:
   * There are no known exploits in this version.
   * Lots of fixed memleaks and cpuleaks.
   * Extended support for virtually all of eMule's v3x protocol changes.
   * Enhanced transfer controls with A4AF, NNS, etc.
   * Supports every eDonkey server.
   * Added full ZLIB support.
   * Less waiting for downloads!  Fixed a broken if statement that was tossing 
     out some of the early download connections.
   * New Build system:
     * Added Precompiled Header support (./configure --enable-precomp) for the
       gcc 3.4+ compilers.
     * Simplified compilation info (Use $ make VERBOSE=1 for standard output).

   * Added Hetfield's SysTray for Gnome and KDE, provided by m_abs.
   * Refactored every header, cpp file.  Much less interdependent files.

Version 1.6.1
-------------
2003-10-10

Special note:  Due to the chaos surrounding the 1.6.1 release (Un-Thesis being 
DMCAd), we delayed releasing 1.7.0.  Sorry for the confusion.

malware's contributions:
   * Removed all font specifications from the XML resources.
   * Do not start a search after adding an ED2K-Link.
   * Enable clipping in download list control.
   * FIXED: Bug rehashing a part file.
   * FIXED: Various minor problems found by malloc debuggers.
   * Keep the requested file in sync with the part status in CUpDownClient.

Un-Thesis' contributions:
   * Fixed various compatibility issues with the new eDonkey servers.

Version 1.6.0
-------------
2003-08-26

Highlights:
   * Categories implemented.
   * Much better No Needed/High Queue Ranking sources handling
   * Shared files loading made 30x faster, now supports thousands of files.
   * Numerous possible security exploits fixed.
   * Generally, code is a lot clearner now.
   * Enhanced OS support: NetBSD, OpenBSD, Solaris.
   * New Extended Options:
     * Various A4AF functionality,
     * Drop No Needed Sources,
     * Drop High QR Sources,
     * Drop Full Queue Sources.

malware's contributions:
   * Speed up the initial sharing by making KnowFileList a hash map.
   * Remove the assign to category context menu entry only if it was
     already there.
   * Reimplemented hashing thread.
   * Removed unused locks. As the NetBSD team pointed out they are
     causing problems on their system because it does core dump on
     unlocking a mutex that was not locked.
   * Made the title for systray the same as for the main dialog.
   * Never share a file twice.
   * Fixed endless loop in sending UDP packets.
   * Fixed a possibly exploitable bug as noticed by S. Esser from e-matters.
   * Fixed new downloads assigned to random category.
   * Check size of OP_SERVERSTATUS packet more strictly.
   * Make xmule not to send the MOD_VERSION information. This does avoid a
     problem with the LSD mod and other xmules.
   * Removed memory leak from hashing thread.
   * Minor fixes of problems detected by valgrind, mostly uninitialized
     variables.

Un-Thesis' contributions:
   * Implemented better GTK2 checks based on NetBSD team's and a Solaris user's 
     input
   * Converted embedded XPMs to PNGs and JPEGs for better memory usage.
   * FIXED: several bugs inherent in the source from previous devs/projects.
   * FIXED: several memory leaks.
   * Started refactoring the sourcecode.
   * Got his own connection shut down by MPAA on 19 Aug :P
   * Bringing website back to live.

NetBSD team's contributions:
   * Fixed bug with the mutex protecting calls to gethostbyname.
   * Try to increase some resource limitation to the permitted maximum.


Version 1.4.3
-------------
2003-08-10

malware's contributions:
   * SECURITY: Removed possible format string exploits.
   * FIXED: statistics color saving/loading.
   * FIXED: a possibly exploitable bug as noticed by S. Esser from e-matters.
   * FIXED: exception handling for CString/wxString.
   * FIXED: endless loop in CClientUDPSocket::OnSend().
   * FIXED: fatal exception handler not to fail in early stages.
   * FIXED: endless loop in CListenSocket::KillAllSockets().
   * FIXED: Lagloose's Shift+Doubleclick to show really only transfering
     sources. Update still does not work.
   * Decode %-escaped characters in URL within the ed2k application as
     suggested by __JusSx__.

NetBSD team's contributions:
   * Work-around not to unlock mutexes not locked.
   * Try to increase some resource limits to the permitted maximum.
   * FIXED: bug with the mutex protecting calls to gethostbyname.

Un-Thesis' contributions:
   * Added support for adding multiple ED2K links.
   * Added ED2K link support for GTK2.

FooMan's contributions:
   * FIXED: for failing file access during download completion.

Version 1.4.2
-------------
2003-07-22

Un-Thesis' contributions:
   * Optimized Pictures:  Converted all large XPMs to JPEGs.
   * Memory optimization: Project should use approximately 2MB less memory.
   * Size optimization: Binary should use approximately 2MB less space.
   * Implemented Lagloose's Shift+Doubleclick in downloadlist only shows
     transferring sources.
   * Enhanced upload statistics in the Upload List.

MikaelB's contributions:
   * FIXED: Saving main window position and size now works.

Malware's contributions:
   * FIXED: Remainder of the Search Dialog crashes.

Kry's contributions:
    * Added xMule Uptime to statistics tree.

Version 1.4.1a
--------------
2003-06-24

Madcat's contributions:
   * FIXED: Crash on GetPeer() call during socket failure.
   * FIXED: Crash when trying to send hash of nonexistent knownfile.

Version 1.4.1
-------------
2003-06-19

Madcat's contributions:
   * FIXED: Various crashes regarding Shared Files Reloading.
   * FIXED: Several Search Tab Closing/Global Search related crashes.
   * FIXED: Several eMule/xMule typos.
   * FIXED: Endless loop if UDP packet sending failed.
   * FIXED: Endless loop/memleak at ProcessMuleInfoPacket().
   * FIXED: Endless loop at CPartFile::FlushBuffer().
   * FIXED: CPU leak in ProcessHelloPacket().
   * FIXED: gsocket.c compilation problems with older compilers.
   * FIXED: Crash when search results were added to nonexistent search tab.
   * FIXED: Endless loop in case UDP packet sending fails.
   * FIXED: Sockets are also closed on crash now.
   * Revised Search Result packet handling, shouldn't crash/memleak there 
     anymore.
   * Removed annoying MAX_RESULTS check from search tab.
   * Added log line when ipfilter is loaded.
   * All log messages are also written into file ($HOME/.xMule/logfile).
   * Shared files list is now resorted after reloading.
   * Implemented external ED2K links handling. Use ed2k <link> instead of xmule 
     <link> from now on.
   * Changed popup window to log message when shared file is not found.

Kry's contributions:
   * FIXED: --version commandline argument.
   * FIXED: Bogus 2.1.0.1 servers on serverlist.
   * FIXED: Shared folders not shared in some systems.
   * FIXED: Shared files not being shared in non-english languages.
   * FIXED: Download limit being higher than capacity.
   * Made ./xmule statistics more readable.
   * Added a notification message in case second xMule is started.

Un-Thesis' contributions:
   * FIXED: GTK-only XPM compatibillity problems.
   * FIXED: GetTickCount compilation errors.
   * FIXED: LOWID problems (AGAIN!).
   * Removed pure GTK code from GetColour.
   * Added eMule's LOWID icon to main status bar on LOWID connection.

MikaelB's contributions:
   * FIXED: Toolbar sizing with i18n

Seneca's contributions:
   * FIXED: Clipboard handling (ctrl+v instead of middleclick for pasting).

Version 1.4.0 (first xMule release)
-------------
2003-05-26

Highlights:
   * All but two known bugs fixed.
   * MAJOR memory and cpu leaks fixed. Runs @ 0.7% CPU on Un's 2000MHz AthlonXP

Madcat's contributions:
   * Removed extraneous hashing debug messages.
   * Removed extraneous socket debug messages.
   * Removed useless 'missing server.met' message box.
   * Tweaked default upload bandwidth settings.
   * Changed the xMule titlebar to a more appropriate string.
   * FIXED: Shutdown segfault.
   * FIXED: errors with loading/saving preferences.
   * FIXED: small eMule-specific memory leak.
   * FIXED: files now show in Shared Files list.
   * FIXED: xMule no longer crashes if Reload button is clicked fast.

Un-Thesis' contributions:
   * Intial MacOS support via wxMac. Crashes on startup due to Unicode issues.
   * Removed antiquated checks for libexpat.
   * Removed dependencies on libexpat.
   * Removed duplicate conflicting #defines.
   * Reset button now resets the log textbox.
   * FIXED: MD5Sum.cpp now compilable with G++-2.95.3.
   * FIXED: MakeNG compilation issues.
   * FIXED: Settings are no longer re-loaded when they are applied.
   * FIXED: Some unresolved LOWID issues.
   * FIXED: CPU leak in GetTicksCount(), should increase performance 2%.
   * FIXED: Memory leak in SharedFileList.
   * FIXED: 1.3.0 error where only files that were being downloaded were
     uploaded.
   * FIXED: eMule-specific error where clientcredits.met is always rewritten.
   * FIXED: All known wxAssert (e.g. failure) errors.

Kry's contributions:
   * Disable UDP option now works.
   * Sorting by priority should now work.

Tap's contribution:
   * Added Estonian translation.

DongCheon Park's contribution:
   * Added Korean translation.

Marc's contribution:
   * Added better support for Open and NetBSD.

Stkn's contribution:
   * Added auto-bactrace on crash functionality.

Uberpenguin's contribution:
   * Created the xMule logo.

Dirk's contriubtion:
   * FIXED: Log control's text no longer grows exponentially.
   * NOTE: This is a **MAJOR** Memleak fix! :-))

Version 1.2.1
-------------
2003-04-28

Highlights:
   * Should crash less often 

Tiku's contributions:
   * FIXED -- segfault at startup with RH9.
   
Pure_Ascii's contributions:
   * FIXED -- zero column widths at first startup
     (From 1.2.0.1, was missing in CVS).
   * Now displays xmule version on startup
   * Updated german translation

Madcat's contributions:
   * Download List is now sorted during startup.
   * Searching crash bug FIXED! (tagcount problem)
   * Stops old global search if you start a new one.
   * FIXED -- preview with paths containing spaces etc.
   * FIXED -- SIGPIPE (Broken pipe) problems.

Octane's contributions:
   * FIXED -- GTK2 problems

Version 1.2.1
-------------
2003-04-28

Highlights:
   * Should crash less often 

Tiku's contributions:
   * FIXED -- segfault at startup with RH9.
   
Pure_Ascii's contributions:
   * FIXED -- zero column widths at first startup
     (From 1.2.0.1, was missing in CVS).
   * Now displays xmule version on startup
   * Updated german translation

Madcat's contributions:
   * Download List is now sorted during startup.
   * Searching crash bug FIXED! (tagcount problem)
   * Stops old global search if you start a new one.
   * FIXED -- preview with paths containing spaces etc.
   * FIXED -- SIGPIPE (Broken pipe) problems.

Octane's contributions:
   * FIXED -- GTK2 problems

Version 1.2.0
-------------
2003-04-21

Highlights:
   * Movie preview.
   * GTK2 compatibility.
   * BSD compatibility.
   * Hide/show list columns.
   * ED2K Browser Integration.

Madcat's contributions:
   * Made ED2K integration HOWTO.
   * Enabled multiple selections in all lists.
   * Item selected when right-clicked.
   * Sort order stays when sources/items are added to list during global search.
   * Search tabs can be closed during global search.
   * Double-clicking on a server in Server List now connects to that server.
   * Original idea and implementation of column hiding.
   * Made xmule fully 0.26d GUI compliant.
   * Preview of movie files (mplayer+xine officially supported).
   * Preferences saved when OK is clicked in Preferences.
   * FIXED -- Shared Files tab Highest/Release priority issue.
   * FIXED -- Search Tab "Remove All" button.
   * FIXED -- Search Tab "Download All" resized.

Un-Thesis' contributions:
   * Fully implemented column hiding for all lists.
   * Added full GTK2 compatibility.
   * Updated auto-server.met URL.
   * FIXED -- column hiding bugs in wxGTK code.
   * FIXED -- Freeze if wget failed.

Pure_Ascii's contributions:
   * Tested tray icon in KDE3.
   * Spoofed up wxLocale() i18n implementation.
   * Now detects new mlDonkey clients.
   * FIXED -- Buffer Overflow: too long lines in the retrieved  server lists - 
     will freeze xmule (reported by Gib[S]on) 

Lioux's contributions:
   * Added *BSD compatibility.
   * Substituted direct pthread calls for wxMutex calls.

Simbal's contributions:
   * FIXED -- SuSE 8.2 compilation errors.

Pterjan's contributions:
   * Added a much better French translation.

Version 1.1.13
--------------
2003-03-29

Un-Thesis' contributions:
   * MAJOR FREEZE FIXED -- Not only will known.met load at start up, but
       * there is no longer a spurious server_met.download
        error (uses server.met instead),
      * you can watch the shared files load in real time, and
      * you can do all sorts of stuff w/ xmule while files are loading
   * MAJOR CPU drain caught, the infamous fdate() bug.
   * Server.met files can now be downloaded just by clicking the Update button
   * About box now displays xmule info :P
   * Changes to socket closing should fix LOWID issues when quickly restarting
   * Make system has been cleaned and re-implemented. User shouldn't notice.
   * 99.5% of the C++ syntactical warnings have been corrected
   * Removed all deprecated wx functions; now wx-2.5.0 compliant

Pure_Ascii's contributions:
   * Fixes for certain i18n routines by Pure_Ascii

Tiku's contributions:
   * First implementation of a Tab Control
   * Further renovation of the Search Page by Tiku

Version 1.1.12
--------------
2003-03-23  Timo Kujala
   * Search page renovation. Now in 0.26d glory.
   * Missing features in search page implemented (add/remove static 
     servers, change priority)
   * staticservers.dat no longer hangs xmule during startup
   * xmule probably compiles with gtk2 again.. 

Version 1.1.11b
---------------
2003-03-19  Timo Kujala
   * Fixed a bug in file hashing.

Version 1.1.11a
---------------
2003-03-19  Timo Kujala
   * Bug fix for search pages. Menu selections are now routed to the
     current page instead of the newest page.

Version 1.1.11
--------------
2003-03-19  Timo Kujala
   * Search list will now show filelists from other users
   * GDK-ERROR: BadMatch fixed (caused by negative offsets in 
     Refresh() calls)
   * Non-existing directories are removed from shared directories
     during startup.
   * Temporary-directory and Incoming-directory can now be on a 
     different filesystems.
   * Comment dialogs now work
   * Many wxASSERT-bugs fixed all around the code
   * Spanish translation 
   * List items backgrounds no longer default to white
   * Serverlist URLs can be edited in preferences
   * Answering "No" to the "Do you want to cancel this file" 
     no longer cancel the file anyway.

Version 1.1.10
--------------
2003-03-17  Timo Kujala
   * Fixed a bug that prevented sharing files which contained spaces 
     in their names
   * UDP port allocation in UDPSocket.cpp was wrong. Now it opens
     port 4662+3 (even though xmule does not do this?)
   * Maintenance fixes in tree control and list controls.

Version 1.1.9
-------------
2003-03-16  Timo Kujala
   * Sort order is now remembered during sessions
   * Shared directories can be set
   * Download list control upped to 0.27a version to fix functionality
     problems in it.
   * Listen socket is now in totally non-blocking mode.
   * Search tabs now contain close-button
   * Enter-key now works in search page.
   * Internationalisation support

Version 1.1.8
-------------
2003-03-09  Timo Kujala
   * Memory leak in CList implementation fixed.
   * ed2k-links can be given on a command line, thus enabling ed2k-links
     from web browsers (at least from Konqueror).

Version 1.1.7
-------------
2003-03-07  Timo Kujala

   * Updated ChangeLog :)
   * Bug in ClientUDPSocket handling (actually it wasn't handled at all)
     fixed.
   * Bug that caused random crashes at start fixed. (Network connections
     are no longer handled until initialisation has completed)
   * Changed CList<> implementation to use GLIB list. This hopefully
     lowers CPU usage.
   * Remove server now works.
   * Tray icon shows download rate.
   * Fine-tuning the configure.in. It now warns if GTK2 is used,
     and gives better instructions if wx-config is not found. 
   * Bug in Systray initialisation fixed. Occurred if Systray was not
     enabled.

2003-02-13  Fuentes Xavier  <furax@r00tworld.com>

   * Implemented copy ED2K:// links to clipboard

2003-02-11  Fuentes Xavier  <furax@r00tworld.com>

   * using autoconf/automake/gettext

2003-02-09  Fuentes Xavier  <furax@r00tworld.com>

   * fixed main button bar to behave more like xmule

Version 1.0.0
-------------

2003-01-0  Timo Kujala  <tkujala@lut.fi>

   * initial release

-----------------------------------

IMPORTANT NOTE:
The xMule release system works as follows:
*  Program_Era.Major_Version.Minor_Version.
*  We are in Program_Era 1
*  Major_Versions work as follow:
   *  Odd numbered Major_Versions represent uniquely new code, such as new 
      features or complex bug fixes/
   *  Even numbered Major_versions represent code that has been tested, USUALLY 
      in an odd Major_Version release.
   *  Once *new features* in odd Major_Versions have been tested, they go into 
      the next *even* Major_Version.
   *  Once *bug fixes* in odd Major_Versions have been tested, they go into the 
      next *odd* Major_Version.

What this means is that a great many (hopefully EVERY!) feature mentioned in ChangeLog will ALSO be mentioned 
in a PREVIOUSLY RELEASED ChangeLog-UNSTABLE.
