AirDC++ 2.50

This is where we publish all great news

AirDC++ 2.50

Postby maksis » 01 Jun 2013, 20:15

This post will describe some of the changes in version 2.50.

A new tab to display users in all hubs

The favorite user tab has been converted to a new tab that will list all users. The user list can be filtered in various ways and it can also be used in a similar way than the old favorite user tab. The tab will also display bytes queued from each users.

Real-time monitoring for share changes

AirDC++ 2.50 is able to monitor shared folders for new, modified, deleted and renamed files and folders. This feature can be used to replace scheduled file list refreshes. The client is also able to scan new directories that are added via monitoring for missing/extra files and not to share failed ones.

Note that there are certain limitations when the monitoring can be used. Monitoring notifications may not be received for network folders that aren’t hosted on a Windows computer, which will mostly include NAS devices that are running on an embedded Linux operating system.

Full IPv6 support

AirDC++ 2.50 implements full IPv6 support in version 2.50, which includes separate connection setup and active/passive modes for IPv4 and IPv6. You may also change the IPv4 and IPv6 modes separately on per-favorite hub basis. Version 2.50 supports hybrid IPv4/IPv6 connectivity when it’s supported by the hubsoft, which allows you to use IPv4 and IPv6 simultaneously in a single hub. By default, the IPv6 connectivity will only be enabled when there’s a public IPv6 address available.

New hash database format

Version 2.50 introduces a new database engine for storing the hashed trees and information about the files that have been hashed. The engine that was chosen to be used is LevelDB, that is made by Google and it’s used for example by Google Chrome and Bitcoin.

The new database provides various advantages over the previously-used home-grown solution: the memory usage has been decreased significantly and the client should never freeze when performing database operations.

This also means that the rebuild command is now gone. The old format saved the hash trees in single file one after another in a specific order. This didn’t allow removing files from the existing database, which meant that the rebuild command created a new database file that just didn’t contain the trees that weren’t used anymore. The new version also has a command to remove the unused entries but there is no need to use it unless you have basically reorganized your whole share. The previous versions loaded the information about all unused database entries in memory, but with the new version those won’t affect the memory usage at all.

The client will convert you old hash database when you start the new version for the first time. The conversion will usually take only a few minutes, but it may also take hours for people who have lots of shared files and the client is run from a slow hard disk. It’s recommended to run the client from a SSD drive, as that will also greatly improve the conversion speed (up to 10 times faster conversion than from a HDD).

Improved performance

In addition to decreasing the memory usage by changing the database format, version 2.50 also includes various tweaks in the share handling that will decrease the memory usage even more. This also affects the idle CPU usage (that is caused by matching incoming searches with the share), which should only be a fraction compared to the older versions.

Example cases

Change in idle CPU usage:
From ~30% to 0- 5% with 8 million of shared files

Change in memory usage:
From 5,5 GB to 1,5GB with 5 million of shared files

Change in startup speed:
From 10 minutes to 30 seconds with 5 million of shared files

Logging changes for private messages in ADC hubs

Some users may have found it annoying that the client creates a separate log files, if a single user is using different nicks in different hubs. Version 2.50 will use a single log file by default for each ADC user regardless of the nicks used. The PM log file names now contain the CID of the ADC users, which means that the client won’t use the log files that have been created with older versions unless they contain the CID of the user. NMDC PM logs will use the same naming as before.

Improved directory tree handling in file lists

Version 2.50 will show the expand signs (plus buttons) also in partial lists, just like in full lists. The expand signs are shown when browsing file lists from users using AirDC++ 2.42 or newer. Additionally the new tree control should also speed up loading of full file lists significantly.

No more support for Windows XP/2003

Approximately 10% of all AirDC++ users are currently using Windows XP/2003. The biggest problem for continuing the support for those users is to keep the quality as high as for other operating systems: there are hardly any XP users interested in testing the beta version, which would have made the final version very likely to contain problems that only affect XP users. Dropping the support will also enable using technologies that are only supported by the modern operating systems and and also to improve the general performance.



