Changelog 2.0.0-rc4

From AMule Project FAQ
Jump to: navigation, search

Version 2.0.0rc4 ~The 'Mules and rabbits like apples too' version~



* Patch to show extra QR info
* Patch to colorize the download list


* Fixed includes for Win32 compilation
* Cleaning of unused variables on Win32
* Fixed compilation on Win32


* Lots of unicode slave work ;)


* Fixed OpenBSD compilation


* Added websearch function (
* Added as Fake-check URL
* New buttons added:
- reload sharedfiles
- switch upload/uploadqueue
- clear completed files
* Added 3 new columns in upload window (Client Software , Upload/Download , Remote Status)
* Added 'Client Software' column in upload-queue window
* "Asked for another file" on sources now with the filename that is asked for ( i.e. A4AF -> xyz.avi)
* Added 'copy file feedback to clipboard' function
* Added new Toolbar icons [ thx again to ;) ]
* Added icons in Preferences
* Download menu changed
* Work on skin support


* Typo fix: bandwith to bandwidth

hellimod, one_2_one:

* MacOSX support


* Fixed unicode issues on SysTray.cpp, now apps is really unicoded!
* Deleted separated i18n stuff from SysTray, now uses global one
* Fixed 2 memory leaks in SysTray
* Updated italian and napoletanean translations
* Fixed unicode issues in serverlist updates and download tab
* Fixed unicode issues that stopped adding files to download from ed2k utility and internal link handler


