New series history part 1

0.3.14 - 29/05/2008

dclib:

 cclient.cpp            |  216 ++++++++++-------
 cclient.h              |   14 -
 cclientssl.cpp         |  141 ++++++++++-
 cclientssl.h           |    1 
 cconfig.cpp            |  156 +++++++++---
 cconfig.h              |   67 ++++-
 cconnectionmanager.cpp |   17 -
 cconnectionmanager.h   |    2 
 cdcproto.cpp           |   33 +-
 cdcproto.h             |   10 
 cdownloadmanager.cpp   |  131 +++++++---
 cdownloadmanager.h     |    2 
 cdownloadqueue.cpp     |    4 
 cencrypt.cpp           |    2 
 cfilehasher.cpp        |  618 +++++++++++++++++++++++++++++++++++++++++++++++++
 cfilehasher.h          |  211 ++++++++++++++++
 cfilemanager.cpp       |  115 +++++++--
 chttp.cpp              |  159 +++++++++---
 chttp.h                |    8 
 chublistmanager.cpp    |  282 ++++++++++++++--------
 chublistmanager.h      |   17 -
 clistenmanager.cpp     |   12 
 cmessagehandler.cpp    |  136 ++++++++--
 cmessagehandler.h      |    4 
 core/cbase32.cpp       |    2 
 core/cbase64.cpp       |    2 
 core/cbytearray.cpp    |    4 
 core/cbz.cpp           |    2 
 core/ccallback.cpp     |    4 
 core/cconnection.cpp   |    4 
 core/cdir.cpp          |    8 
 core/cdir.h            |    2 
 core/cfile.cpp         |   23 -
 core/cfile.h           |    2 
 core/che3.cpp          |    6 
 core/ciconv.cpp        |   35 ++
 core/clist.cpp         |    2 
 core/clisten.cpp       |    4 
 core/clogfile.cpp      |    2 
 core/cmanager.cpp      |    6 
 core/cmanager.h        |    1 
 core/cobject.cpp       |    2 
 core/cplugin.cpp       |    6 
 core/csingleton.cpp    |    2 
 core/csocket.cpp       |   23 +
 core/cssl.cpp          |   11 
 core/cssl.h            |    1 
 core/cstring.cpp       |   17 -
 core/cstringlist.cpp   |    4 
 core/cthread.cpp       |    4 
 core/cxml.cpp          |    2 
 core/czlib.cpp         |   88 ++++--
 core/czlib.h           |   20 +
 core/platform.cpp      |    4 
 core/types.h           |   42 ++-
 cpluginmanager.cpp     |   18 -
 cquerymanager.cpp      |   54 ++--
 cquerymanager.h        |    2 
 csearchindex.cpp       |  374 +++++++++++++++++++++++------
 csearchindex.h         |    2 
 csearchmanager.cpp     |   18 -
 csearchsocket.cpp      |    8 
 csharelist.cpp         |   57 +++-
 csharelist.h           |    3 
 ctransfer.cpp          |  116 ++++++---
 ctransfer.h            |    2 
 cuserlist.cpp          |   21 -
 cutils.cpp             |   72 +++++
 cutils.h               |    2 
 dclib.cpp              |    4 
 dclib.h                |    2 
 dcobject.h             |   25 +
 72 files changed, 2737 insertions(+), 736 deletions(-)