- Allow the client to monitor shared folders for changes in real time
- New user tab that will display general information about the users in all hubs + total queued files from each user
- New database engine for storing information about hashed files (reduces resource usage and freezes, improves reliability)
- Full IPv6 support in ADC hubs (transfers, port mapping, separate modes for IPv4 and IPv6, hybrid support for both protocols)
- New tree control in file lists: reduces the loading times and shows the expand sign also for incomplete folders (the other user must have version 2.42 or newer)
- New multipage settings wizard with more options
- Allow instant sharing of finished bundles without hashing them
- Replace the search skiplist with a list of excluded words, add also for auto search
- Show dates for all files in partial lists
- Show dates in search
- Any subdirectory can be refreshed from own file list and with the refresh command
- Add a new priority "Paused (forced)": viewtopic.php?t=3738&p=7551#p7551
- Add a column for shared files in the user list (ADC only)
- Allow choosing the preferred port mapping interface
- Check that the bind address is valid when starting the client
- Allow setting a custom away message and email address for favorite hubs
- Allow duplicating auto search items
- Allow using quotation marks in search strings and excluded words for exact matching with strings containing spaces
- Show the progress in percentages on startup/shutdown for selected steps
- Allow opening dupe folders also from the tree in file lists
- Add an option to not to share empty directories
- Use the history also for searches in file lists, save the previous file type
- Allow saving a log file when scanning the share
- Show a warning message when running the client with administrative priviledges (Win 8 only)
- Allow setting minimum file size for dupe check when queuing new items (small dupes are ignored only if all other queued files in the bundle aren't dupes too)
- Save possible errors for auto search items when queueuing new bundles
- Add the type "File" in the file type menu in search to avoid getting directory results
- Add an option for following symlinks for shared files
- Single log per CID for ADC users by default
- Add a menu item for opening the log directory
- Allow choosing the queue removal mode when auto disconnecting downloads
- Add an option for not allowing failover addresses for favorite hubs (hub-specific and global)
- Shift + Return can also be used to create a new line in chat tabs


- Various sharing optimizations (CPU usage and RAM usage have been reduced significantly with large shares, less freezes)
- Change the way how combined nicks and hub names are displayed in ADC hubs
- Don't save various setting files on shutdown if there is nothing new to save
- Count queued file lists in maximum number of sources for matching lists on search results
- Pick the best users for matching bundles if the maximum number of sources has reached (based on the connection speed and free slots)
- Use the matching limit and picking also for new items queued by auto search
- Remove the lists queued for matching when the bundle is removed/finished
- Improve the error reporting when initiating the transfer fails
- Prefer sending passive search replies via the correct hub
- Remove the password length limit for fav hubs
- Performance optimizations when searching ADC hubs
- Change the way of storing history items: option to clear each history on exit and set the maximum limit for each history
- Hash database cleanup will remove entries also for files that have been removed from the share during the current session or that have been moved inside the share
- Improve the error reporting when sending of a main/pm message fails
- Add proper error reporting when queueing of bundle files fails
- Calculate the bundle priorities instantly after they've been loaded on startup
- Don't send a junk TTHs with directory search replies in ADC
- Prevent freezes when selecting a large number of items in user list or file list, or when joining hubs
- Mark the current prio when there are multiple bundles selected in the transfer view / queue tab and they all use the same prio
- Download skiplist is also matched for bundle subdirectories (instead of only file names)
- Validate the TTH before performing a search (manual searches only)
- Don't change finished download connections to disconnected state
- Language files aren't shipped with the client, they are only downloaded when enabled by the user
- Ignoring private messages from a hub doesn't apply to favorite users and operators
- Set the own certificate paths automatically based on the settings dir by default
- Convert shortened magnet links to plain links when copying text from chat


- Fix very poor performance when adding lots of files for hashing (100k+)
- Fix a problem with rebuild not removing all unused entries for hashed files
- Fix port mapping problems when there are multiple networking interfaces available
- Fix problems when connecting NMDC search results to a correct hub
- Fix crashes when sharing subdirs of other shared dirs in different profiles
- The splash screen won't go to "not responding" state on startup/shutdown
- Restore "view as text" in the search tab
- Handle excluded words correctly with incoming ADC searches
- Fix duplicate items in file lists when reloading downloaded directories
- Fix auto search problems when bundles fail scanning
- Set the share skiplist before the startup refresh
- Start listening for connections when using passive mode and setting a favorite hub active
- Transfers with no download slot can now be forced normally
- Fix a bug with directories not being scanned correctly if the group name contained the char _
- Prevent the ADL search XML file being cleared when there is no disk space available to save it
- Prevent infinite requests for a single TTH when the tree can't be added in the database
- Start the client as normal user when launching from the installer
- Don't display join/part messages for hidden users
- Fix possible crashes when auto detecting connection settings
- Avoid possible invalid CRC errors while hashing after an invalid SFV file has been replaced
- Fix total size and total files with own partial list when no hubs are open
- Fix hub encoding in NMDC hubs
- Fix password not being requested in some cases when password protected tray is enabled
- Fix various cases when MCN download connections may have not been created
- Fix language file locations
- Fix ignoring private messages for favorite ADC hubs
- Fix a few ADC vulnerabilities
- Fix a bug that may cause bundles not be loaded on startup


People using AirDC++ 2.40 or newer can upgrade to 2.50 by using the inbuilt update function. New users can download the client from the download page.

Note that the first startup may take a long time, because the client converts your hash database to a new format. AirDC++ 2.50 requires Windows Vista or newer operating system, Windows XP isn't supported anymore.
User avatar
Site Admin
Posts: 829
Joined: 23 Nov 2010, 18:56

Re: AirDC++ 2.50 BETA

Postby Grimu » 22 Jun 2013, 17:58

Is it true that this client doesn't get any search hits in PtokaX hubs?
Posts: 7
Joined: 22 Jun 2013, 17:54

Re: AirDC++ 2.50 BETA

Postby maksis » 22 Jun 2013, 18:16

I tested the latest version with Ptokax and searching seems to work fine. If you are experiencing problems, please create a new topic in the bug report section with more information about the issue.
User avatar
Site Admin
Posts: 829
Joined: 23 Nov 2010, 18:56

Re: AirDC++ 2.50 BETA

Postby maksis » 22 Jun 2013, 21:57

There was a problem with responding to NMDC text searches that weren't all lowercase. This has been fixed in the latest update.
User avatar
Site Admin
Posts: 829
Joined: 23 Nov 2010, 18:56

Re: AirDC++ 2.50

Postby rezzy » 11 Jul 2013, 21:40

May i ask why you seriously made the users that like the client 2.3 so they have to do an update?
Beta Tester
Posts: 7
Joined: 28 May 2010, 20:52

Re: AirDC++ 2.50

Postby maksis » 11 Jul 2013, 21:57

rezzy wrote:May i ask why you seriously made the users that like the client 2.3 so they have to do an update?

See viewtopic.php?f=13&t=3969
User avatar
Site Admin
Posts: 829
Joined: 23 Nov 2010, 18:56

Re: AirDC++ 2.50

Postby rezzy » 11 Jul 2013, 22:09

maksis wrote:
rezzy wrote:May i ask why you seriously made the users that like the client 2.3 so they have to do an update?

See viewtopic.php?f=13&t=3969

Well if it wasnt for that there was to much shitty things that is my opinion i would have a problem with that i will have to update to newst client but with some that i would like to call shit is added i rather use 2.3 but now i cant any more...

Like someone said " will never add limiter" yeah right
Beta Tester
Posts: 7
Joined: 28 May 2010, 20:52

Re: AirDC++ 2.50

Postby Night » 14 Jul 2013, 12:29

I don't understand where dc users generally have got into their heads that they can and should use an old client version if they dont like some new feature in the new one for instance.

The client will allow a few versions before the latest so the update doesnt have to be made right away, but since its an appilication which requires interaction between other users and their clients and hubs, using an old version can be really bad and break something for others even if it works for you. Its totally different than if you dont want to update your mediaplayer for instance.
Site Admin
Posts: 570
Joined: 24 Sep 2008, 18:50

Return to Announcement & News

Who is online

Users browsing this forum: SmartkonX and 2 guests