Changes in dclib 0.3.14 and valknut 0.3.14 / 0.4.0

Folder search results

Valknut may now include folders in the search results it sends out. This change requires a sharelist refresh, which will be done automatically when valknut is first started. But only the first time you start 0.3.14. If you downgrade, or run multiple versions on the same .dc folder, you will need to refresh you share manually. No re-hashing of already shared files is needed.

/rebuild command fixed and improved

A number of problems with the /rebuild command were fixed. In addition, /rebuild will ensure that the hash leaf data, which valknut sends out so other clients can verify the integrity of the files they are downloading, is correct. When I did this, it found a single file in my share for which the hash leaf data was indeed incorrect. The affected file was rehashed and correct data put into the hash database. I do not know how the incorrect data occurred.

Public hubs display improved

A few extra columns were added to the public hubs view. They will only by filled in if you are using XML hublists, which have been supported for a while. Also, you can specifiy hublist URLs starting with file:// to read hublists from disk.

Filelist storage changes (again)

Decompression of filelists was moved out of dclib and into valknut. Headers are no longer written to filelists, they are stored in their original compressed form. This means the "Open" button of the filelist browser can now open files not saved by valknut.

Build system fixes

The header files for dclib are now installed in $prefix/include/dclib-0.3 instead of $prefix/include . A number of problems with the Makefiles were fixed so "out of tree" builds now work. Also, header files from old dclib versions should no longer be accidentally included during the build, preventing a totally broken dclib being produced.

Chat command improvements

An option to not send unknown commands to the hub was added. Also, threads are used to wait for the output of commands started with the /sh command, resulting in improved responsiveness.

Nick tab completion improvements

Tab completion in previous versions was somewhat unpredictable. The new system searches the graphical userlist for nicks, so that results will be returned in the order the userlist is sorted. Matching can be done on "containing anywhere" or restricted to "starting with". Tags (text inside []) can be ignored.

Translator fixed

The built in translator was almost completely re-written, since the website it used no longer exists.

Bug fixes

Lots of bug fixes, including one for your share size being reported as 0 B for a very short time during part of the filelist refresh process. Also, bugs affecting compressed transfers were fixed properly and the previous "bug avoiding" hack removed, ZLine support was re-written, and the local system encoding will be used instead of forcing UTF-8. (Completely untested on non UTF-8 systems).


Finally, a version of valknut using version 4 of the Qt toolkit is ready for release. Qt version 4.3 or higher is required, 4.4 looks nicer. It still makes use of the Qt3Support compatibility library provided by Qt4. And may well be slower than the Qt3 version. And have extra bugs. The version number listed on hubs will be the dclib version.

The Qt3 and Qt4 versions are not parallel installable, you must specifiy and different --prefix for one if you want to install both. And they use the same settings folder.

The Qt3 and Qt4 versions have identical features, and the Qt3 version will continue to be maintained.

NB: For a very long time, the Qt4 version suffered from a bug which caused all text to be cut short. Recently, this was tracked down and fixed. The problem: a QFont object was allocated before the QApplication (because generally the coding style used defines all local variables and objects at the start of each method, C style). This reduced the effort put into the Qt4 version for a long time, but since it is now fixed, work to remove the use of the Qt3Support library will resume (eventually).