Archive for March, 2009

Boo(s)t up your DC++

March 11, 2009

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.

DC++ 0.75

March 7, 2009

A new version of DC++ has just out and (as you may noticed a bigger leap in the versioning) this seems to be a milestone release. This version is a result of a certain period of development and may start a new era in the ever progressing history of DC++. We can assume that every required adaptations and problems are solved since DC++ switched to an open source compiler, changed  GUI library and introduced a new (segmented) download method.

While the previous version was pretty stable and had all major bugs fixed, this new release focuses to fix bugs that can occour in less common situations. Along with these fixes DC++ 0.75  introcuces a few important improvements as well.

GUI changes

  • By popular demand, a possibility added to unmerge search results for same files. In other words this means that in certain situations when merged results aren’t an advantage, you have the option to organize your search results the same way as before.
  • User interface elements are automatically resized according to the length of the text they hold. It results not just nicely arranged controls; from now, all longer GUI translations will fit so there’s no need to use ugly abbreviations anymore.  (To all translators: its time to review your GUI translations! :) )

Fixed bugs :

  • Fixed compatibility (non-segmented) mode downloads so they always resume correclty if you restart DC++. Also fixed a problem that in some cases DC++ still used chunks in this mode.
  • Fixed a possible crash when two or more shared directories have the same virtual name. This bug could hit those who have very large number of files shared (total share over 1 TiB).
  • Fixed error handling when file lists and zlib transfers are decompressed. This could cause crash in special cases.
  • No more crashes when you remove several hundreds of elements from the finished transfers’ lists.

Improvements :

  • A possibility added to recheck integrity of partially downloaded files. This is useful in case of any disk error,  but the main advantage it brings is the ablility to easily resume large unfinished downloads when your download queue lost or damaged.  Read more in the updated Resume FAQ.
  • From now DC++ optionally uses the user profile folder for default download target and also for storing settings and temporary files (hublists cache, file lists, etc…).  This feture will be most welcomed by Vista and Windows 7 users as it should eliminate UAC warnings in most cases. If you use the installer to install DC++, it will be configured to use profile folders. If installed from the .zip archive manually, settings and downloads will be placed the old way (to the program folder).
  • Translating DC++ Help file to several languages are progressed a lot

For the complete list of changes refer to the changelog.

DCDev goes ADCS

March 3, 2009

Since today, our public hub has moved from simple ADC to ADCS, aka ADC Secure. If you connected today and noticed that your client just printed out “Connected…” and that’s it, it’s because of that. You need to go to your favorites and change the address from adc:// to adcs:// , this means the DNS is the same, just the protocol handler changed.

So the hub address is now adcs://devpublic.adcportal.com:16591
You are welcome with suggestions, questions or whatever springs to your mind.