* Network support
- Added support for eMule search links i.e. ed2k://|search|text_to_find|/
- Fixed error when seeded file uploading via gnutella.
- Fix eD2k download sources not being sorted properly when they update our position in their queue.
- Fix a couple of wrong lengths in download fragment selection.
- Fix too many hits being added to query hit packets. (G2)
- Advertise all available ranges to G1/2 clients. Optimise range string generation.
- Fix gnutella source exchange sending wrongly formatted sources
- Fix reflecting gnutella sources back to client
- Fix for eD2k & HTTP fragmented file assignment for partial file uploads.
- Added own IP address acquiring on every successful incoming and outgoing connect.
- Fixed Shareaza never updating to GWCs with no hosts. (ticket #99)
- Fixed stuck downloads when many seeding torrents presents.
- Relaxed too strict network anti-hammering protection.
- Implemented new UPnP/NAT port mapping method.
- Implemented UPnP runtime controlling (it restores changed port mappings).
- Added periodic refresh of UPnP port mappings (default 30 minutes, new option "Connection.UPnPRefreshTime").
- Updated Default services files
- Fixed debug assert when Shareaza tries to upload torrent download to non-BitTorrent client.
- Added support for uTorrent Peer Exchange UT PEX. (ivan386) (BitTorrent)
- Added support for tracker exchange ("lt_tex"). (BitTorrent)
- Changed Hub-rating calculation (added free memory bonus, 64-bit bonus, halfed multi-processor bonus).
- Fixed wrong sending of HAW packet on connecting. (G2)
- Added protection against query hammering.
- Added G2_PACKET_RETRY_AFTER-part to query ack packets.
- General.MinTransfersRest option defaulted to 50 ms and enforced.
- Deprecated Bandwidth.HubUploads option, now Hub upload limit set to 50% (when Uploads.HubUnshare option is on).
- Fixed bug that caused some Hubs to not to accept leaf connections and therefore stay at 0 leaves all the time. (So-called 0-leaf bug; ticket #127)
- Fixed false positive torrent encoding error.
- Fixed packet parsing in CChatSession. (G2)
* DC++ support
- Implemented limited DC++ support. It can/has:
> Connect to DC++ Hubs in active mode
> Show all commands in system log
> Search for files on Hub
> Answer on incoming searches
> Upload Library files
> Upload Library file list (files.xml.bz2)
> Mount file lists as Library collections.
> Log DC++ UDP packets
> Support for DC++ redirection command ($ForceMove)
> Support for DC++ user bad name command ($ValidateDenide)
> Some support for the DC++ password command ($GetPass)
> Support of DC++ "$ADCGET list" command
> Support for download and upload queues
> Experimental support for overlapped upload requests
> Import "hublist.xml.bz2" files by dropping it to Shareaza or opening them via the Host Cache.
> DC++ URL support
- Created "dcfile://" URL handler. Its new nonstandard URL type defines direct DC++ download. Format: "dcfile://HubIP:HubPort/User/TTH:FileTigerTreeRootHash/FileSize/".
- Added "DC++" to vendors cache.
* Crash fixes
- Fixed crash caused by bad Italian translation.
- Fixed tray popup crash.
- Fixed crash when bad data found in crash log.
- Fixed Shareaza crash during playing of damaged video.
- Fixed crash during .mp3 ID3 tag parsing with invalid Genre field.
- Fixed crash caused by bad BitTorrent packet.
- Fixed rare crash when user quickly selects views of Library.
- Fixed scheduler crash when "hang-up connection" task found more than one Internet connection.
- Fixed rare crash when library remotely browsed and updated at same time.
- Added workaround for plugin crash on Shareaza exit.
- Workaround for download preview crash on cancel.
- Fixed incoming browse request crash when some Library files were deleted outside Shareaza before that.
* Internal and functional changes
- Added /RegServerPerUser and /UnRegServerPerUser command line switches.
- Better handling of unsupported codecs in Shareaza Media Player plugin.
- Optimized library search by hash.
- Added more strict file equality comparison by hash, size and name.
- Fixed a bug that made the job times change within the scheduler if the computer was turned on later than the time at which a specific task had been scheduled.
- Improved GFLReader plugin's image loading process.
- Added faster and more robust way of closing Shareaza during hashing process.
- Added more protection against downloads overload (too many sources, bad settings etc.).
- Enhanced Scheduler shut-down mechanism.
- Added dropped UDP packets debug logging.
- Added new option "Connection.IgnoreOwnUDP" to ignore own datagrams (helps debugging).
- Optimized compressing and decompressing of memory blocks.
- Optimized SQLite interfaces.
- Renamed "Gnutella2.QueryHostThrottle" option to "Gnutella2.QueryThrottle", "eDonkey.QueryServerThrottle" to "eDonkey.QueryThrottle". Removed "Gnutella1.RequeryDelay" option.
- Changed "Connection.EnableUPnP" option default to "true".
- Optimized Security object.
- Updated VirusTotal plugin, uses new www.virustotal.com API compatible with any browser.
- Added using of delay loaded DLLs.
- Added ogv, webm, oga to audio/video schemas
- Added low I/O priority for some file operations (Transfers, Library Builder, Download Tasks) under Vista and above.
- Optimized download previews.
- Fixed invalid metadata extraction when .mp3-file has empty IDv2.
- Fixed XML parsing for Bitzi. Library.PreferAPETags option deprecated.
- Fixed DocumentReader and RatDVDPlugin plugins. Enforced XML checks.
- Optimized internal metadata builder. Library.ScanMPC option deprecated.
- Added skin images caching (now less memory used).
- Reduced Shareaza start-up time (postponed all starting threads).
- Did some updates to the media player
- Updated default security file (removed .wmv/.wma and private net)
- Updated GeoIP database
- Updated SQlite 3.5.8 -> 3.7.4
- Updated BZip 1.0.5 -> 1.0.6
- Updated Zlib 1.2.3 -> 1.2.5
* Graphical / GUI changes
- Fixed Smart Download Preview window which did not close automatically or got stuck sometimes
- Fixed cut lines in IRC Chat Window.
- Fixed IRC window updates when Apply button pressed in Settings dialog.
- Changed option "Settings.IRC.Timestamp" to "on" by default.
- Fixed library files 48x48 icons loading.
- Improved MediaPlayer recovery after codec crash.
- Fix completed downloads being filtered from download control, optimised filtering
- Made hash progress window flexible.
- Changed the way download sources are coloured (colours generated randomly).
- Added interface elements for DC++.
- Added new GUI behavior: "Library" button now switches views between "Folders" and "Organizer" starting from second click.
- Library views now remembers its selected folders.
- Updated Flags. Added country flags to Host Cache window. Fixed bad sized protocol icons of Neighbours Window.
- Patch to show source counts by real source count + alternate source counts in the search results.
- Library now has initial selections as Default Download folder for Folders view and Favorites album for Organizer view.
- Added BitTorrent packet dumps.
- Improved packet dumps.
- Updated lots of stuff on the Scheduler.
- Fixed selection of user media players, now an unlimited number of custom players is supported.
- Unified file execution process, enforced its security, added "too many files" confirmation (for Play Album button).
- Added automatic detection of media players (AIMP2, GOM Player, MPlayer, SMPlayer, etc.).
- Relaxed reaction on skin load error, now in most cases Shareaza agreed to load incomplete skin. Added more skin validation checks.
- Added language file early loading (so command-line options and splash dialog can now be translated too).
- Added Shareaza self-restart on language change.
- Added new command-line option "-wait" - Shareaza will wait for another Shareaza instance exit and then continue execution.
- Added command-line transmission from second Shareaza instance to first (to open files without using DDE for example as FireFox does).
- Host (from Host Cache) now can use DNS-name also (was IP address only).
- Added full-screen application detection to prevent hash window show.
- Fixed tooltip flicker effect. Download and Upload tips made more dynamic.
- Added completed download move indicator.
- Added more detailed Gnutella query statistics: old "Gnutella Local Queries" divided by "Gnutella Incoming Queries" (all incoming packets) and "Gnutella Processed Queries" (good and accepted for feature processing packets).
- Added Shareaza logo to background in Window Mode. Removed all default windows in Window Mode.
- Fixed Neighbours window Time column sorting.
- Updated a lot of icons on various places.
- Fixed and optimized remote interface.
- Fixed Skin colour duplicate calculations.
- Fixed missed Library interface updates when file metadata was changed.
- Added "No Banner" skin to setup.
- Fixed Shareaza internal components and associations registration under limited user and administrative accounts. (Now everyone should be able to see and use all plugins again.)
- Added X-Mas skin.
* Updated languages:
- Dutch (roestvrijstaal)
- French (zigozag)
- Russian (raspopov/Ryo-oh-ki)
* And last but not least...
- Fixed lots of minor bugs, made thousands of smaller optimizations ... and got rid of half a million of crashes not named above. Of course, we did also create some new ones, else it wouldn't be fun any more. :)
- Made lots of smaller changes for VS2010 support
- Fixed lots of compiler warnings
- Updated copyright info in some of our files which did still mention shareaza*com.
- Created new SkinUpdate utility. It can test resources for validity, extract string tables from RC-file and save the result as XML-file.