Been a pretty nice and progressive development day, and since it's 5am and I'm rather wired, I'll just stick to dumping a compact summary of today's CVS updates here and get to sleep. So here goes:
- Temp files are now moved to completed dir
- ED2KPacket::readPartMap() method now adds correct amount of chunk bits (it formerly added extra padding at the end).
- ED2KClient now adds source masks and hashsets to PartData.
- Fixed Client::DownloadInfo::write() method chunk-finding loop
- Added getCompleted()[size], getSourceCnt() and getFullSourceCount() methods to PartData.
- Terminal size is now negotiated between telnet client and hydranode telnet server as defined by RFC 1073. Terminal size updates are also passed as the window is resized.
- Added `vd` [view downloads] command, which lists all current downloads
- Removed obsolete Range stream output operator, which was causing broken temp files on random cases (oddly enough, Linux/x86/gcc didn't detect duplicate operator, but OSX gcc did :o)
- Its now possible to build modules as [built_in]. To do so, compile module with -DBUILT_IN, and link the modules object files to final binary. (Currently needs to be done by hand, build-system support for it is problematic.
- New bandwidth-calculation engine in Scheduler - instead of former real-time bandwidth tracking, we now track bandwidth at 100ms precision - should be enough for our needs. In my tests, 170+kb/s transfer speeds had no effect on overall application performance after this upgrade.
- Cleaned up lots of extranous debug/trace messages from various files.
- Trim new download filenames to avoid spaces at begin/end of filenames.
- PartData now displays fancy graph during load.
- SharedFile::isPartial() and SharedFile::isComplete() methods now properly handle the situation where we have PartData at 100% completed state.
- PartData now detects itself when loading 100% complete temp file and attempts to complete itself again.
- Fixed lock generation - now adheres more closely to requested size (it was always giving size - 1 locks).
- PartData now resets itself completely if full rehash fails.
- ShellClient includes a nice progress-o-meter for monitoring download state.
Only current problem I'm aware of right now would be fixed if I had a clue where the problem lies. Thing is, it seems we'r losing ~30kb data somewhere between downloading and the target file. When PartData thinks it's complete, and performs full rehash, the rehash fails, and further investigation showed that the resulting file from the download was ~30kb smaller than was expected. The wierdest thing is that the regress-test still runs flawlessly, so I'v got no clue whatsoever right now where the problem is. Hope tomorrow brings better luck in searching this [hopefully_last] bug.
Madcat, ZzZz