Boo(s)t up your DC++

While (especially the past entries of) this blog contains numerous great information about DC++ internals almost in a knowledge base manner, you can’t find any reference to an useful feature  introduced way back in DC++ 0.695. The feature itself is actually in the dcpp lilbrary and I believe it has been made in favour of  *nix ports. It allows the user to specify different folder than the program directory to store config files, temporary data and downloads (by default).  The custom folder can be set in a standalone config file called dcppboot.xml, specifying a path relative to the DC++ executable. If you open up the file you’ll see some usage instructions in the comments.

The configuration parameter can’t be set from DC++ GUI, it can be altered only by manually editing the file. The feature works well under Windows as well, however its rarely used in this platform.  In Windows XP there are no problems accessing (settings) files located besides the executable in the %PROGRAMFILES% folder, even though since the release of Windows 2000, Microsoft recommended using %APPDATA% folders for this purpose.

Problems started growing with the arrival of Windows Vista. According to the years long recommendations (which became expectations over the years), Microsoft introduced User State Virtualization which arose problems described eg. in this support FAQ. dcppboot.xml is (one of the many not too nice) existing solution for Vista users, still, DC++ definiately needed a better way to solve this.

The solution came with DC++ 0.75 as the available parameters of dcppboot.xml are extended in a simple way what suddenly solves all the problems  described earlier. Usage instructions are updated in the comments inside the file as you can see in the repostitory.

The new parameter is called LocalMode and when it is set to zero, all configuration files are stored in the appropriate user folder inside %APPDATA%.
For Windows 2000/XP, settings will be placed into %APPDATA%\DC++, temporary files to %APPDATA%\Local Settings\Application Data\DC++ and you’ll find your downloads in %APPDATA%\DC++\Downloads by default.
In Vista and Windows 7, these will be, respectively (assuming default Windows configs): %APPDATA%\DC++ (expands to C:\Users\[your-nick]\AppData\Roaming\DC++); C:\Users\[your-nick]\AppData\Local\DC++; My documents\Downloads.

The default mode is kept (DC++ runs in LocalMode) when you use the zipped binary archive. However, if you install DC++ with the installer, you’ll have a different dcppboot.xml file installed (existing dcppboot will be overridden) so DC++ will use the user profile folders for storing its settings per user.

The best thing is that these changes will be transparent to the average user even if  they upgrade DC++ using the installer. A nice automatic migrate function added and it takes care of moving settings files to the user profile if LocalMode set to false (zero). This is a one way migration only though; if your settings, etc… are already in the user profile and you want to switch back to local mode, you should edit dcppboot then move your settings files back to program folder manually.

About emtee
I started to use DC using DC++ in 2003 when its version number was around 0.260. 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++ team in 2006 where - in the beginning - I had been doing user support and some testing only. A few years later I started to add small contributions to the DC++ code as well so for many years I'd been doing mostly bug fixes, testing, feature proposals and improvements. At the same time I worked on improving the documentation for both DC++ and ADCH++ as well. These days I'm trying to maintain the whole code and the infrastructure behind to keep these software secure and usable for a prolonged time. My ultimate goal is to help making the DC network as more user friendly as possible.

Leave a comment