* New feature to open webpages in new tab instead of new window
* Fixed a compatibility bug in OnlineSig with eMule's and added connecting support
* Fixed bug in Statistics limits in Preferences
* Fixed bug in Upload/UpQueue button
* Fixed SERV.4 bug
* Fixed DISP.14 bug
* Added DOS compatibility into CAS and update onlinesig support
* Several features in XAS (see XAS's changelog)


* Fixed wxWidgets 2.5.x socket code. aMule now works on wx2.5.1 perfectly, wx2.5.2 introduces some GUI bugs.
* Rewrote Preferences engine to be much nicer, and Mac compatible :) Thanks to deltaHF for the new icons.
* Wrong .part.met files no longer make aMule abort on startup. Now a warning is displayed on log and aMule ignores that file.
* Added the new compatible client flags tag agreed with lphant devs and eMule devs. xMule devs refused to use it.
* Overloaded the wxSocketClient::Destroy to a safer version, to check cases when deletion is not called from Destroy()
* Fixed the disconnection of clients that have MS_CHATTING state.
* Fixed the usage of QueueLogLine fucntion to avoid crashed on too fast computers ;)
* Remove spaces from search string start and end.
* Remove spaces from ed2k links start and end.
* Fixed a mem corruption due to lphant icon size (we all know lphants are big)
* Splitted internal core and GUI events
* Socket events mover to core
* Timer got separated into core_timer and gui_timer, each one with the matching functions.
* Fixed UDP socket handler being... the TCP handler. Since lmule times.
* Delayed deletion of sockets to avoid async deletion issues that happens when Destroy() is called on a event
* Fixed several rare crashes happening on some fast computers on shutdown aMule.
* Added a debug function to get track of double-deletion of clients.
* Socket handlers now stop notifying new events when Safe_Delete() is called.
* m_pszUsername inited before a new call to handle 'new' exceptions correctly.
* Added a hack on IsRunning() to check for current app object not existing yet (or deleted on shutdown)
* Fixed all icons to be 16x16 to avoid asserts on 2.5.x for unmatching wxImageList sizes.
* Fixed all wxImageList sizes to avoid asserts on 2.5.x on object construction.
* KnownFileList takes account of the duplicates now, so those are not rehashed each time anymore.
* Fixed EC password not being shadowed on preferences.
* The preferences dialog should be resizable now.
* Updated lphant stats to show the version as they added the extended version tag.
* Fixed 1 double-delete on ListenSocket, when socket is not connected.
* Each socket has its own handler now. Much safer and faster.
* Fixed hashing thread implementation to make it shutdown safely.
* Fixes on geometry handling to make it work properly from commandline.
* Fixed minimize to tray to work properly with no more double-minimizes.
* Coded the skeleton of the core/gui separation event system, improved by lfroen later.
* Fixed CString implementation for operator '+'
* No linking cas, wxcas and ed2k against crypto, please :) Fixed.
* Lots of speedups on ClientUDPSocket handling, someone went paranoid and added lot of redundant code.
* Changed most of the wxT("") to wxEmptyString
* Fixed the splitter position and client size on restart.
* Fixed compilation on wxWidgets CVS
* Fixed amuledlg not being set to null + moved the init to beginning on amule.cpp
* Fixes mem corruption and crash on PrefsUnifiedDlg
* Fixed missuse of inet_addr on BaseClient.
* Fixed crash on stats disabled
* Reduced memory usage with a centralised icon handling.
* Fixed wrong var type on EMSocket.h causing mem waste.
* Fixed bug on SetFileSize (thanks to Pichuein on eMule forums)
* wxWidgets 2.5 compatible CDirectoryTreeCtrl.
Also made the icon red if the folder is shared.
* ModString fixed - Now mods identify themselves correctly.
* As xMule now identifies as eMule 0.0a, added xMule detection based on username and modstring to keep stats coherent.
* On debug builds, client stats now show the amount of clients with open socket.
* Changed theApp.glob_prefs->GetAppDir() to theApp.ConfigDir for speed improvements.
* Fixed crash on empty shareddir.dat
* Fixed listen socket being processed before created on fast computers and thus causing crashes on startup.
* Fixed server version tag.
* Added frame name to the aMule main window to be handled correctly by X server
* Fixed a crash on log file re-creating on startup.
* Fixed the update of the categories tab names to show the file count and the downloading files.
* Fixed the update of the categories tab names tp happen only when needed to save cpu.
* Changed several vars and functions to const for speed improvements.
* Enter button working now for web search.
* Added a check to disconnect clients sending non-hello packets before finishing handshake.
* Added preferences items for the upcoming Skin engine.
* Fix from lugdunum to avoid blacklisting on servers because of key repeat on pressing enter for search :)
* Use generic BSD wx preprocessor define to make aMule FreeBSD and OpenBSD compatible.
* Fixed Incoming folder not being shared on strange situations.
* Fixed usage of '/' instead of '\' on Win32 builds.
* Made file comparison case-insensitive on Win32.
* Better fitting of notebooks
* Fixed shared files reloading to stop being dependant of buttons/labels
* Socket handling now deletes the client if connection fails ;)
* Fixed some wxSizer usage causing compilation compatibility problems between wx 2.4.2 and 2.5.x
* aMule now filter bad ips on source seeds.
* Autoconnect and onlinesig are now on by default.
* Added a check on graphic stats drawing to avoid crashes if no DC is created yet.
* aMule now uses crypto++ for MD4 calculation (faster, and endian safe)
* Added two sanity checks for source drawn with no reqfile associated, avoiding crashes.
* Fixed mem corruption and possible memleaks and crashes on file comments received.
* Fixed a BAD and UGLY and EVIL mem corruption happening since more than a year ago and still present on the original program (xMule).
* Client sending wrong OP_FILEREQUEST packets are now disconnected to avoid further problems caused by their corrupted packets.
Old shareazas and most xMule versions have been warned since 2004/04/13 from aMule and since much more time ago from eMule.
Shareaza fixed it, but xMule refuses to fix it. eMule 0.43x disconnects them too now.
* Fixed crashes on sockets because of packet overhead being calculated after packet was deleted.
* Fixed the CVS mod reporting for aMule 2.x
* Fixed the Online Signature dir selection.
* Fixed some shared files not being shared due to a return; on a wrong place ;)
* Fixed some events being posted to wrong event handler.
* Added GUIEvents.h to take care of the core/gui separation events.
* Cleaned ColorFrameCtrl class
* Cleaned otherfunctions.*
* Lots of misc code cleaning
* Several minor messages and GUI bugs.
* Several warnings removed.
* Removed useless files:
------------ MAC -------------
* Fixed compilation on wxMac CVS and 2.5.x
* Fixed socket connection on Mac.
* Fixed endian issues causing crashes on server communication.
* Fixed string tags being read wrong.
* Fixed known.met being corrupted on every save and reload.
* Fixed stats not working on Mac (no longer crashes because of drawing)
* Fixed mnemonics on file search not being endian-safe.
* Fixed server TCP flags.
* Fiexd bug on lowid callback.
* Fixed serverlist on Mac:
- Server users
- Server files
- Server ip being reversed on restart
- Server port set to 0 on restart.
-------- UNICODE ---------
* Fixed unicode compilation of most files (except those by Citroklar, Hetfield, and shakraw)
* Fixed search on unicode builds.
* Unicoded most of the app internals :)
* Fixed part.met on unicode builds
* Hunted and killed (char*) casts and c_str() calls.
* Fix unicode client names and misc.
* Percentage & Download speed fixed
* Reported several bugs to wxDesigner's mantainer to make it work properly on unicode builds
* Fix usage of st_mtime to allow files with non-std chars to be shared without crashes on wx2.5.1
* Fixed PerformFileComplete to allow unicoded files to be finished :)
* Fixed part met filename being 001.part everytime on unicode builds.
* Fixed renaming on file completion causing crashes on unicode builds