valknut:

 dcchat.cpp                      |  383 ++++++++++++++---
 dcchat.h                        |   43 +-
 dcclient.cpp                    |  257 +++++++-----
 dcclient.h                      |   25 -
 dcconfig.cpp                    |  132 +++++-
 dcconfig.h                      |  147 ++++++
 dcconnectionmanager.cpp         |   24 -
 dcconnectionmanager.h           |    8 
 dcdebug.cpp                     |  266 ++++++++++--
 dcdebug.h                       |   12 
 dceditserver.cpp                |    3 
 dceditserver.h                  |    2 
 dcedittransfer.h                |    2 
 dcevent.cpp                     |    2 
 dcevent.h                       |   46 ++
 dcfilebrowser.cpp               |  853 +++++++++++++++++++++++++---------------
 dcfilebrowser.h                 |   86 +++-
 dcfiletool.cpp                  |   63 ++
 dcfiletransferinfo.cpp          |    4 
 dcfiletransferinfo.h            |    2 
 dcgeturl.cpp                    |    1 
 dcgeturl.h                      |    2 
 dcgui.cpp                       |   58 +-
 dcgui.h                         |    7 
 dchubfilter.h                   |    4 
 dchublistmanager.cpp            |  226 +++++++++-
 dchublistmanager.h              |   53 ++
 dchubprofile.cpp                |    7 
 dchubprofile.h                  |    2 
 dchubsearch.cpp                 |  113 +++--
 dchubsearch.h                   |    9 
 dciconloader.cpp                |    4 
 dciconloader.h                  |    2 
 dcmenuhandler.cpp               |    2 
 dcoptions.cpp                   |  474 ++++++++++++++++++----
 dcoptions.h                     |   28 +
 dcsplash.cpp                    |   14 
 dcsplash.h                      |    2 
 dcspy.cpp                       |   28 -
 dcspy.h                         |    2 
 dctransferview.cpp              |  111 +----
 dctransferview.h                |    4 
 dctranslator.cpp                |  490 +++++++++++++++++-----
 dctranslator.h                  |   43 +-
 dcupdatemanager.cpp             |    4 
 dcupdatemanager.h               |    2 
 dcusercommandeditor.cpp         |  298 +++++++++++++
 dcusercommandeditor.h           |   62 ++
 dcuserslist.cpp                 |   14 
 dcuserslist.h                   |    5 
 main.cpp                        |  168 ++++++-
 ui/DCDialogAbout.ui             |    2 
 ui/DCDialogChat.ui              |   10 
 ui/DCDialogFileBrowser.ui       |   26 -
 ui/DCDialogHubListManager.ui    |   46 ++
 ui/DCDialogHubSearch.ui         |    2 
 ui/DCDialogOptions.ui           |  672 ++++++++++++++++++++-----------
 ui/DCDialogUserCommandEditor.ui |  220 ++++++++++
 ui/cdialogmessage.h             |    2 
 ui/dcwidget.cpp                 |    2 
 ui/dcwidget.h                   |    4 
 61 files changed, 4220 insertions(+), 1365 deletions(-)

A large number of bug fixes, including fixing the build system to not produce broken dclibs. Folder search results, massively fixed and improved /rebuild command, more columns for the public hubs listing, filelist decompression moved out of dclib into valknut, threading for chat commands, nick tab completion improvements. Encoding changed from using UTF-8 to using the local system encoding (which almost always is UTF-8). The built in translator was almost completely re-written.

And the bug ruining the Qt4 version was finally tracked down and fixed, so 0.4.0 using Qt4 was released.

0.3.15 - 15/06/2008

dclib:

 cclient.cpp            |   48 ++--
 cclient.h              |    6 
 cconfig.cpp            |   56 ++++-
 cconfig.h              |   31 ++
 cconnectionmanager.cpp |   12 -
 cdcproto.cpp           |  204 +++++++++++--------
 cdcproto.h             |    4 
 cdownloadmanager.cpp   |  262 +++++++++++++++---------
 cfilehasher.cpp        |   39 ++-
 cfilemanager.cpp       |  103 ++++++---
 chttp.cpp              |   11 -
 chublistmanager.cpp    |   12 -
 chublistmanager.h      |    4 
 clistenmanager.cpp     |    2 
 cmessagehandler.cpp    |  111 +++++-----
 cmessagehandler.h      |    4 
 core/casyncdns.cpp     |    2 
 core/cdir.cpp          |   22 ++
 core/cdir.h            |    2 
 core/cmanager.cpp      |    3 
 core/csocket.cpp       |    3 
 core/cstring.cpp       |   94 +++++---
 core/cstring.h         |   18 -
 core/cxml.cpp          |  114 +++++-----
 core/cxml.h            |   25 +-
 cpluginmanager.cpp     |    2 
 cquerymanager.cpp      |   66 ++++--
 csearchindex.cpp       |  520 ++++++++++++++++++++++++++++++++++++++-----------
 csearchindex.h         |   82 +++++--
 csearchmanager.cpp     |   11 -
 csharelist.cpp         |    8 
 ctransfer.cpp          |   21 +
 cuserlist.cpp          |  162 +++++++--------
 cuserlist.h            |   15 +
 cutils.cpp             |   12 -
 35 files changed, 1403 insertions(+), 688 deletions(-)

valknut:

 about.h                         |    4 
 dcchat.cpp                      |  280 ++++++++++++++++---------
 dcchat.h                        |    2 
 dcclient.cpp                    |  442 ++++++++++++++++++++++++++++++++--------
 dcclient.h                      |   21 +
 dcconfig.cpp                    |  117 ++++++++--
 dcconfig.h                      |   31 +-
 dcconnectionmanager.cpp         |   10 
 dcconnectionmanager.h           |   13 +
 dcdebug.cpp                     |   36 +--
 dceditserver.cpp                |   24 ++
 dcedittransfer.cpp              |    2 
 dcfilebrowser.cpp               |  176 +++++++++++++--
 dcfiletool.cpp                  |   14 -
 dcfiletransferinfo.cpp          |    6 
 dcgui.cpp                       |   38 ++-
 dchublistmanager.cpp            |    1 
 dchubprofile.cpp                |   27 ++
 dchubsearch.cpp                 |  159 ++++++++++++--
 dciconloader.cpp                |   24 +-
 dcmenuhandler.cpp               |    6 
 dcmenuhandler.h                 |    6 
 dcoptions.cpp                   |  323 ++++++++++++++++++++++++-----
 dcoptions.h                     |   21 +
 dcspy.cpp                       |   12 -
 dctransferview.cpp              |  211 +++++++++++++++++--
 dctransferview.h                |   16 +
 dctranslator.cpp                |   19 +
 dcupdatemanager.cpp             |    2 
 dcusercommandeditor.cpp         |  126 ++++++-----
 dcusercommandeditor.h           |    4 
 main.cpp                        |    9 
 ui/DCDialogEditServer.ui        |   16 +
 ui/DCDialogHubProfile.ui        |   16 +
 ui/DCDialogOptions.ui           |  176 ++++++++++++++-
 ui/DCDialogUserCommandEditor.ui |    4 
 36 files changed, 1913 insertions(+), 481 deletions(-)

