Changelog 2.0.0

From AMule Project FAQ
Jump to: navigation, search

Version 2.0.0 FINAL - The "Let's dedicate this to Tiku" version.



  • Compilation fix for WebServer.cpp and BaseClient.cpp with wx-2.4.2.
  • Compilation fix for OtherFunctions.cpp with Slackware 9.1.0


  • NetBSD compilation fixes.


  • Preferences for auto-sort download queue.
  • TCP and UDP port start now at 0 (remember - running amule as root is insecure!!)
  • Added aMule version info into "About" popup.
  • Show current DL speed from a client you are uploading to in "Remote Status" column instead of in the "Speed" column.


  • Patch to complete html functionality of cas.
  • Fixed seg fault in cvs due to wrong type check.


  • Improved the sources column and sorting in search window. Now can toggle total sources/completed ascending/descending.


  • Unicode fixes:
    • UTF-8 conversion (reported by littletux)
    • webserver search results (reported by poulpe)
    • aMule version on webserver's Statistics page
  • Endianness fixes in EC.
  • Fixed appearing strange characters at the end of webserver's log and debug log pages.
  • Fixed logo.jpg being not installed.
  • Webserver graphs are now resizable and rescalable.
  • Removed some unneeded code/data from daemon.
  • Added gcc #pragmas to reduce executable size.
  • Several improvements on EC network code:
    • EC now uses buffered I/O, so most EC transmissions will only require one socket operation.
    • Added the ability to compress lagre packets with zlib, thus reducing network load.
    • Some (not-so-CPU-consuming) compression is applied to small packets, too.
  • A number of i18n fixes, mostly changing debug messages to be untranslated.
  • Removed ECv1 compatibility mode. Now all EC communications are using the new v2 protocol.
  • Remote applications do not log to core's log anymore.
  • Fixed the GetLog() function to be compatible with wxWidgets-2.5.4
  • Reworked template finding - after installation, no more copying of webserver files are needed.
  • Added new command 'reloadshared' to amulecmd, to force reloading of shared files list.
  • Fixed configure script to use the right arguments with gdlib-config.
  • Fixed configure script to check for gd in the right order.
  • Fixed preferences being not saved when set from web interface.
  • Fix for setting download priorities via web interface.
  • Added configuration file for remote apps.
  • Reworked command-line parameters, also added a lot new ones (for remote apps).
  • Fixed *.desktop files to be really UTF-8.
  • Fixed Makefiles to be able to compile alcc without alc.
  • Added man pages - English only, for this time. Great thanks to Vollstrecker for his initial work on the man pages!
  • Fixed pressing the 'Clear Completed' button causes a logout on the web interface.
  • Added CVSDATE checks to EC, to make sure that core and remote apps are from the CVS tarball (for CVS users).
  • Improved filename cleanup.
  • Fixed setting priorities via web interface on both downloads and shared files.
  • Enabled translations on amuleweb and amulecmd.
  • Fixed the language selector on Preferences to show the languages that we really have.
  • Language list is now always sorted alphabetically, but 'System default' is always the first item in the list.
  • Changed locale saving method, so it won't have to be reset to 'System default' on each version change.
  • Added Hungarian man pages.
  • Fixed sorting in web interface.
  • Compilation fix for gcc-3.2.2 and 3.2.3.
  • Win32 (wxMSW) compilation fixes.
  • Enabling configure way of aMule compilation under MinGW/MSYS.
  • Several improvements of the win32 version of aMule and utilities.
  • Totally disabled the ability to connect to aMule with an empty password.
  • Enabling translations on remote GUI, too.
  • Configure will now list (almost) all libraries it will/wants to use for build.
  • Hungarian translation update.
  • Remote GUI compilation and link fixes for optimized builds.

For users, who already got used to amulecmd's or amuleweb's command-line parameters: PLEASE READ DOCUMENTATION CAREFULLY!


  • New popup menu and events management for new wx SysTray
  • Speed Bar color (on the new wxTray) is setted in the statistics color selection (as old GTK tray!)
  • Some configure checks and cleanup