* Started to implement various changes needed to split the core and GUI.


* Fixed preferences layout of panels.
* Minor positioning/layouting fix.
* Simpler ed2k link integration for Mozilla 1.3+ / FireFox 0.6+ - Using Mozex plugin


* Added support for memory usage and binary name (on xas)


* Code cleaning in several modules due to making the members size, opcode and prot private in packets.h.
* CFile Close(), Read() and Seek() made const. Seek() needed the use of mutable with m_fd to be const.
* Put lots of consts around the code in the routines that should be so.
* Patch to --enable-stdin to aid in debug with valgrind.
* Code cleaning in module Packets, made a lot of stuff private now.
* Small hacks to print debug messages and avoid crashes, mainly in PartFile.cpp.
* Sanity checks in debug mode (MagicNumbers) to aid finding bogus clients and files.
* Created debugstuff module, debug build only.
* New configure option --enale-verbose, so that normal users are not flooded with debug messages.
* MagicNumbers are swapped to signal deleted source/PartFile.
* Removed deprecated wxArrayString::Remove(size_t nIndex, size_t nRemove = 1) using wxArrayString::RemoveAt(size_t nIndex, size_t nRemove = 1) now.
* Get rid of evil wxString::GetWriteBuff() and wxString::UngetWriteBuf() in ECSocket.h.
* Added -pw/--password command line option to amuleweb.
* Small unicode fixes.
* Fixed a messed up display in html code in aMule.tmpl (thanks to steve.reaver)
* Fixed font problem after Xaignar's great flicker free work in download list control.
* Fixed broken sort arrow after flicker free clean up.
* Enabled mouse wheel scrolling in all aMule list controls.
* Fixed two unhandled events in amule.cpp: CHAT_REFRESH_FRIEND and CHAT_FIND_FRIEND.
* Fixed compilation in 2.5.x and some unicode issues in aLinkCreator. Using wxAppConsole when wx > 2.5.0.
* Fixed compilation and linking in 2.5.x for amuleweb. Now uses wxAppConsole when wx > 2.5.0.
* Added a test for the return value of theApp.serverlist->GetServerByAddress(), which could be NULL.
This was the reason why aMule was crashing when trying to connect to server with wxWidgets-2.5.2.
* Fixed compilation and linking in 2.5.x for amulecmd. Same problem as amuleweb.
* Commited a patch from wolti that fixes compilation on sparc/Solaris systems.
* More sparc compilation fixes, thanks to wimms.
* Removed the declaration of void ParseCommandLine(); from TextClient.h and WebInterface.h. It seems to have been forgotten here.
* Patch to listctrl.cpp, was segfaulting in 2.5.1 when hiding/resizing columns. In 2.4.2 was just asserting.
* Patch to Partfile.cpp, workaround the socket == NULL bug, so that amule does not crash.


* Fixed the "remote connect" bug
* Unicode support for amuleweb
* Fixed typos on amuleDlg
* Unicoded some files.


* Fixed a messed up display in html code in aMule.tmpl