User commands, handling components of search queries shorter than 3 characters, and starting uploads during filelist refresh. Many memory leak fixes. There were a very large number of minor changes, mostly aimed at improving performance. Specifically, doing "s = s1 + s2 + s3" with dclib's CString is slower than "s = s1; s += s2; s += s3" (with Qt's QString the difference is much less). Performance of dclib's CStringList (a map, not a list of strings) was found to be poor, so ones used for the userlist were replaced with a std::map in dclib and a QDict in Qt3 valknut. Qt4's got replaced earlier with a QHash during the Qt4 porting. The first Qt4 version had some additional bugs, which got fixed.

0.3.16 - 15/06/2008

dclib:

 cuserlist.cpp |   79 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++-
 cuserlist.h   |    7 +++++
 2 files changed, 85 insertions(+), 1 deletion(-)

valknut:

 dcclient.cpp |   35 +++++++++++++++++++++++++++++++++++
 1 file changed, 35 insertions(+)

Do not crash on empty nicks. Valknut will not display an item in the userlist for empty nicks.

0.3.17 - 21/06/2008

dclib:

 cclient.cpp            |   32 ----
 cclient.h              |   43 ++---
 cclientssl.h           |    3 
 cconfig.cpp            |  148 +++++++++----------
 cconfig.h              |  132 ++++++++---------
 cconnectionmanager.cpp |   21 +-
 cconnectionmanager.h   |    2 
 cdcproto.cpp           |  132 ++++++++---------
 cdcproto.h             |    2 
 cdownloadmanager.cpp   |   76 ++++++----
 cdownloadmanager.h     |    6 
 cfilehasher.cpp        |   12 -
 cfilehasher.h          |    2 
 cfilemanager.cpp       |   31 +---
 clistenmanager.cpp     |   24 +--
 clistenmanager.h       |    2 
 core/cbytearray.cpp    |   34 ++++
 core/cconnection.cpp   |    2 
 core/cconnection.h     |    2 
 core/cdir.cpp          |   74 +++++++++
 core/cdir.h            |    2 
 core/ciconv.cpp        |   17 --
 core/ciconv.h          |   52 ++++++-
 core/clist.h           |    2 
 core/clisten.cpp       |   12 -
 core/clisten.h         |    4 
 core/csocket.cpp       |    7 
 core/csocket.h         |   25 ++-
 core/cssl.h            |   12 -
 core/cstring.cpp       |  194 +++++++++++++++++++++-----
 core/cstring.h         |   50 +++++-
 core/cstringlist.h     |    2 
 core/cxml.cpp          |  363 ++++++++++++++++++++++++++-----------------------
 core/cxml.h            |   24 ++-
 csearchindex.cpp       |    2 
 csearchindex.h         |    4 
 csearchmanager.cpp     |    1 
 csearchmanager.h       |    1 
 csearchsocket.h        |    4 
 ctransfer.cpp          |  133 +++++++++--------
 ctransfer.h            |   51 ++++--
 cuserlist.cpp          |   28 +--
 cuserlist.h            |    3 
 cutils.cpp             |   10 +
 cutils.h               |    2 
 dclib-ssl-use.h.in     |    7 
 dcobject.h             |    6 
 47 files changed, 1086 insertions(+), 712 deletions(-)

