The evolution of connection setup in DC++

You might already know that there was yet another connection setup change in the latest release of DC++. Instead of writing a few sentences only about the current changes I thought I’d rather show you the best part of the evolution of DC++ regarding to the connection setup.

In the beginning and for a very long time the connection setup was the most hated part of DC++ for many people. But with the success of  the Automatic connectivity setup implementation setting up the connection manually has become an advanced feature in DC++; in the majority of cases an average user should not modify or even check these settings.

The connection setup layout, labeling and the number of active mode options are often changed over the history of DC++, especially in last couple of years. The four available active mode options that has been part of the setup page during the recent years are debuted back in DC++ 0.68. That time they were expanded compared to the eariler releases and the options has become more descriptive for the sake of better understanding.  However, the need of manual setup of active mode  still remained a problematic task for many users for many more years, until the first incarnation of automatic connection setup function has introduced in DC++ 0.780.

At the time of writing the last change in the connection setup GUI is that with DC++ 0.800,  the number of active mode options shrinked from four to three.  As two of the existing manual active mode setup options actually had identical function now they are simply merged: you should use the same option for direct connection and manually port forwarded active modes from now.

Here’s some history in pictures showing how the setup functions and layout has been changing over the years. More of them can be found by Google.

This is something from the ancient times. There’s even no separate Connections page yet.

This one’s  from around cca. version 0.670. Settings moved to a new page but no change in the layout. In active mode DC++ automatically tried UPnP port mapping if the ports input boxes were empty and automatically went for passive mode in case of a mapping failure. UPnP implementations were pretty unreliable that time (both in DC++ and in the routers) so there were many non-working and passive setups. But most people still loved it because it often gave some sort of working connectivity without playing with the settings.

The layout we had for many years. Introduced in 0.68 and people really hated it because #1 old settings were not converted on upgrade #2 in most cases it isn’t worked without touching the settings and it threw various error messages #3 the options and error messages were confusing (eg. most people couldn’t quite understood what “Firewall” means here). This layout had lasted until DC++ 0.75.


Here’s the first attempt to have more meaningful labels for the options. It is from the era when DC++ rapidly started to become more user friendly (version 0.76x). Still no automatic setup yet.

First incarnation of automatic setup in version 0.78x.  Manual settings are still on the same page as the automatic ones and they getting greyed out when autoconfig is selected. The first time when DC++ has some indication of what happens during the connection setup so problems were lot easier to solve using the log. By this time DC++ already used MiniUPnP for port mapping which resulted a lot more successful port mapping attempts, really. This release was an overall success throughout the community.


This is DC++ 0.79x. Manual config moved to a separate page and you can copy and edit autodetected settings in the manual page. This version introduces NAT-PMP as an alternative way for automatic port mapping. At last, bind address setting is placed at where it should be.


…and finally the current relabeled and optimized manual options in 0.800. Mind that while they’re lot more versatile, due to the last optimization the options are also more simple and a bit similar to the very old layout.

Will connection setup evolve more with time in DC++? That I don’t know but I am sure that DC++ already in par with other recent P2P applications in this regard.

About emtee
I started to use DC using DC++ in 2003 when its version number was around 0.261. Since then I've been amazed by the DC network: a professional but still easy-to-use way of P2P file sharing. I was invited to the DC++ development team in 2006 where - in the beginning - I had been doing user support and testing only. A few years later I started to add small contributions to the DC++ code as well so these days I do mostly bug fixes, testing and improvements as well as I take part of the improvement of the documentation for both DC++ and ADCH++. I translated the whole DC++ help file to my native language (Hungarian) and currently maintaining the whole HU locale stuff for DC++. My ultimate goal is to help making the DC network as more user friendly as possible.

Leave a Reply

Please log in using one of these methods to post your comment: Logo

You are commenting using your account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )


Connecting to %s

%d bloggers like this: