Changelog for 0.3.22 / 0.4.8
dclib 0.3.22
- 12/09/2008 Remove all unnecessary use of the initialisation phase of contructors. In theory using the initialisation phase is better but it managed to break CTraffic somehow, with Qt 4.4.1 and static dclib.
- 12/09/2008 While looking at all the constructors, some uninitialised int/bool were initialised, and the default description is now empty, not http://wxdcgui.sourceforge.net/.
- 13/09/2008 Stop also building a static library by default. It is more convenient, but worse in other ways.
- 13/09/2008 Optimize CConfig::AliasToPath for files being more common than directories in the share.
- 15/09/2008 Add threads/mutex test to "make check".
- 16/09/2008 Fix uninitialised extended hub count H:3/2/1 setting - enabled.
- 16/09/2008 Send XML filelist when sharing 0B not an error message. Maybe empty, maybe only empty folders.
- 16/09/2008 Fix saving 0 size CByteArray (the .bin files with nothing shared).
- 17/09/2008 Check pointer to hash root is valid while checking hash leaves (instead of crashing).
- 17/09/2008 Fix public chat parsing for invalid messages that do not start with <nick>.
- 17/09/2008 Change public chat detection, it goes by first character not being $. There's no need to also check for the first character being <.
- 17/09/2008 Add settings for opening extra slots when total upload rate is below a set limit (O: in DC++ tag).
- 17/09/2008 Upload slot changes:
- Granted slots will not prevent normal slots being used up if available.
- If a slot is granted and a normal slot is given, the granted slot is still used up.
- Operator slots are special MiniSlots reserved for operators to get the filelist, but they were never given due to a bug.
- Operator slots are given after MiniSlots are all used, not before to operators, otherwise operators can not get small files when normal users can.
- Operator slots no longer allow TTHL (hash leaf data) transfers.
- 18/09/2008 Add the optional extra upload slots when total upload rate is below a limit.
- 18/09/2008 Add O:SPEED to tag same as DC++ when open extra slots is enabled.
- 18/09/2008 Disable compressed transfers by default, because dclib is not really multithreaded.
- 19/09/2008 Fix hang (deadlock) on searching not connected hubs, not that you should do this. (Another mutex was needed.)
- 19/09/2008 Fix pointer check within /rebuild function.
- 19/09/2008 Remove some unused defines.
- 19/09/2008 Re-arrange the members of a few classes intending to reduce padding. Remarkably similar to re-arranging deck chairs on the Titanic. Classes: DCConfigHubProfile, CMessageMyInfo, CMessageDMFileObject, CMessageDMTransferObject, CMessageSearchFile.
- 19/09/2008 Fix some comments which no longer matched what the code/setting actually does.
- 20/09/2008 Improve UserIP2 handling so that there is no updating things when settings change.
- 20/09/2008 Move all setting of search source (nick or IP) into CClient.
- 20/09/2008 Remove unused search history storage from CConfig.
- 20/09/2008 Remove no longer used CDir::ReadLink (was replaced with Canonicalize).
- 21/09/2008 Fix some perror strings - the perror function adds ": ".
- 21/09/2008 Remove fflush(). Nothing printed to the terminal is urgent.
- 22/09/2008 Ensure either all the .bin files are saved or none are. (Except hash leaves which won't cause a crash).
- 22/09/2008 Improve CFileHasher API so it might even be possible to use it.
- 22/09/2008 Fix CFileHasher thread stopping so it does not try to pthread_join itself.
- 22/09/2008 Fix CFileManager / CHubListManager thread stopping so they do not try to pthread_join themselves.
- 22/09/2008 Add CThread::Join() for using CFileHasherThread.
- 22/09/2008 Add missing const to CIconv functions, requires valknut rebuild.
- 22/09/2008 Default to empty plugin folder for plugins disabled.
- 22/09/2008 Pass myinfo object instead of every parameter individually for making MyInfo string.
- 22/09/2008 Add "1000" connection speed.
- 25/09/2008 Remove unnecessary comparison(s) on receiving MyINFO message for a user not already in list.
- 27/09/2008 Redo XML hublist parsing because hublists still serve up horrible not well formed XML.
- 27/09/2008 Load certificate for all TLS connections not just incoming. In case other client is in trusted only mode.
- 27/09/2008 Remove certifcate verification log message. dclib does not have a trusted only mode, so the result is always ignored.
- 30/09/2008 Improve binary compatibility between with OpenSSL and without OpenSSL dclib.
- 02/10/2008 Fix a few but not nearly all WIN32 compilation issues.
- 03/10/2008 Fix uploading files when -1 bytes requested (usually -1 only used when size unknown e.g. for filelist).
- 07/10/2008 Fix potential for memory leak from doing TTH search to find file to upload.
- 07/10/2008 Fix GetHashLeaves(), for databases fixed with /validate in particular.
- 07/10/2008 Add my name to the OpenSSL exception.
- 11/10/2008 Convert sources to UTF-8.
- 12/10/2008 Add WIN32 implementation for CMutex and CThread classes, which is very likely to be bad.
- 12/10/2008 Don't use gai_strerror on WIN32, doesn't seem to work. Use FormatMessage
but all you're likely to get is "WinSock error 11001 plus 1815" as apparently it doesn't work for WinSock errors. Probably a wine issue since DC++ under wine may give "Unknown error" and the hexadecimal number.
- 12/10/2008 Rename things in the threads-mutex test for WIN32, and enable the output (it gives some idea of how much concurrency there was).
- 12/10/2008 WIN32 fixes for CXml, CPluginManager and remove the explicit template instantiations.
- 13/10/2008 Add required WIN32 definition and libs to core/Makefile.am, only include winsock header where required.
- 16/10/2008 Unbreak multi download mode from peers that do not support chunks, again.
- 16/10/2008 Fix received peer protocol commands also being counted towards data traffic statistic.
- 19/10/2008 Extend TTH test to look at leaves.
- 19/10/2008 Fix memory leaks in tests.
- 19/10/2008 Fix UserIP parsing, it may be a list of nicks and IPs.
- 21/10/2008 Change case folder test, it is not required (in dclib anyway) that the case folder converts to lower case.
- 22/10/2008 More useful content for "log finished uploads" (logging your own nick isn't useful).
- 23/10/2008 Move the code for getting TTH leaves to the same place as all the other non-file transfers.
- 24/10/2008 Remove SSL_free of already NULL pointer.
- 24/10/2008 Remove temp string from CDownloadManager::SendLogInfo().
- 24/10/2008 Remove, occasional except in CMessageHandler, checking if "new" returned NULL.
- 24/10/2008 In the core dir, remove checking if a pointer is NULL before deleting it. "delete NULL" does nothing.
- 26/10/2008 Remove DLL_EXPORT, only defined to something on WIN32, but it is not correct for libtool/mingw.
- 26/10/2008 Cleanup inconsistent style in dcobject.h.
- 26/10/2008 Fix uninitialised bool member of search result object.
- 26/10/2008 Remove remaining unnecessary checking if NULL before delete.
- 26/10/2008 WIN32 CThread: use _beginthreadex()/_endthreadex() instead of CreateThread(), because dclib uses loads of other C runtime library functions.
- 27/10/2008 Avoid potential null pointer dereference in CheckWaitTransfer. If this were really a problem, it has been in every version.
- 30/10/2008 sys/sockio.h needed by CNetAddr on Solaris.
- 30/10/2008 Do not show ADC protocol hubs from the public hublists, not supported.
- 30/10/2008 Restore the other default hublist url, now that it's ADC hubs won't be shown.
- 30/10/2008 Remove the copy operation from CString ToUpper() and ToLower() and add a test for those functions.
- 30/10/2008 Use the faster Find() in CString::Replace().
- 30/10/2008 Add CByteArray::Realloc().
- 30/10/2008 Fix that the only thing dclib wants to CBZ::Compress() is a CString but it has to copy it into a CByteArray to do it.
- 30/10/2008 Fix infinite loop attempting to CBZ::Compress() or CBZ::Decompress() zero bytes.
- 31/10/2008 Remove the temporary buffer and associated copying from CBZ::Compress() and CBZ::Decompress(), the destination can now be used directly.
- 31/10/2008 Change CBase32 API for better efficiency.
- 01/11/2008 Fix CBase32 array subscript broken by above change.
- 01/11/2008 Remove the commented out code from CTransfer + various other minor cleanups.
- 01/11/2008 CTransfer does not need to store the whole $Lock contents, just if it is DC++ >= 0.307 and <= 0.403.
- 01/11/2008 Store "read file buffer size" in "long" not "ulonglong".
- 01/11/2008 Remove a copying of the data and add some error handling when saving a downloaded filelist to the file.
- 02/11/2008 Remove including config.h where it is not used.
- 02/11/2008 Move socks proxy library initialisation into dclib (socks is compile time option).
- 03/11/2008 dclib already uses some functions that should need _XOPEN_SOURCE=600 defined on Linux, so do that.
- 03/11/2008 WIN32: Initialise WinSock2 dll only once on startup, not for every CSocket created. Also add cleanup on program shutdown.
- 03/11/2008 WIN32: CSocket uses closesocket() on sockets and it is not clear if _close() works on sockets, so use closesocket() in CDownloadManager and CListenManager.
- 04/11/2008 Make a 0.3.22pre1 tarball, library soname changed to libdc-0.3.22pre1.so just for the pre release.
- 04/11/2008 Fix not removing casefolded{base,data}.bin.new in case all files could not be saved.
- 04/11/2008 Remove config.h from csearchindex.cpp, not used.
- 04/11/2008 Fix compiler warnings in tests.
- 04/11/2008 Fix dclib-dump-database.cpp compile for the CBase32 API change.
- 05/11/2008 WIN32: Implement directory reading in CDir using MS C runtime library functions.
- 05/11/2008 WIN32: Remove opendir/readdir/closedir implementations, no longer required.
- 05/11/2008 WIN32: Attempt to fix large file support (files > 2GiB) in CDir, but still broken. Update 11/11/2008: It worked but printf() didn't.
- 05/11/2008 Simplify "ulonglong" definition, and it is now the same on WIN32 as elsewhere.
- 05/11/2008 Remove DC++ base32 encoder, not required.
- 05/11/2008 Relax CUtils tag parsing to accept 0.3.22svn as 0.3.22 (only used for secure private chat setup).
- 06/11/2008 Fix CDownloadManagerInfo assignment operator.
07/11/2008 Add choice of DCGUI/dclib/Valknut for client identification.
- 07/11/2008 Fix compiler warning in CBase64.
- 07/11/2008 Add option to disable obsolete peer protocol extensions (CHUNK BZList GetZBlock SSL). Well, not advertise support for them.
- 07/11/2008 Have CTransfer not send loads (one every ~64KiB) of CMessageTransfer objects back to CDownloadManager when uploading, only required when the segment end has been reached.
- 08/11/2008 Rename "forw" to "prev" in CList.
- 08/11/2008 Simplify CSearchSocket, remove intermediate function with temp string.
- 09/11/2008 Change CEncrypt to not need snprintf()
- 09/11/2008 Tiny cleanup in CSocket.
- 09/11/2008 CConnection can use CList::Clear() now that the correct template is used.
- 11/11/2008 0.3.22pre2 tarball with libdc-0.3.22pre2.so, released for Qt4 valknut.
- 11/11/2008 Critical function: Change connection send list handling, to usually append to the last CByteArray in the list, rather than add a new one to the list, and append them into one later.
- 11/11/2008 Add test for CString::number() functions.
- 11/11/2008 WIN32: Fix CString::number(long long), this not working will break ADCGet transfers amongst other things.
- 15/11/2008 Default to CP1252 for remote encoding not ISO-8859-1.
valknut 0.3.22
- 12/09/2008 Remove the first pkg-config check for dclib, so that if the real check fails, you get one of the much more helpful messages from pkg-config.
- 13/09/2008 Qt4: Re-write search spy sorting to use QSortFilterProxyModel, removing lots of code.
- 14/09/2008 Qt4: Bring back seconds to search spy time.
- 14/09/2008 Qt3: Add date to search spy time.
- 15/09/2008 Qt4: Remove sorting code from UserListModel and use proxy model instead. TODO: cannot disable sorting, remove those commands and replace with hiding the userlist.
- 16/09/2008 Qt4: Add userlist filtering. Removed along with spy/userlist proxy models on 10/11/2008.
- 16/09/2008 Qt4: Fix desktop icons installation.
- 16/09/2008 Show share list info (from button in options dialog) even if 0B shared.
- 16/09/2008 Disable custom font by default.
- 16/09/2008 No suppressed nicks by default (was "Hub"). Suppressed means private chat window opens in background.
- 16/09/2008 Fix userlist icons not being loaded without dcgui.cfg.
- 17/09/2008 Add settings for opening extra slots when total upload rate is below a set limit.
- 17/09/2008 Fix setting minimum segment size. Explicit int to unsigned long long conversion needed.
- 18/09/2008 Add the rate dependent slots to the download manager info status bar.
- 19/09/2008 Remove unused things from DC_QProgressListItem.
- 19/09/2008 Re-arrange DCFriendObject intending to reduce padding.
- 19/09/2008 Remove default filelist browser remote encoding setting from DCConfig.
- 20/09/2008 Setting of search source removed (handled by dclib CClient).
- 20/09/2008 Remove commented out call to AddSearchHistory which was removed from dclib.
- 20/09/2008 Do not use a 2KiB static buffer for putting date/time strings into user commands, use QByteArray.
- 20/09/2008 Chat: use QDateTime instead of QDate then QTime.
- 20/09/2008 Chat: generate the HTML for timestamps and status messages more efficiently.
- 20/09/2008 Chat: cleanup code for using send chat with which key, test for send with just enter first.
- 21/09/2008 Chat: cleanup message HTML generation, fix /me in private chat and private chat forwarded to public chat, remove empty <> when no nick.
- 21/09/2008 Chat: right-click detects the nick in public messages without <nick> in the form "* nick does something".
- 21/09/2008 Move some code for enabling/disabling widgets in the options dialog into the .ui file.
- 21/09/2008 Simplify chat log settings by using checkable groupboxes.
- 21/09/2008 Move "doubling click a user" setting up.
- 21/09/2008 Coding style cleanup for dcoptions.cpp.
- 21/09/2008 Remove apparently unnecessary fflush() calls.
- 21/09/2008 Remove a couple of leftover variables from the crash signal handler.
- 21/09/2008 Default to "simple" emoticon theme, mainly for performance (35 entries vs 209 for default).
- 21/09/2008 Re-write emoticon storage to use Qt4 QList / Qt3 QPtrList instead of dclib CList.
- 21/09/2008 Qt3: Fix memory leak on saving options dialog due to menu commands.
- 22/09/2008 Add "1000" connection speed. Give it the server icon (former LAN icon).
- 22/09/2008 Remove printf from the crash signal handler since that is not safe.
- 22/09/2008 Do not disable the name entry box for separator user menu commands.
- 23/09/2008 Work around broken UserCommand protocol, separators not having names.
- 23/09/2008 Qt4: Fix chat not in tabs and not open chat windows.
- 23/09/2008 Fix chat history crash when the history is empty.
- 23/09/2008 Nicks to not open chat windows for are now nicks to reverse the open chat windows setting. Still a regular expression i.e. Martie|Natalie|Emily matches nicks that contain any of those names. ^Emily$ matches exactly Emily and not Emily2, AnotherEmily etc.
- 23/09/2008 Options dialog cleanup, remove a couple of unnecessary container widgets, fix some layout, add spacers / position spacers consistently.
- 24/09/2008 Qt4: Remove unnecessary QHeaderView::setResizeMode().
- 24/09/2008 Remove DCClient::SaveClientColumn() moving it's code to the single place it is called.
- 24/09/2008 Fix infinite loop on unclosed %[line:reason in menu commands.
- 24/09/2008 Qt3: Fix saving/restoring userlist column order.
- 24/09/2008 Qt4: Fix saving userlist column order for Qt3.
- 26/09/2008 Fix startup directory detection (for crash handler dialog).
- 28/09/2008 Check TTH is valid before adding a TTH search.
- 29/09/2008 Use the new magnet link dialog (even though direct download and links from external programs are not supported).
- 29/09/2008 Qt4: Re-write public hubs filtering to use QSortFilterProxyModel which should be more efficient. Filtering now uses a regular expression and searches the specified columns individually instead of combining them and then searching that.
- 29/09/2008 Qt3: Change public hubs filtering (columns, regular expressions) to be the same as in Qt4.
- 29/09/2008 Qt4: Fix restoring last used public hubs filter.
- 03/10/2008 Qt4: Fix minimizing windows on startup that were minimized on shutdown.
- 03/10/2008 Qt4: Fix hub list, search spy, friends list always present in tabs for everything mode. But now closing them breaks tabs mode...
- 03/10/2008 Updated Russian translation from Ilya Kurikhin.
- 04/10/2008 Qt4: Delete the 3 permanent QMdiSubWindows on shutdown.
- 04/10/2008 Qt4: Fix closing hub list/spy/friends list breaking tabs mode.
- 05/10/2008 Also install valknut.png into datadir/pixmaps/ .
- 05/10/2008 Fix various QMessageBox issues.
- 05/10/2008 Fix "all files" filelist browser open file dialog filter.
- 05/10/2008 Add cancel option in addition to save and discard in hub profile editor.
- 06/10/2008 printf about signals already handled is now only with visible -v.
- 07/10/2008 Qt3: bookmark order not saved after moving one up i.e. not saved if all you did was move hubs upwards.
- 07/10/2008 Remove message icon from hubs tab bar if tab becomes current after closing other hub, otherwise you're stuck with it when down to one hub.
- 07/10/2008 Remove all the names from the splash screen. This does not remove any copyright notices, which are in the about dialog and in every source file.
- 07/10/2008 Add my name to the OpenSSL exception (Valknut itself doesn't use OpenSSL directly and is not linked against it anymore).
- 08/10/2008 Qt4: fix extra large borders around the chat input box when send button is not shown.
- 09/10/2008 Qt3: Unbreak hubs tab bar.
- 11/10/2008 Convert sources to UTF-8.
- 11/10/2008 Make the authors text for the about dialog a local variable not some global thing.
- 12/10/2008 Qt3: make the configure script as similar as possible to the Qt4 one. In particular, KDE3 compiler flags are no longer used, resulting in a larger binary on disk. Without CXXFLAGS set, the standard "-O2 -g" is now used, enabling debug info.
- 12/10/2008 Add "go to user" button to filelist browser.
- 19/10/2008 Update for UserIP changes in dclib.
- 19/10/2008 Remove useless/gets you disconnected "Get user IP" menu item. Also obsoleted by UserCommand support.
- 20/10/2008 Make "Profile" button in bookmark dialog a toggle button.
- 21/10/2008 WIN32 compile fixes: sleep to Sleep and renaming to avoid SendMessage.
- 22/10/2008 Simplify user command editor API and rename to avoid WIN32 GetObject.
- 23/10/2008 The crash dialog process doesn't need to send SIGCONT to the crashed process, it exits anyway after the crash dialog exits.
- 24/10/2008 Remove re-definition on WIN32 of CSocket static members.
- 24/10/2008 Qt4: Move sources out of ui dir and remove intermediate libui creation.
- 24/10/2008 Remove unnecessary assert() of "new" return value.
- 24/10/2008 Qt4: Add some linker flags for WIN32 from Qt4 win32-g++/qmake.conf.
- 25/10/2008 Qt4: Fix search spy copy for the proxy model.
- 25/10/2008 Remove unused transfer view geometry settings from DCConfig.
- 25/10/2008 Qt4: Fix position of hub list/spy/friends list not being restored. Probably only broken in svn.
- 25/10/2008 Add zoom in and out for chat.
- 25/10/2008 Update fileclose and find icons to current KDE crystalsvg icons.
- 26/10/2008 Remove some unnecessary null checking before delete.
- 27/10/2008 Crash dialog: full backtrace for all threads.
- 30/10/2008 Qt4: Patch from nieder: update making the app bundle to work when using Qt in frameworks.
- 31/10/2008 Fix various problems on loading very small non-filelists with the filelist browser.
- 31/10/2008 Fix detecting the current theme, although this is only used when opening the options dialog and the setting is not in the list.
- 01/11/2008 Filelist browser open file dialog: open at previously opened file.
- 02/11/2008 Include config.h where necessary.
- 02/11/2008 Remove socks code and configure option from valknut, moved into dclib.
- 03/11/2008 Use AF_UNIX for local socket (for term signal) since AF_LOCAL may not be defined (Solaris).
- 03/11/2008 Define _XOPEN_SOURCE=600 same as dclib.
- 04/11/2008 Make 0.3.22pre1 and 0.4.8pre1 tarballs.
- 04/11/2008 dcchat.cpp needs config.h for the /pretend command.
07/11/2008 Add DCGUI/dclib/Valknut setting to options dialog.
- 07/11/2008 Add setting to disable obsolete peer protocol extensions to options dialog.
- 10/11/2008 Qt4: Remove use of proxy model for search spy, too CPU intensive?, restore the sorting code. Changes: use qStableSort instead of qSort, fix not updating sorting when count/time updated and are the sort column.
- 10/11/2008 Qt4: Remove userlist filtering ability.
- 10/11/2008 Qt4: Remove use of proxy model for user list, too CPU intensive?, restore the sorting code. Changes: use qStableSort instead of qSort, all the UserListItemNickLessThan type functions written in fewer lines of code.
- 10/11/2008 Add search spy sorting parameters to settings saved and restored. In Qt4, default spy sorting to A-Z not Z-A.
- 11/11/2008 Qt4: User list filtering added again but this time the proxy model is only used for filtering not sorting, and filtering can be disabled, in that case the proxy model is removed and deleted.
- 11/11/2008 Make 0.3.22pre2 and 0.4.8pre2 tarballs.
- 15/11/2008 Detect current theme instead of using hard-coded default when no setting.
- 16/11/2008 Qt4: Add work around for the insanely broken code for handling userlist column widths and visibility.
- 19/11/2008 Clicking the hub SSL button now shows an info dialog (on hubs using stunnel).
- 21/11/2008 Stop mangling arguments given to /sh command, fixing quoted spaces. Qt3 needs to run everything via "sh -c args...".
- 22/11/2008 Qt4: using the Qt3 .ts files does not quite work so update them with lupdate-qt4.