valknut:

 about.h                 |    5 +
 dcchat.cpp              |   41 ++++------
 dcchat.h                |    2 
 dcclient.cpp            |  153 ++++++++++++++++++---------------------
 dcclient.h              |    5 -
 dcconfig.cpp            |  185 ++++++++++++++++++++++++------------------------
 dcconfig.h              |  170 +++++++++++++++++++++-----------------------
 dcconnectionmanager.cpp |   48 ++++++------
 dcfilebrowser.cpp       |    8 +-
 dcfiletool.cpp          |   20 ++++-
 dcfiletool.h            |    2 
 dcgui.cpp               |    6 -
 dchublistmanager.cpp    |   12 +--
 dchublistmanager.h      |    2 
 dchubsearch.cpp         |   23 +++--
 dchubsearch.h           |    2 
 dciconloader.cpp        |    1 
 dciconloader.h          |    1 
 dcmenuhandler.cpp       |    8 ++
 dcmenuhandler.h         |    2 
 dcoptions.cpp           |  162 +++++++++++++++++++++---------------------
 dctransferview.cpp      |  127 +++++++++++++++++---------------
 dctransferview.h        |    2 
 dctranslator.cpp        |   23 +++--
 dctranslator.h          |    7 +
 dcupdatemanager.cpp     |   23 +----
 dcupdatemanager.h       |    2 
 main.cpp                |   22 ++---
 ui/DCDialogTransfer.ui  |   44 +++++++++++
 29 files changed, 588 insertions(+), 520 deletions(-)

Released soon after I realised I had made dclib 0.3.16's CString class somewhat unsafe, this release also featured further optimisations and increased used of TTH (instead of comparing by filesize). The diffstat is large because many CThreads used only as a mutex were replaced with CMutexes (CThread inherits CMutex), and the re-write to minimise use of dclib classes in valknut had begun.

0.3.18 - 09/07/2008

dclib:

 cclient.cpp            |  206 ++++++++++++++-------
 cclient.h              |   21 ++
 cclientssl.cpp         |   54 ++++-
 cclientssl.h           |    7 
 cconfig.cpp            |  419 +++++++++++++++++++++++++++++++++-----------
 cconfig.h              |   42 +++-
 cconnectionmanager.cpp |   48 +++--
 cconnectionmanager.h   |    9 
 cdcproto.cpp           |   52 ++++-
 cdcproto.h             |    8 
 cdownloadmanager.cpp   |  342 ++++++++++++++++++++++++++----------
 cdownloadqueue.cpp     |    4 
 cencrypt.cpp           |    2 
 cfilehasher.cpp        |   48 ++---
 cfilehasher.h          |    2 
 cfilemanager.cpp       |  465 ++++++++++++++++++++++++-------------------------
 cfilemanager.h         |   30 ++-
 chttp.cpp              |   25 +-
 chttp.h                |    2 
 chublistmanager.cpp    |  226 ++++++++++++++++++++---
 chublistmanager.h      |   20 +-
 clistenmanager.cpp     |   13 -
 cmessagehandler.cpp    |   74 +++++--
 cmessagehandler.h      |    2 
 core/casyncdns.cpp     |    2 
 core/cbase32.cpp       |    4 
 core/cbase32.h         |    4 
 core/cbase64.cpp       |    4 
 core/cbase64.h         |    4 
 core/cconnection.h     |    2 
 core/cdir.cpp          |  123 ++++++++++--
 core/cdir.h            |    7 
 core/cfile.cpp         |   10 -
 core/che3.cpp          |    2 
 core/che3.h            |    2 
 core/ciconv.cpp        |    4 
 core/clisten.h         |    2 
 core/clogfile.cpp      |   31 ++-
 core/clogfile.h        |    1 
 core/cobject.cpp       |   34 ---
 core/cobject.h         |   16 +
 core/csocket.cpp       |   88 ++++-----
 core/csocket.h         |   31 ++-
 core/cssl.cpp          |  180 +++++++++++++++++-
 core/cssl.h            |   39 ++--
 core/cstring.cpp       |   25 +-
 core/cstring.h         |    2 
 core/cstringhash.h     |   73 +++++++
 core/cxml.cpp          |   36 ++-
 core/czlib.cpp         |  122 +++++++-----
 core/czlib.h           |   13 -
 cpluginmanager.cpp     |    2 
 cpluginmanager.h       |    2 
 cquerymanager.cpp      |   33 +--
 cquerymanager.h        |    4 
 csearchindex.cpp       |   61 +++---
 csearchindex.h         |   11 +
 csearchmanager.cpp     |    8 
 csearchsocket.cpp      |    4 
 csharelist.cpp         |   17 -
 csharelist.h           |    4 
 ctransfer.cpp          |   66 +++---
 ctransfer.h            |    4 
 cuserlist.cpp          |    6 
 cutils.cpp             |   11 -
 dclib-ssl-use.h.in     |   18 +
 dclib-stl-use.h.in     |   25 ++
 dclib.cpp              |   14 -
 dclib.h                |   22 --
 dcobject.h             |   14 +
 dcos.h                 |   89 ---------
 dcos.h.in              |   88 +++++++++
 72 files changed, 2314 insertions(+), 1171 deletions(-)