- Global -

  • We're now fully compatible with the ed2k Unicode implementation, allowing Unicode searches, comments, usernames, file names, ... This works both for unicode-aware servers and clients.
  • New SysTray code using wxWidgets' wxTaskBarIcon with several hacks for making it properly transparent while keeping the nice download speed bar. Multiplatform, also. Activated by default on > wx2.5.3
  • Corrected a nice mistake where wxSOCKET_LOST was identified as error.
  • Fixed clasic systray code to support unicode names properly.
  • Removed/Cleaned/etc header includes.
  • Fixed unicode bug on wxOpen preventing to share some files.
  • Fixed the SERVER_IDENT packet processing.
  • Auto-sort code for list controls. Disabled by default, too much flickering on mac and gtk2.
  • Fixed eMule+ version popping up on eMule stats.
  • Debug log lines now go to console on daemon
  • Moved hello packet sending to after client successful connection.
  • Added the RepeatLastAction function that turned up to be... well, funky.
  • Fixed debug of disconnected clients.
  • Fixed duplicated mod string on clients.
  • Fixed unhandled exception from server TCP socket.
  • Fixed lowid clients callback.
  • Fixed duplicated floating point functions being called every second (CPU omprovement).
  • New file is added: tree.hh, credits to Kasper Peeters, <> It's a stl-like tree and I really enjoyed coding with it. More info on
  • Fixed a crash on Proxy code created by bad string initialization causing mem corruption.
  • Added wxProxyData::Empty() to properly clean aMule proxy data when needed.
  • Fixed unitialized variables on MemFile.cpp and SafeFile.cpp that made valgrind scream in pain.
  • Fixed the CUpDownClient::SendFileRequest crash you were all screaming about on rc8 :P
  • Fixed SUI failures with kernels >= 2.6.10. This failures and asserts were created by the locking of /dev/urandom that was introduced on 2.6.10, and that made CryptoPP fail on creating a random pool for the SUI identification. This is more a workaround actually than a fix, but will work perfectly.
  • Completed files now go to shared as the should.
  • Fixed search on localised languages.
  • UDP disable is working properly now.
  • Close the UDP socket if we're not listening anymore.
  • Permisions for shared files are no more. They make no sense, network-wise.
  • Fixed comment updates being... fuzzy.
  • Fixes to timeout handling of sources to avoid timing out a source that was never processed.
  • Fixed a memleak on log code.
  • Proper handling of Thread reating/Running errors.
  • Fixes for wrong string creation on several places over the code.
  • Fixed log reset asserts and made it work properly (at last!)
  • Auto-run webserver on startup functional
  • Fixed a wild assertion if a empty line gets to ED2KLink file
  • Merged Gonosztopi's work on EC for the stats tree with performance and safety fixes.
  • Merged Gonosztopi's work on a patch from Mayfoev to use aux server ports, with some cleaning.
  • Fixed the crash on non-std locales because of date/time functions.
  • Get rid of more ugly unicode2char stuff by making the logfile a wxFFileOutputStream.
  • General speedup of log file.
  • Proper order of files on, much better to know compilation progress by first letter.
  • Moved at last all stats to where they belong: the new files Statistics.cpp and statistics.h.
  • Fixed assert on client list view caused by unknown client state.
  • Hopefully avoid the never-deleted sockets (passive sources)
  • Fix for the case that someone dares having 65536 active connections
  • Made the sources connection spread evenly among part files.
  • Fixed server-list packet from server not being handled properly.
  • Fixed crahes on re-sort of download queue.
  • Fix for server connection packet not using unicode username.
  • Search results on unicode are displayed properly now.
  • Files on download queue with unicode names are displayed properly now.
  • Unicoded filename is saved correctly on .met file, and loaded according to it.
  • Files with utf8 chars can be completed now ;)
  • Shared files with uciode names do show correctly now.
  • Modification time for files is fixed to keep coherence (GetLastModificationTime usage).
  • Filenames on known files list (known.met) are saved in utf8 too now, so correctly loaded and compared lately.
  • Fixed unicode identification to clients and server.
  • Use BOM header on the known.met, part.met and emfriends.met for unicode tags. Sad, but there's no other way to keep compatibility with eMule files.
  • Fixed memleak on ExternalConn.cpp.
  • Fixed the "Invalid UTF8 string passed to pango_layout_set_text()" messages on GTK2 builds.
  • Fixed (again) the Shareazza identification. They have used 3 compat. client numbers already, will they take one once and for all?
  • Fixed memleak on log reset.
  • Fixed memleaks on closing while global search.
  • Fixed serious memleak on tag code for packets. And I mean serious.
  • Removed the unused UTF82char function.
  • Fixed queue limits on upload queue (off-by-one bug).
  • Fixed hash for files with size (n*PARTSIZE).
  • Fixed compilation for systems where zlib is not linked by default.
  • Fixed OP_SENDINGPART to actually be a edonkey protocol and not emule protocol packet.
  • Fixed memleak on AICH thread.
  • Fixed several memleaks on ed2k links handling.
  • Fixed threads not being closed properly, specially the global search one.
  • Fixed serious memleak on client UDP reask
  • Don't remove the server because of failedcount if it's static.
  • When the user tries to remove a static server, we prompt for confirmation.
  • Files on non-ansi named folders are no longer rehashed on every restart.
  • Don't discard UDP packets on wxSOCKET_WOULDBLOCK. This improves UDP socket reliability a lot. Remove the packet from queue if sent, keep it if it's not sent because of wouldblock, and drop it on any other error.
  • Send previously queued UDP packets before we send a new UDP packet.
  • Fixed aMule crashing on second global search under certain circunstances.
  • Fixed the hanging on connecting to server.
  • Fixed dynip servers to connect properly (happy portuguese users!).
  • Moved:
    • CMemFile.h -> MemFile.h
    • filemem.cpp -> MemFile.cpp
    • packets.cpp -> Packet.cpp
    • packets.h -> Packet.h
    • sockets.cpp -> ServerConnect.cpp
    • sockets.h -> ServerConnect.h
    • UDPSocket.cpp -> ServerUDPSocket.cpp
    • UDPSocket.h -> ServerUDPSocket.h
    • types.h -> Types.h
    • server.cpp -> Server.cpp
    • server.h -> Server.h
    • timer.cpp -> Timer.cpp
    • otherstructs.h -> OtherStructs.h
    • otherfunctions.h -> OtherFunctions.h
    • otherfunctions.cpp -> OtherFunctions.cpp
    • opcodes.h -> OPCodes.h
    • color.h -> Color.h
    • endianfix.h -> EndianFix.h
  • Unicode fixes for "Gtk-CRITICAL **" errors on shell.
  • Unicode fixes preventing compilation for Packet sources.
  • Unicode fixes for StrToULong usage over atoi.
  • Fixed eMule+ version string.
  • Implemented lugdunums new extension of GETSOURCES, includes SIZE (uint32) to avoid problems created by anti-p2p companies
  • Removed MetaTags extraction code, we're not going to use it anyway.
  • Fixing some crashes on wrong string handling.
  • Support for unicoded comments for files.
  • Moved Online Signature (aMule and eMule) to wxTextFile for proper handling.
  • Fixes a serious issue on UDP packets (and contributed to eMule).
  • Debug output of server sources added.
  • Fix for garbage saving on file copy.
  • Fixed the server disconnection due to bad handling of TCP packets.
  • Added a fallback for wrong TCP packets handling to avoid server disconnect.
  • Proper memory overruns checks on SafeFiles.
  • Fixed the partfiles being the only thing shared under certain circunstances.
  • Fixed bug #193: False display with empty share list
  • Fixed bug #258: "Max port-value allowed is too high due to secondary port"
  • Fixed bug #276: aMule crached when tried to start. (It says "crached on the original report)
  • Fixed bug #299: "Assertion when clicking in DQ/Last Reception column"
  • Fixed bug #303: "Too many files republished by your client software. Please upgrade it." Proper handling of incremental file publishing avoids server bans ;)
  • Fixed bug #317: Added GUI and functionality for 'Start next file on same category'.
  • Fixed bug #319: When sort is changed, make sure the item focused is again focused.
  • Fixed bug #321: Razoback2 stats page for shared files.
  • Fixed bug #331: 'ED2k link bar gone after 2x click on search button' making it a feature instead of a bug. Now you can toogle the ed2k link handler clicking on search toolbar button.
  • Fixed bug #334: Main category type not stored on crash.
  • Fixed bug #345: [Mac] popup windows open on other monitor.
  • Fixed bug #348: "Right-click on friend in friends list does not select it"
  • Fixed bug #362: "receive file list fails for non-ascii chars"
  • Fixed bug #349: "sorting of sources in 'Downloads' window"
  • Fixed bug #375: "Misc GUI bugs in Statistics window"
  • Fixed bug #374: "misc. problems with friends"
  • Fixed bug #405: "Downloaded files have wrong priority"
  • Fixed serious bug with 0-sized files.
  • Fixing serveral threading issues and possible crashes/missbehaviours on search.
  • Searchs now start inmediately and also finish sooner.
  • Added a warning if no video player is set on preferences and tried to preview.
  • Decoupled NetworkFunctions and StringFunctions headers.
  • Added QueueDebugLogLine for... uh... queueing debug lines.
  • Encapsulating network stuff at NetworkFunctions.
  • Removed all network platform specific code from the main code, and leave it to NetworkFunctions (and gsocket). And I removed the htons and htonl everywhere.
  • Fix for egcs compiler crashing on aMule compilation.
  • Changed the CTags structure to a safer and nicer version, compatible with eMule's.
  • Added support for a lot more ed2k Tags.
  • Support for download stats per client.
  • Added the hability to rename a file using F2
  • Fixed crash on sorting an old tab.
  • Improved socket debug, and moved the backtracing function to OtherFunctions.
  • Fixes dynip servers not being detected by server UDP socket.
  • Fixed a lot, lot of input data lost on EMSocket, causing much better transfers.
  • Fixed corrupted parts info store/retrieve on partfiles with eMule compatibility.
  • Fixed ed2k protocol file type publishing.
  • Fixed a lot of network performance issues and lost packets all over the TCP/UDP code.
  • Fixed download bar on tray icon (Icon file has now red background to create a mask from it).
  • Fixed crashes on Logger class derived from bad unicode2char usage.
  • Added "Prefix where amule will be installed" to configure output.
  • FileDetailDialog is now resizable, and file names list ctrl resizes vertically and horizontally with it.
  • No horizontal scrollbar on log, let lines wrap to avoid auto-scrool on long lines.
  • Gnucco's alternate sorting of search list ctrl. See for details.
  • Big rework of the Friends class, list, and everything.
  • Cached the Operating System info and added to --version flag.
  • Added Online Signature update time functionality and widget disabling on OS disable.
  • Slightly bigger list for the preferences items to fit them all
  • Added a static text for recursive sharing via right-click to avoid questions.
  • Systray can now be enabled/disabled on preferences, dynamically, and is applied as soon as the checkbox is checked. Default is DISABLED. Also, the minimize to tray checkbox is disabled when systray is not enabled, and when using the new systray code (the wx tray), we don't have the Window Manager dialog anymore.
  • Check for Online Signature folder existance when enabled.
  • Fixed a lot of unicode bugs on file handling by adding fallbacks to proper encoding.
  • Set minimize to tray to false if no tray enabled.
  • Fixed a crash... on... assert... hum... that one was actually funny.
  • We should not start next file on cancelling a download. Now we do not ;)
  • Stopping a global search works properly now, the thread for global search is deleted on stop.
  • Zero the Online Signature on exit.
  • Fixed a crash on exit while stillstarting up.
  • Fixed aMule nto starting anymore if skin file name is void and skins are enabled.
  • Proper use of wxWidgets functions for ISO date formatting.
  • Never show the download list filter on search category selector.
  • Lots of fixes for wx2.6.0 compilation, wxSizer, and other changes.
  • Fixed the download limits not being applied correctly. this should amke MUCH BETTER download speed for people with download limits set.
  • Fixed sockets not being closed on daemon.
  • Fixed chmod message on Incoming/temp folder on smbfs.
  • More info on the init. text and on backtraces (Operative Sytem, kernel version, etc).
  • Fixed crash caused by random value returned on DeletePage().
  • Fixed Reload Shared Files not re-reading sharedfiles.dat
  • Fixes the hangups on exit, specially on Mac.
  • Fixed the AUTHORS file.
  • Fixed UDP socket bug on size of OP_REASKFILEPING message.
  • Abort loading of shared files if we are shutting down.
  • Fixed crash caused by socket die on ConnectionEstablished function.
  • Added contact info to documentation and about button.
  • Fixed (again) mplayer usage as video previewer.
  • Fixed a network bug on SetStartNextFileSame not being set.
  • Proper usage of wxProcess::Exists( for webserver running on start check.
  • Cleaned configure/Makefile from a lot of bad usage of flags and libs. This makes for a smaller executable now also.
  • Merged Martimac's fix for FreeBSD 5.4-PRERELEASE
  • Fixed friendslot assignation, about 12 times.
  • Fixed logging of not-yet-sent messages by adding it to queue and send on connect.
  • Fixed message sending to unknown clients.
  • Avoid the posibility of a Too Many Connections blocking a chat.
  • Fixed buttons/textentry not enabled on new chat tab.
  • Fixed tabs' 'X' not working properly when there are too many and don't fit on screen. Use new wx code instead of Madcat's code on wx2.5.4 and above, for the 'X' closing.
  • Multiple selecting ed2k links and clicking on copy ed2k works now for search items.
  • Fixes the multiple removal of friends
  • Fixed multiple message send to friends.
  • Fixed multiple filelist requests
  • Fixed multiple friend details dialog show.
  • Adds a warning for trying to set multiple friendslot.
  • Fixed Incoming folder content not being sent on shared files request.
  • Fixed completing of file setting transfered instead of completed to file size.
  • Fixed --with-crypto-prefix flag not pointing to actual crypto folder.
  • Added memleak check on exit using wxWidgets native fucntions, enable via wx qa lib.
  • Rewrote wx*Sizer* handling on Stats page and making more space available.
  • There is no curl anymore needed/used on aMule. Coded my own handling using wxHTTP.
  • Added partial/total bytes to the http download dialog.
  • Fixed sizers usage on Client Details, fixes overlapping labels and such stuff.
  • Fixed client stats not updating on clientnumber going down to zero.
  • Fixed "total transfered datal isn't saved on crash/kill" bug.
  • Fixed flushing of files on copy with read-only flag set.
  • Added "total downloaded"/"total upload"/"total requests"/ "total accepts" to partfile saving.
  • Fixed rehashing of unicoded file names on aMule restart.
  • Fixed aLinkCreator compilation for wx2.6.0
  • Fixed upload speed not being reset when all clients lost and keeping old value.
  • Fixed port output on console showing negative numbers.
  • Lot of Kad porting (NOT functional yet).
  • Fixed (c) strings all over the code with proper year specifications.
  • Fixed unicode2char usage to a bare minimum.
  • Moving from libc usage to wxWidgets multiplatform implementations.
  • Killed c_str() usage from aMule, except on very specific ways and only for speed reasons.
  • General cleanups and speedups here and there.

- CPU arch Specific -

  • 64 bits archs fix for AICH thread.
  • Some amd64 compilation warning removal.
  • Fixed endianess bug on PeekUInt16
  • Fixed client IP endianess on big endian archs.
  • Getting ENDIAN_SWAP_* to a bare minimum (just interface)
  • Fixes endianess of local_ip, which is anyway almost all times 0.

- Core/GUI Specific -

  • Fixed daemon unhability to handle sources properly. Daemon now takes, handles, and processes sources in a proper way (making it at last a real competitor for monolithic).
  • Don't show geometry option for daemon, makes no sense.
  • Properly display "aMule Daemon" instead of "aMule" on daemon.
  • Fixed statistics tree interdependence with GUI, splitting it to core/gui way. In short, we have statistics tree on webserver, amulecmd and remote GUI :)
  • Graphic statistics are now decoupled from GUI. We have statistics graphics on webserver remote GUI.
  • Decoupled Friend list from GUI.
  • Fixed a bug on set comment on a file on ECv2.
  • Fix for log on unicoded webserver.
  • Fix for global daemon thread not closed on exit.
  • Splitting of core/gui on SearchDlg.
  • Fixed a crash on websocket thread creation.
  • Reactivating Chat windows on remote GUI.
  • Proper fix for the segfault on exit caused by EC.
  • Removal of CryptoPP usage on amulegui.
  • Fixed a possible crash on daemon startup.

