Apparently, the change of config file parser to Spirit wasn't such a good idea after all. The new parser was broken, and completely broke config.ini (and I didn't notice it until testers started reporting it), so quite a few testers lost their settings files due to that. In the end, I decided to revert that change completely, since it caused more problems than it solved.
However, that breakage brought two issues to my attention that I had actually been aware of for a while, but was never motivated enough to fix. Namely, ed2k userhash, and modules statistics data, were also stored in config.ini, but it's completely wrong place for them. So now we have two new files - statistics.ini, which stores all statistics-related things, and ed2k/userhash.dat, which stores your ed2k user hash. Settings are copied automatically from the old locations, but the old values are also left in place (for backwards-compatibility reasons).
Wubbla (known for his work on the http module) came up with an interesting idea today - secure sockets. The idea is to provide SecSocket class, which transparently encrypts the connection session, to simplify implementation of things that use it (https for example). After some discussion we agreed upon the base design (wrapper class with forwarding functions around SocketClient class [pimpl]), using
Botan crypto library. However, Botan library doesn't provide SSL itself, it just provides means to implement this. So it's estimated that it'll take at least several weeks to properly implement SSL - but we have a reference implementation, namely
Ajisai library, which started to implement the same thing a while ago, but now seems to be dead project.
Early today morning, Boost version 1.33.1 was released, being a bugfix release. Hydranode's bundled Boost sources were updated, and Hydranode compilation now requires Boost 1.33.1 headers. I made a stripped-down version of the headers, available at hydranode.bytez.org in two formats -
tar.bz2 and
zip. SVN revisions 2459 and newer require those headers to be present during compilation. Of-course, you can use the headers from the official tarball as well (they'r identical).
The reason I was waiting so anxiosly for this upgrade was that Boost.Signals library had major issues when used across DLL boundaries, and Hydranode uses a LOT of dlls, and some of the base components (events) are implemented using Boost.Signals. This update should clear up a lot of wierd crashes when having multiple modules loaded.
New builds (r2461) are available now, built against Boost 1.33.1. Windows binaries are now built with MSVC 8.0 compiler. Note that this is the first time I'm publishing MSVC-compiled binaries, so let me know if the archive is missing some dll's, or similar (I need to bundle C and C++ runtime DLL's, since we cannot link against them statically due to the modular nature of Hydranode - same reason why I'm bundling libstdc++.so in Linux builds).
An interesting thing though - the very first MSVC build I made yesterday resulted in almost 20% smaller binaries than anything I'v managed to create after that. A complete mystery ... the first binaries bundle was 940kb, the r2461 snapshot is 1.2MB. Strangeness ...
Madcat, ZzZz