valknut:

 dcchat.cpp                   |  865 +++++++++++++++++++------------------------
 dcchat.h                     |   69 +--
 dcclient.cpp                 |  350 +++++++++++------
 dcclient.h                   |    7 
 dcconfig.cpp                 |  197 ++++-----
 dcconfig.h                   |  104 +++--
 dcconnectionmanager.cpp      |    6 
 dcconnectionmanager.h        |    6 
 dceditserver.cpp             |   19 
 dcevent.cpp                  |   10 
 dcevent.h                    |   16 
 dcfilebrowser.cpp            |  281 -------------
 dcfilebrowser.h              |  101 -----
 dcfilebrowseritems.cpp       |   73 +++
 dcfilebrowseritems.h         |  119 +++++
 dcfilelistdecompressor.cpp   |  282 ++++++++++++++
 dcfilelistdecompressor.h     |   72 +++
 dcfiletool.cpp               |  130 ++++--
 dcfiletransferinfo.cpp       |    7 
 dcfriendobject.h             |   69 +++
 dcgui.cpp                    |  129 +++++-
 dcgui.h                      |    2 
 dcguiutils.cpp               |  150 +++++++
 dcguiutils.h                 |   72 +++
 dchubfilter.cpp              |    8 
 dchublistitems.cpp           |  188 +++++++++
 dchublistitems.h             |   94 ++++
 dchublistmanager.cpp         |  584 ++++++++++++++++++-----------
 dchublistmanager.h           |   76 +--
 dchubprofile.cpp             |   19 
 dchubsearch.cpp              |  112 +++--
 dchubsearch.h                |   13 
 dcoptions.cpp                |  305 ++++++++-------
 dcoptions.h                  |   22 -
 dcshellcommandrunner.cpp     |  127 ++++++
 dcshellcommandrunner.h       |   63 +++
 dcspy.cpp                    |   13 
 dctransferview.cpp           |  854 +++++++++++++++++++++---------------------
 dctransferview.h             |  109 +----
 dctransferviewitems.h        |  131 ++++++
 dctranslator.cpp             |    2 
 dcusercommandeditor.cpp      |   24 -
 dcuserslist.cpp              |  313 +++++++--------
 dcuserslist.h                |   79 +--
 main.cpp                     |   22 -
 ui/DCDialogHubListManager.ui |  118 ++++-
 ui/DCDialogHubSearch.ui      |    6 
 ui/DCDialogOptions.ui        |   33 +
 ui/DCDialogTransfer.ui       |   42 +-
 ui/DCDialogUsersList.ui      |    6 
 ui/dcwidget.cpp              |   38 -
 ui/dcwidget.h                |   27 -
 52 files changed, 3995 insertions(+), 2569 deletions(-)

Released soon after a critical problem introduced in 0.3.14 was discovered, dclib also featured improved XML hublist parsing, and (different) problems with zero and one byte files were fixed. You can now manually adjust the order of the bookmarked hubs. You can also hide/show userlist columns and the system tray icon without opening or closing things.

This is the first dclib release to make use of a std::tr1::unordered_set which replaces a CStringList used to ensure each file in your share has a unique name (symlinks...).

Also various valknut source files were split up, which explains why the valknut diff is huge.

0.3.19 - 07/08/2008

dclib:

 ccasefolder.cpp                  |  249 ++++++
 ccasefolder.h                    |   65 +
 cclient.cpp                      |  266 ++++--
 cclient.h                        |   26 
 cclientssl.cpp                   |   66 -
 cconfig.cpp                      | 1543 +++++++++++++++++++--------------------
 cconfig.h                        |  104 +-
 cconnectionmanager.cpp           |  142 ++-
 cconnectionmanager.h             |   21 
 cdcproto.cpp                     |  135 ++-
 cdcproto.h                       |   11 
 cdownloadmanager.cpp             |  862 +++++++++++----------
 cdownloadmanager.h               |   33 
 cdownloadqueue.cpp               |   77 +
 cdownloadqueue.h                 |    4 
 cencrypt.cpp                     |    2 
 cfilehasher.cpp                  |   76 -
 cfilehasher.h                    |    8 
 cfilemanager.cpp                 |  480 +++++++++---
 cfilemanager.h                   |   43 -
 chttp.cpp                        |   42 -
 chublistmanager.cpp              |  158 ++-
 chublistmanager.h                |    8 
 clistenmanager.cpp               |  201 +++--
 clistenmanager.h                 |   61 +
 cmessagehandler.cpp              |  593 ++++++++------
 cmessagehandler.h                |   74 -
 core/casyncdns.cpp               |   24 
 core/cbase64.cpp                 |    2 
 core/cbytearray.cpp              |   14 
 core/cbz.cpp                     |   12 
 core/cconnection.cpp             |   38 
 core/cconnection.h               |   10 
 core/cdir.cpp                    |  206 ++---
 core/cdir.h                      |   20 
 core/cfile.cpp                   |   16 
 core/che3.cpp                    |    6 
 core/ciconv.cpp                  |   10 
 core/clisten.h                   |    2 
 core/clogfile.cpp                |    6 
 core/cmanager.cpp                |    2 
 core/cplugin.cpp                 |    2 
 core/cplugin.h                   |   21 
 core/csocket.cpp                 |  295 ++++---
 core/csocket.h                   |   21 
 core/cssl.cpp                    |   63 +
 core/cssl.h                      |    4 
 core/cstring.cpp                 |   62 +
 core/cstring.h                   |   30 
 core/cstringlist.cpp             |   20 
 core/cstringlist.h               |   10 
 core/cthread.cpp                 |    8 
 core/cthread.h                   |    2 
 core/cxml.cpp                    |  376 ++++++++-
 core/cxml.h                      |  139 ++-
 core/czlib.cpp                   |   32 
 core/types.h                     |   40 -
 cpluginmanager.cpp               |   46 -
 cpluginmanager.h                 |    4 
 cquerymanager.cpp                |  300 +++----
 cquerymanager.h                  |   16 
 csearchindex.cpp                 |  587 +++++---------
 csearchindex.h                   |  123 +--
 csearchmanager.cpp               |  152 ++-
 csearchmanager.h                 |   11 
 csearchsocket.cpp                |   30 
 csearchsocket.h                  |    5 
 csharelist.cpp                   |  138 +++
 csharelist.h                     |   17 
 csharetreefolder.cpp             |  173 ++++
 csharetreefolder.h               |   99 ++
 ctransfer.cpp                    |  442 ++++++-----
 ctransfer.h                      |    9 
 cuserlist.cpp                    |   72 -
 cuserlist.h                      |    2 
 cutils.cpp                       |   19 
 cutils.h                         |    2 
 dclib.cpp                        |   27 
 dclib.h                          |   10 
 dcobject.h                       |  115 +-
 dcos.h.in                        |   12 
 unicode/gen-case-folding-src.cpp |  107 ++
 82 files changed, 5648 insertions(+), 3713 deletions(-)