- BSD Specific -

  • Fixed BSD compilation for <sys/types.h> inclusion.
  • Fixed FreeBSD 4 prerelease (DragonFly) compilation on gtkplugxembed.c

- Solaris Specific -

  • Fixed Solaris compilation and linking.
  • Fixed need for inet_addr on webserver on Solaris.

- Mac Specific -

  • Fixed Mac friends handling.
  • Proper importing of files for Mac.
  • Proper reading for amuleweb config on Mac.
  • Made default Incoming folder for Mac to "~/Documents/aMule Downloads"

- Windows Specific -

  • Fixed a lot of compilation problems.
  • Use proper wxLog class to avoid popups on Windows.
  • Remove the usage of chmod on Windows.
  • Fixed the systray background on Windows.
  • Fixed systray menu on Windows for proper layout.
  • Fixed DirectoryTreeCtrl on Windows to show all disk drives and folders.


  • Fixed Mac bug: window was a little larger each restart
  • Fixed aMule.tmpl so Safari can work with amuleweb
  • On Mac, enabled Command-clicking in lists to toggle selection
  • Solved the DECLARE_ABSTRACT_CLASS() mystery on wx-2.4.2. Now we can have UDP socks5 with wx-2.4.2.
  • Included CVSDATE with version in amulesig.dat
  • Fixed an endianness bug with webserver
  • Fixed last (I hope!) endianness bug with IPFilter
  • Fixed a major endianness bug with widespread effects. On Mac, servers don't fail continuously until eventually removed from the list; server pings work. Global search seems to work better. DNS lookup of servers and ED2K link sources should now work.
  • Enabled support for ed2k links in web browsers for Mac (although idiosyncracies of common browsers prevent it from being as transparent as one would like).


  • aMule remote gui implementation
  • Support for categories in webserver
  • EC additions
  • RLE encoder for shared files


  • Fix for FreeBSD 5.4-PRERELEASE


  • Patch to include CVS date in about box.


  • Fixed crash in CClientReqSocket::ProcessExtPacket() processing of OP_COMPRESSEDPART.
  • More UNICODE fixes.
  • Fixed WX_SYSTRAY compilation on wx-2.4.2.
  • More proxy updates, we are getting there.
  • Small UI bug: double click on a server did not change the "Connect" button to "Cancel".
  • Changed some deprecated IsKindOf(CLASSINFO()) to wxDynamicCast().
  • Fixed crash in CUpDownClient::SendFileRequest(), short circuit evaluation was reversed.
  • Created Proxy dialog on preferences.
  • Updated muuli.wdr for wxDesigner version 2.11 -- no more manual patching for wxFIXED_MINSIZE required.
  • Fix for rommel's report of IP filter problem.
  • No more IsKindOf(), all replaced by dynamic_cast<>().
  • No more wxDynamicCast(), all replaced by dynamic_cast<>().
  • Fixed multiple instances of event handlers in CClientReqSocketHandler and CServerSocketHandler.
  • In StateMachine.cpp, m_state is now private and state machine code is now thread safe.
  • Added base64 encoding/decoding support to aMule.
  • SOCKS5 and SOCKS4 proxy support is working now.
  • HTTP proxy support is working now.
  • Changed the output of the "Oops" to give better instructions to the user.
  • Fixed a bug in proxy code that was making gui too slow. Code was performing unnecessary DNS.
  • Applied patch from volpol to fix use of deprecated functions in wxGTK-2.5.3.
  • Applied patch from geeko to complete html functionality of cas.
  • Fixed a big bug in proxy code. Sockets were not continuing conversation after connecting to sources.
  • Fixed a crash due to an unicode issue while logging.
  • Show some activity upon destruction of the DownloadQueue.
  • Preparing the field to bind to a fixed interface.
  • Sanity checks on socket creation.
  • Fixed the backtrace message.
  • Added a static text to Preferences->Connection->Client TCP port to show the value of the client UDP port.
  • Fixed a crash on webserver, all return values of SendRecvMsg_v2 must be checked for NULL return value.
  • Fixed an uncountable number of potential segfaults on amuleweb because almost no return value of GetTagByIndex and GetTagByName were beeing checked for NULL.
  • Fixed the following bug in the search dialog window: if you typed a letter by mistake or if you use the down arrow from 1 to 0, both actions on a wxSpinCtrl, aMule would crash.
  • Fixed the GetTagByIndex and GetTagByName segfaults in amulecmd.
  • Fixed a problem with saving the preferences, that in some situations would not be saved.
  • Fixed an assert when loading skins, the count number was one unit too high.
  • Fixed amuleweb template processing, Clear Completed button on transfer link was not showing.
  • Fixed amuleweb template processing, Reload List button was not beeing translated.
  • Small adjusts to ObsessionAl patch to include CVS date in about box.
  • Fixed a bug in UTF82unicode(), reported by Mr Faber.
  • Got rid of sscanf in NetworkFunctions.h. This has caused a crash once, reported by Mr Faber.
  • Fixed a lock with high CPU usage when crashing in amuled, because wxExecute() could be called from the FatalErrorHandler() not from the main thread, which is currently prohibited in wxWidgets.
  • Fixed preview with mplayer or any other app that needs stdout/stderr.
  • Fixed lots of segfaults in amuleweb, thanks to alandar and Mr Faber.
  • Updated proxy debug code to use new logger.
  • Fixed a subtle bug in UINICODE builds. Now UTF-8 enabled UNICODE builds can read extended ANSI file names. In particular, UTF-8 UNICODE aMule build was not remembering an extended ANSI directory name for a shared directory.
  • Added a spec file to the CVS tarball. Now users can do rpmbuild -ta aMule-CVS-20050309.tar.bz2 and generate rpms for the tarball of the same day.
  • Fixed a bug in the spec file. The testing was beeing done with files from amule-dev-cvs, but CVS snapshots tarballs are done in amule-cvs directory.
  • Implemented changes suggested by bootstrap in aMule-CVS.spec, merged all the packages in a single rpm, changed the packager to "The aMule Team" and updated %BuildPreReq.
  • Fixed a crash in ListenSocket.cpp when a client could disconnect suddenly.
  • Spec file does not need, as noticed by GonoszTopi.
  • Removed krb5-libs require and krb5-devel buildprereq. curl-lib and curl-devel is enough.
  • Fixed an assertion in CFile.cpp, when browsing broken symbolic links. Now aMule is aware of them.
  • Added a test to the spec file to discover UTF-8 enbled LANG, so that we build the rpm with --enable-utf8-systray.
  • Removed curl dependencies from spec file, aMule now uses wxHTTP.


  • Work on the Man-Pages
  • Minor compile fixes
  • Lots of support and testing


  • Compilation fix for STL enabled wxWidgets.


  • Patch to fix use of deprecated functions in wxGTK-2.5.3.


  • Initial and further work on aMule and utils' man pages.


  • Improved logging for CFile, getting rid of the annoying pop-up windows which were previously displayed.
  • Workaround for fonts getting changed on the log-view when the clear-button was pressed (wxMac specific).
  • Work on getting aMule ready for win32, including fixing the custom-drawing for listctrls.
  • Fixed threading issues with the UDP-sockets in daemon-mode, which were the cause of a number of crashes.
  • Made the preferences dialog modal to fix problems where it would be displayed at bad locations.
  • Ensured that the Banned-Count would be initialized to zero rather than display a random value until it gets properly set (not yet implemented).
  • Improved the "aMule has crashed" message, adding some more information and fixed the backtrace to skip unneeded frames properly.
  • Fixed some static text-ctrls not properly expanding, so that some text would be cut off the end.
  • Fixed some position bugs in the progress-bar drawing and addeed a black border. A4AF sources now displays that text instead of an empty area.
  • Moved the placement of the "Initializing aMule" message on startup so that --version will only result in the version information and ensured that amule wont start in case an invalid commands was given, instead printing the help info.
  • Fixed problems with selection on the clients-list.
  • Improved usage of compressed packets. Now only files that are not in the list of known archive-formats are compressed, rather than just Zip, Rar and Ace.
  • Improved error-handling when opening ports. If either the EC or Server-UDP ports conflict with the other ports, then a random safe value is selected in the range 1025 ... 2^16-1.
  • Fixed shared files being located twice during startup, which also resulted in the AICH thread being run twice.
  • Fixed logging to stdout containing extra newlines.
  • Cleaned up and merged a number of split translated strings, which should make it easier for translaters to work.
  • Fixed some status changes not resulting in removal from or addition to filtered download categories.
  • Improved handling of multi-line log events on the main dialog.
  • Reduced the ammount of output to the console, changing printfs to either normal or debug log events.
  • Escape-codes in ED2k links are now properly unescaped.
  • Cleaned up and improved the readability of the clients-details dialog.
  • Updated the modified listctrl widget used by aMule, so that wxWidgets 2.4.x and 2.5.x will use a modified version from that branch rather than a more generic hacked version. For one thing, the headers are now drawn using the current GTK theme.
  • Properly handle rehashing of empty part-files.
  • Changed the "Filter Bad IPs" option to "Filter LAN IPs". Invalid IPs will always be filtered, but LAN IPs will now only be filtered if the option is enabled.
  • Added back-traces to asserts, in order to help debugging efforts.
  • Made usage of wxASSERT thread-safe.
  • Attempted to fix some longstanding problems with the notebooks.
  • Removed unused files: Preview.h and Preview.cpp
  • Updated, cleaned and unified license-headers for all aMule related source files.
  • Improved the error-message displayed when a server couldn't be added, so that it is clear as to why it couldn't be added.
  • Avoid flooding the console when searching for filetypes, mismatches are now logged as debugloglines instead.
  • The "Clear" button on the search page now also clears the search text.
  • Better handling of multi-line chat messages: The complete message will be split by linebreaks and each line timestamped.
  • Fixed entries for connected servers in server-list not being completly reverted to normal after disconnection.
  • Added handling of SIGINT and SIGTERM for gracefull shutdowns.
  • Renamed the config file from ~/.eMule to ~/.aMule/amule.conf. The old file will not be removed, in order to allow backwards compatibility.
  • aMule now automatically removes unavailable files from the list of shared files.
  • Fixed right-clicking not selecting the tab being clicked on.
  • Fixed casts to pointers of higher alignment where it could cause allignment crashes on SPARC, created general function for doing this safely both SPARC and non-SPARC machinces.
  • Added a typesafe replacement for printf, designed with inspiration from the format class in the boost library.
  • Improved logging capabilities. It is now possible to enable/disable debugging output by category. All existing debug calls where changed to support this. This can be controlled in the preference dialog.
  • Fixed some problems with the connect dialog for remote gui.
  • Some pass-by-value fixes.
  • Moving de-initialization code from the CamuleApp destructor to OnExit. This insures that the app-object would be valid while the shutdown is in progress.
  • Moved deinialization code from OnRun in amuled to OnExit in order to ensure that it was also run on premature exits.
  • Made safe connection-rate calculations the default behavior, which should help avoid too fast connections.
  • Add class for keeping track of unusable sources, based on the same class in eMule. This should reduce the ammounts of connections made since bad sources are not re-asked too often.
  • Fixed servers with IP being added to serverlist.
  • Fix to IP-range parser in CIPFilter. Incorrect range in the form "a.b.c.d-e.f.g." would not be caught.
  • Misc cleanups in CServerList.
  • Fixed creation of online-sig files.
  • Made DownloadQueue and ServerList observables.
  • Added a Observer/Observable implementation. This was needed to implement a queue that would be kept in sync with another queue thus allowing thread-safe delayed iteration over a list.
  • Fixed crash in search-list, where the search-packet would be deleted twice.
  • Removed the usage of "ED2KServers" file, as the download-queue now takes care of handling all types of ed2k-links.
  • Rewrote 'ed2k' utility in c++ and fixed support for extra information appended to ed2k links.
  • Merged IP-check functions and moved it to NetworkFunctions.*.
  • Fixed usage of uninitialized variables in CPartFile constructor.
  • Removing unsused functions from CServerList.
  • Removed unused CArray.h file.
  • Fixed pontial wrong tag-count in server.met writing, which would result in a corrupt file.
  • Disabled connection-try code, due to inherent problems with it.
  • Reworked the CDownloadQueue class.
  • Fixed creation of ED2K links for servers.
  • Removed the need for seperate AICH hashings of completing files. Instead both AICH hashsets and MD4 hashes are created during completion, and the AICH is simply discarded if corruptions are found. This however is rare, and thus doing both at the same time results in less time spent hashing.
  • Improved upon the "requested file not found" log-message, which would happen when a client requested the hashset for an unknown file.
  • Reworked the checks for free disk-space, should behave much more consistantly now.
  • Fixed files being hashed twice, once when completed and again after aMule had been restarted.
  • Make use of native GTK2 popup menu for text-ctrls when possible.
  • Disabled aMule on systems where wxGTK is older than version 2.5.1 and is compiled against GTK2. The big honking warning in the log proved to be useless, but this should work ...
  • Added helper-function to of.h for removing values from a stl-list.
  • Fixed usage of windows font-type "Arial" in statistics-dialog.
  • Fixed logging of filtered IPs. Only 2 of four cases were logged.
  • Disallow External Connections if no valid password has been set.
  • Fixed both sources and files getting shown for the file-count in the transfer dialog.
  • Added date to version-information for CVS snapshots.
  • Reworked CBarShader, making it use the CRangeMap class and getting rid of needless floating-point math. This fixes some problems where large chunks would be drawn as complete, even though only a small part of the file was complete.
  • Fixed downloads being assigned to the default category despite the extended options being disabled in search dialog.
  • Moved overhead calculations to the CStatistics class.
  • Removed enabling/disabling of the clear-downloads buttons. The checks touched far too much code without adding much.
  • Moved StripInvalidFilenameChars from CamuleApp to StringFunctions and renamed it to CleanupFilename.
  • Fixed pending file-blocks not being properly removed when client-objects were destroyed, resulting in parts of files that could not be downloaded until aMule had been restarted.
  • Fixed re-filtering of sources when IP-filter level had been changed in the preferences.
  • Reworked CIPFilter class:
    • Huge improvements in loading-speeds (~6x).
    • Added support for loading zipped files.
    • Switched to using the CRangeMap class.
  • Added CRangeMap class, which is a map with two keys, an start and an end key, with a single value attached. This was previously duplicated serveral places.
  • Fixed problems with deleting multiple items on serverlist.
  • Misc code-cleanups.
  • Added the ability to delete servers using the delete-key.
  • Fixed sorting by the "Transfered down" field on client-list.
  • Added ruby-script for detecting common issues.
  • More work on properly marking getter function const.
  • Reworked the CDownloadListCtrl class.
  • Added overloaded versions of CmpAny functions for strings.
  • Reduced memory usage of IP-ranges in CIPfiler by removing redundant information.
  • Fixed extremly non-optimal function in CDownloadQueue which was used many places. Could locate item in vector through counting of iterator increments.
  • Fixed pre-shutdown message to something more closely reflecting the actual events taking place.
  • Collected common "Data To Human-Readable" functions in file-set.
  • Reworked the ED2K-link classes.
  • Reworked handling of ED2K links, making behavior consistant everywhere and fixing support for |serverlist| URLs.
  • Changed time-span of overhead calculations from 5s to 15s.
  • Removed redundant message displayed when files were added to a non-connected mule.
  • Added missing Add-Overhead calls for various packets.
  • Fixed a mem-leak in CFileDataIO::WriteString.
  • Fixed compilation of Proxy with wxGTK-2.4.2.
  • Changed default configure options. Now only 'amule' and 'ed2k' are compiled by default, since other apps require extra dependancies.


  • id2ip awk script (with Jacobo221)

Special Thanks To:

  • Translators:
Very, very special thanks to all of them, since they
 translated the whole app in just _one_ week!
Ateo: (US english / en_US)
Ateo: (Spanish / es_ES)
gaspojo: (Portuguese / pt_PT)
guest: (German / de_DE)
GhePeU: (Italian / it_IT)
Gusar: (Slovenian / sl_SL)
ilbuio: (Italian / it_IT)
KamiKazeNH: (Brazilian / pt_BR)
nbfnw: (Chinese / zh_CN)
Ogon: (Polish / po_PO)
piarres: (Basque / es_EU)
shafff: (Russian / ru_RU)
supersnail (Dutch / nl_NL)
thedude0001: (German / de_DE)
toshi: (Russian / ru_RU)
  • Contributors:
  • Bug and feature reporters:
Mr Faber
  • eMule developers for their support and friendship. Long life to *Mule
  • MindForge & Freenode irc admins
  • People at #wxwidgets on freenode.
  • Everyone at:
  • All aMule users!!!

Welcome our new aMule team members: blerfont, m2kio, skolnick, thedude0001 & thorero