* wxCas:
- Fixed for amulesig.dat changes
- Solved localized decimal separator pb
- Embeded all pixmaps in src files and remove now unused pixmaps dir (better for portability)
- Win32 toolbar pixmaps have transparency now
- Added variable refresh timers
- Added user preference system
- Added statistic image creation
- Added FTP support for an automatic upload of the statistic image
* aLinkCreator:
- Added this new maaarvellous tool suggested by DeltaHF to compute ed2k links from a file (same behavior as eMule link creator, but no shared code)
- Rewrote md4hash and ed2khash code to avoid external dependencies (libcryptopp free), and to be Big Endian proof (works on Mac afaik)
- Added alcc, the "alc for console" command line client
- Added toolbar themes (KDE and DeltaHF's default for now)
- Thanks to Phoenix (Unicode, Hook, commandline...) and one_2_one (Mac tests)
* aMule:
- Rewrote tree to fit to GNU standards
- Removed Makefiles stuff for wxwidgets < 2.2.6
- With >= wx-2.5, use wx-config --libs=base,net instead wxbase-config (because base in buggy on 2.5), and keep using both on 2.4 versions
- Check for wx >= 2.4.2 instead of 2.4.0
- Removed GTK2 warning with wx >= 2.5
- Fixed GTK2 not detected
- Enabled documentation installation
- Install xas in $(libdir)/xchat/plugins. Will work if aMule and xchat are installed with same DESTDIR
- Suppressed widlcats in makefile (not fully supported in all make)
- Enabled make dist and make distcheck targets
- Force automake scripts update (missing...) to suppress warning in configure
- Force to regenerate intl at each call to keep sychronised with system gettext templates
- Some minor i18n and unicode fixes
- Updated
- Removed Win32 stuff from autotools scripts
- Added static MakefileWIN32 for win32 compilation


* Cache get_path homedir to speed up multiple calls
* Removed unused Tag_Struct
* Fixed var init and memleak in SearchList
* Fixed COMP.10 bug
* Wiped out USE_DEBUG_SYMS


* More sparc compilation fixes.


* Patch that fixes compilation on sparc/Solaris systems.


* Merged lists used to identify file-types to avoid duplicity.
* Added wrapper-class around MD4 hashes.
* Fixed a number of places where the hashes where used as NULL-terminated strings, despite them not having a NULL-terminator.
* Most functions using hashes now use the MD4 wrapper class for arguments.
* Fixed rare possibility of ending with an unclosed file in CServerListCtrl.
* Fixed unsafe parsing of OP_SERVERIDENT type packets.
* Fixed unsafe passing of strings as arguments to functions using format-strings.
* Changed the chat-dialogs to textctrls, which means that it is now possible to copy text (the unix way) by highlighting it.
* Fixed some memleaks.
* Fixed "&"s not being escaped on status-bar.
* Fixed incorrect source exchange packet format (Many thanks to the eMule Plus team for reporting).
* Started to document source-files with a Doxygen compatible comment format.
* Fixed the height of the barshaders used on the download list, it was 2 pixels too high, resulting in a slight cutoff.
* Reducing CPU-usage of auto-priority by not forcing a redraw every time the priority was automatically changed.
* Fixed that some overloaded functions hadn't been declared virtual in the base class.
* Replaced gif-animation widget with something more lightweight.
* Added sainity checks to CMemFile::Read.
* Fixed a number of uninitialized variables.
* Fixed several warnings about non-existing files.
* Fixes warning about not being able to create dir "" on first run.
* Changed "Extended Drop Sources" preferences, with the result that the option will be reset to "Swap Sources" when this version of aMule is first run.
* Got rid of most warnings when compiling.
* Lots of work on getting rid of c-strings.
* Fixed bug that would cause deleted sources not to be removed from the A4AF lists. This was a major source of crashes.
* Improved performance and safety of the source lists used with PartFiles.
* Lots of small imports from eMule.
* Made reqfile attribute of CUpDownClient private and added wrapper functions to fix the avilable-part information getting out of sync.
* Cleanup of includes.
* Fixed that we were always sending an OP_REASKACK packet and then the correct packet when recieving an OP_REASKFILEPING.
* Fixed Bug 45: URLs are now properly escaped when opening browsers for Fake-check and such.
* Fixed Bug 62: aMule will now be brought to front when left-clicking on the tray icon and when it is redisplayed after having been hidden.
* Added checks against aggressive clients (clients who reask for files too often).
* Imported checks for known leech-clients from the BlackRat eMule mod ( Many thanks to Le Rat Noir and inoteb for allowing us to use their work ).
* Fixed wrong initialization of headers for some packets ( Thanks to thomas001 for reporting ).
* Fixed a delete called on an uninitialized pointer in the statistics dialog and properly initalized serveral other pointers.
* Optimizing the Comp(Up/Down)DatarateOverhead functions to something that didn't require traversing a list at each call.
* Complete rework of the source-swapping functions.
* Fixed the possibility of sources being added to multiple source-lists at the same time (No more mis-matching hashes warnings).
* Fixed the new columns added by deltaHF not being displayed and added checks in case the same thing happens again.
* Almost completly eleminated flicker on the download list and did a cleanup of the drawing routines associated the the download list widget.
* Fixed some lists (Server list, maybe others) not being sorted when aMule is started.
* Fix mem-corruption bug in SysTray code if the systray was compiled in but hidden.
* Fixed the problem with deleting the last (connected) server on the server list.
* Removed the following files:
- ini2.*
- CString.h
- mfc.h
- position.h
- resource.h
- strings.en
* Cleaned up the following files:
- CTypedPtrList.h
- BarShader.*
* Many other smaller changes.

Special thanks to:

* Le Rat Noir and Inoteb of the BlackRat eMule mod ( for allowing us to make use of their work on detecting bad clients.
* Optimazer and the eMule Plus team ( for reporting a bug in source-exchange packets.
* thomas001 for reporting a problem with packet headers.
* Everaldo ( & "Jimmac" ( for new icons
* Phk for searching for new icons ;)
* kno and thermoman for their fixes :)
* TheBlackHand and Hawkster eMule mods
* uberpenguin for AMPS :)
* All aMule users, testers & translators
* eMule & wxWidgets devs
* Everyone we forgot here ;)