valknut:

 dcchat.cpp                      | 1060 +++++++++++++++----------------
 dcchat.h                        |   25 
 dcclient.cpp                    |  366 +++++-----
 dcclient.h                      |   14 
 dcconfig.cpp                    | 1366 ++++++++++++++++++++++------------------
 dcconfig.h                      |  122 ++-
 dcconnectionmanager.cpp         |  121 +--
 dcconnectionmanager.h           |   33 
 dcdebug.cpp                     |   86 +-
 dceditserver.cpp                |   50 +
 dceditserver.h                  |    4 
 dcedittransfer.cpp              |    2 
 dcedittransfer.h                |    2 
 dcfilebrowser.cpp               |  290 ++++----
 dcfilebrowser.h                 |   16 
 dcfilelistdecompressor.cpp      |   23 
 dcfiletool.cpp                  |  262 +++----
 dcfiletool.h                    |   30 
 dcfiletransferinfo.cpp          |   68 +
 dcfiletransferinfo.h            |   12 
 dcfriendobject.h                |    8 
 dcgeturl.cpp                    |  139 ----
 dcgeturl.h                      |   64 -
 dcgui.cpp                       |  679 ++++++++++---------
 dcgui.h                         |   36 -
 dcguiutils.cpp                  |   20 
 dcguiutils.h                    |    6 
 dchubfilter.cpp                 |    1 
 dchubfilter.h                   |    2 
 dchublistitems.cpp              |    6 
 dchublistmanager.cpp            |  200 ++---
 dchublistmanager.h              |    4 
 dchubprofile.cpp                |   58 -
 dchubsearch.cpp                 | 1084 ++++++++++++++++++++-----------
 dchubsearch.h                   |   80 +-
 dciconloader.cpp                |   24 
 dciconloader.h                  |    9 
 dcmenuhandler.cpp               |    4 
 dcmenuhandler.h                 |    3 
 dcoptions.cpp                   |  742 ++++++++++++---------
 dcoptions.h                     |   21 
 dcpluginmanager.cpp             |    2 
 dcshellcommandrunner.cpp        |   28 
 dcspy.cpp                       |    4 
 dcspy.h                         |    2 
 dctransferview.cpp              |  325 +++------
 dctransferview.h                |    9 
 dctranslator.cpp                |   32 
 dcupdatemanager.cpp             |  691 --------------------
 dcupdatemanager.h               |  127 ---
 dcusercommandeditor.cpp         |   72 +-
 dcuserslist.cpp                 |   94 +-
 dcuserslist.h                   |    2 
 main.cpp                        |  165 ++--
 ui/DCDialogAskDownloadMode.ui   |   92 ++
 ui/DCDialogConnectionManager.ui |   39 -
 ui/DCDialogDebug.ui             |    2 
 ui/DCDialogEditServer.ui        |    3 
 ui/DCDialogFileTransferInfo.ui  |   10 
 ui/DCDialogGetURL.ui            |   65 -
 ui/DCDialogHubListManager.ui    |  330 +++------
 ui/DCDialogHubProfile.ui        |    4 
 ui/DCDialogHubSearch.ui         |  367 +++-------
 ui/DCDialogOptions.ui           |  553 ++++++++--------
 ui/DCDialogUpdateManager.ui     |  124 ---
 ui/cfloatspinbox.cpp            |    8 
 ui/dcwidget.cpp                 |   30 
 ui/trayicon.cpp                 |    6 
 ui/trayicon_win.cpp             |   10 
 ui/trayicon_x11.cpp             |    4 
 70 files changed, 4896 insertions(+), 5446 deletions(-)

New features are mainly StrongDC compatible encrypted transfers, partial list uploads, and the system responsible for responding to searches was replaced. Valknut now allows multiple search windows but you can only have one search running at a time, regardless of hubs.

The diff is very large because the defines of TRUE and FALSE were removed and replaced with built-in true/false.

0.3.20 - 04/09/2008

dclib:

 ccasefolder.cpp        |   57 +--
 ccasefolder.h          |   15 
 cclient.cpp            |   99 +++--
 cclient.h              |   41 --
 cclientssl.cpp         |   27 -
 cclientssl.h           |    9 
 cconfig.cpp            |  332 ++++++++----------
 cconfig.h              |   70 ++-
 cconnectionmanager.cpp |  114 +++---
 cconnectionmanager.h   |   21 -
 cdcproto.cpp           |  341 +++++--------------
 cdcproto.h             |    8 
 cdownloadmanager.cpp   |  731 +++++++++++++++++++++++-----------------
 cdownloadmanager.h     |  104 +++--
 cdownloadqueue.cpp     |  189 ++++++++--
 cdownloadqueue.h       |  100 ++---
 cencrypt.cpp           |    5 
 cencrypt.h             |   17 
 cfilehasher.cpp        |   64 ++-
 cfilehasher.h          |   22 -
 cfilemanager.cpp       |   58 +--
 cfilemanager.h         |   16 
 chttp.cpp              |   36 --
 chttp.h                |   25 -
 chublistmanager.cpp    |   41 +-
 chublistmanager.h      |   19 -
 clistenmanager.cpp     |   31 -
 clistenmanager.h       |   23 -
 cmessagehandler.cpp    |  199 +++++------
 cmessagehandler.h      |   73 +---
 core/casyncdns.cpp     |   46 +-
 core/casyncdns.h       |   20 -
 core/cbase32.cpp       |    8 
 core/cbase32.h         |   18 -
 core/cbase64.cpp       |    8 
 core/cbase64.h         |   18 -
 core/cbytearray.cpp    |    4 
 core/cbytearray.h      |    5 
 core/cbz.cpp           |    6 
 core/cbz.h             |   13 
 core/ccallback.cpp     |   68 ---
 core/ccallback.h       |  109 ++++--
 core/cconnection.cpp   |   66 +--
 core/cconnection.h     |   12 
 core/cdir.cpp          |  345 +++++++++++++------
 core/cdir.h            |   22 -
 core/cfile.cpp         |  141 +++++++
 core/cfile.h           |   22 -
 core/che3.cpp          |   18 -
 core/che3.h            |    4 
 core/ciconv.cpp        |    4 
 core/ciconv.h          |    5 
 core/clist.cpp         |   19 -
 core/clist.h           |   28 -
 core/clisten.cpp       |   10 
 core/clisten.h         |   15 
 core/clogfile.cpp      |   42 --
 core/clogfile.h        |   12 
 core/cmanager.cpp      |   35 +
 core/cmanager.h        |   17 
 core/cmutex.cpp        |   94 +++++
 core/cmutex.h          |   46 ++
 core/cnetaddr.cpp      |  858 ++++++++++++++++++++++++++++++++++++++++++++++++
 core/cnetaddr.h        |   91 +++++
 core/cobject.h         |   43 --
 core/cplugin.cpp       |   38 --
 core/cplugin.h         |   13 
 core/csingleton.cpp    |   23 -
 core/csocket.cpp       |  874 ++-----------------------------------------------
 core/csocket.h         |  144 --------
 core/cssl.cpp          |   74 +++-
 core/cssl.h            |   26 +
 core/cstring.cpp       |  363 ++++++++------------
 core/cstring.h         |   40 +-
 core/cstringlist.cpp   |  295 ----------------
 core/cstringlist.h     |  315 ++++++++++++++++-
 core/cthread.cpp       |   86 ----
 core/cthread.h         |   33 -
 core/ctraffic.h        |  156 ++++++++
 core/cxml.cpp          |   44 +-
 core/cxml.h            |    5 
 core/czlib.cpp         |    8 
 core/czlib.h           |   17 
 core/filecopy.cpp      |  233 -------------
 core/filecopy.h        |    9 
 core/platform.cpp      |    4 
 cpluginmanager.cpp     |    6 
 cpluginmanager.h       |   10 
 cquerymanager.cpp      |   65 +--
 cquerymanager.h        |   54 +--
 csearchindex.cpp       |   17 
 csearchindex.h         |    5 
 csearchmanager.cpp     |   65 +--
 csearchmanager.h       |   39 +-
 csearchsocket.cpp      |   11 
 csearchsocket.h        |   13 
 csharelist.cpp         |   55 +--
 csharelist.h           |   15 
 csharetreefolder.cpp   |    3 
 csharetreefolder.h     |    5 
 ctransfer.cpp          |   40 +-
 ctransfer.h            |   16 
 cuserlist.cpp          |    9 
 cuserlist.h            |    9 
 cutils.cpp             |   41 +-
 cutils.h               |   13 
 dclib.cpp              |    2 
 dclib.h                |    3 
 dcobject.cpp           |  493 +++++++++++++++++++++++++++
 dcobject.h             |  563 ++++++-------------------------
 dcos.h.in              |   11 
 111 files changed, 4894 insertions(+), 4628 deletions(-)

valknut:

 dcapplicationevents.cpp          |    3 
 dcapplicationevents.h            |    5 
 dcchat.cpp                       |  224 +----
 dcchat.h                         |    9 
 dcclient.cpp                     |  474 ++++++-----
 dcclient.h                       |   18 
 dcconfig.cpp                     |  238 ++---
 dcconfig.h                       |   59 -
 dcconnectionmanager.cpp          |  222 ++---
 dcconnectionmanager.h            |   17 
 dcdebug.cpp                      |  187 ++--
 dcdebug.h                        |   11 
 dceditserver.cpp                 |   29 
 dceditserver.h                   |    2 
 dcedittransfer.cpp               |   12 
 dcedittransfer.h                 |    2 
 dcevent.cpp                      |   12 
 dcevent.h                        |   27 
 dcfilebrowser.cpp                |  207 ++++-
 dcfilebrowser.h                  |   27 
 dcfilebrowseritems.h             |    2 
 dcfilelistdecompressor.cpp       |   14 
 dcfiletool.cpp                   |   95 +-
 dcfiletool.h                     |    2 
 dcfiletransferinfo.cpp           |   37 
 dcgui.cpp                        |  458 +++++------
 dcgui.h                          |   57 -
 dcguiutils.cpp                   |    1 
 dchubfilter.cpp                  |   11 
 dchubfilter.h                    |    3 
 dchublistmanager.cpp             |   84 --
 dchublistmanager.h               |   20 
 dchubprofile.cpp                 |    6 
 dchubsearch.cpp                  |  288 ++++---
 dchubsearch.h                    |   26 
 dciconloader.cpp                 |    7 
 dciconloader.h                   |    4 
 dcmenuhandler.cpp                |   18 
 dcmenuhandler.h                  |    1 
 dcoptions.cpp                    |  521 +++++-------
 dcoptions.h                      |   34 
 dcpluginmanager.cpp              |    4 
 dcsplash.cpp                     |   42 -
 dcsplash.h                       |   10 
 dcspy.cpp                        |    8 
 dcspy.h                          |   10 
 dctransferview.cpp               |  332 ++++++--
 dctransferview.h                 |   11 
 dctranslator.cpp                 |  106 --
 dctranslator.h                   |   11 
 dcusercommandeditor.cpp          |   13 
 dcuserslist.cpp                  |   23 
 dcuserslist.h                    |    8 
 main.cpp                         |   31 
 ui/DCDialogChat.ui               |    2 
 ui/DCDialogClient.ui             |    2 
 ui/DCDialogDebugSettings.ui      |  152 +++
 ui/DCDialogEditServer.ui         |   14 
 ui/DCDialogForceMove.ui          |  114 ++
 ui/DCDialogHubFilter.ui          |   14 
 ui/DCDialogOptions.ui            | 1569 +++++++++++++++++----------------------
 ui/DCDialogTranslatorSettings.ui |  200 ++++
 ui/DCDialogUserCommandEditor.ui  |   98 ++
 ui/DCDialogUserCommandLines.ui   |  144 +++
 ui/cdialogmessage.cpp            |    4 
 ui/cdialogpicturemap.cpp         |    4 
 ui/cfloatspinbox.cpp             |    2 
 ui/dcqlabel.cpp                  |   39 
 ui/dcqlabel.h                    |   49 +
 ui/dcwidget.cpp                  |    6 
 ui/dcwidget.h                    |   10 
 71 files changed, 3629 insertions(+), 2877 deletions(-)

A bugfix release also featuring manually adjustable segment size and downloading folders from search.

The diff is again very large, due to a lot of code cleanup. It does show a lot of code moving from csocket into new cnetaddr. The many changes to cdownloadmanager were just syntax changes for the new cstringlist. The options dialog ui changes were mainly transfer settings split into more tabs.