v0.3.5  
  20.08.2004 MZ: gcc 3.4 fixes, some other minor things
  19.08.2004 MZ: More consistent tracking of the marked files, their progress, etc
  12.08.2004 MZ: Fixed problem with unprintable chars in terminal, fixed pipe issue 
                 with system command
  09.08.2004 MZ: Gwebcache bug fixed
             MZ: Added a property to disable redirect following in gwebcache support
  29.07.2004 MZ: Uploads parse URLs more correctly
  19.01.2004 MZ: Upload range header fix
  10.01.2004 MZ: Initial GGEP support
  02.12.2003 MZ: Support for the BYE message
  28.11.2003 MZ: Cookies now support the path attribute, temlate changed respectively
  21.10.2003 MZ: Stuck connections reported by Michael should be fixed now
  14.10.2003 MZ: Crash in gnudirector fixed
  29.09.2004 MZ: Support for "MakredFiles": we keep track of all files we have
                 ever touched.
  27.09.2003 MZ: README updated. Util added to the build tree.
  17.09.2003 MZ: Finally finished the documentation of mutella's options.
                 Some options have neen renamed, appropriate migration mechanism
                 has been implemented at last :-)
  26.08.2003 MZ: Added a feature "WhiteList" to guarantee upload slots to
                 given IPs or nets  
  07.05.2003 MZ: TString memory allocation updated (made less economical, but
                 hopefully causing less fragmentation)
  06.05.2003 MZ: 'setadd' and 'setremove' commands for HTTP UI implemented
                 template updated accordingly
  04.05.2003 MZ: Access settingd via HTTP UI. 'set' command works, 'set+'
                 is yet to be done.
                 Fixed crach in HTTP UI
  29.04.2003 MZ: Uploads must support now "Connection: KeepAlive"
                 Multiple fixes in uploads to reduce resource utilisation
                 and memory fragmentation
  27.04.2003 MZ: Sorting of searches in HTTP UI
             MZ: Bugfixes in HTTP UI
  26.04.2003 MZ: Download rate limiting
             MZ: Local socket is deleted on exit
             MZ: Native daemon mode
             MZ: Few more command line options
             MZ: 'leave' command in text mode interface
             MZ: Dont remember what else I was doing these days
  03.04.2003 MZ: --with-sgi-stl configure option added
  02.04.2003 MZ: Hacked the terminal UI to enable external stop command
  31.03.2003 MZ: Local socket text-mode interface added. 
             MZ: Util directory added for useful scripts and small
                 programs
             MZ: Small C program , which enables easy communication
                 with the unix socket UI placed in util
  27.03.2003 MZ: More diagnistics in MShareThread::GetIndexBySha1()
             MZ: Separated text-mode command interpreter from the
                 terminal-mode UI
             MZ: Started to implement unix socket text-mode UI
             MZ: Fixed filenames of auto-searches
  06.03.2003 MZ: Merged in GWebCache patch which preserves URL's case
             MZ: Experimental implementation of the "known files" database
             MZ: Searches rewritten to allow more flexible grouping and
                 improve performance
             MZ: Re-search problem fixed. Should please the GDF.
v0.4.3
  28.01.2003 MZ: We now submut client and version information to gwebcaches
v0.4.3-rc2
  15.01.2003 MZ: Repair stuck at 100% downloads (or to be more exact their
                 partial files) on mutella's start.
             MZ: Less GCC 3.x warnings
             MZ: Configure check for nanosleep fixed.
v0.4.3-rc1
  17.11.2002 MZ: Configure checks for sys/int_types.h
             MZ: Configure checks for zlib
             MZ: Remote UI fixed to support properly alternative RemoteDir
             MZ: Ultrapeer (un)election made smoother
             MZ: Various patches applied
             MZ: DynDnsFirewall option added for firewalls which change IPs
  16.11.2002 MZ: Cookie support in remote-ui. Now browther always goes forward
                 and never back which forces reloads of the modified pages
  15.11.2002 MZ: Uploads now support URI requests and also can send files not to
                 the very end
  13.11.2002 MZ: ChangeTime removed from share_hash cache. File format changed!
             MZ: URI requests instead of /get/x/ for BS
  11.11.2002 MZ: Some kind of download queuing
  08.11.2002 MZ: Bug fixed in Blacklist, when overlapping IPs and subnets were
                 added. Now Blacklist compacts itself automatically and must work
  07.11.2002 MZ: Version number incremented to make distiction with widespread
                 CVS copy of 0.4.2 which still had connection problems
v0.4.2
  06.11.2002 MZ: Storing of hasing results between sessions
  05.11.2002 MZ: Sha1 hashing of local file (no caching for repeated scans yet)
  03.11.2002 MZ: Ultrapeer-leaf mode works! Ultrapeer mode still need attention
  28.10.2002 MZ: Fixed bug in MAsyncSoclet which caused improper callbacks
                 observed in push uploads.
  26.10.2002 MZ: Started to rewrite GnuNode (thanks to Gnucleus) to introduce
                 ultrapeer support.
  18.10.2002 MZ: More debug diagnostics in GnuNode
  17.10.2002 MZ: Downloads should not hang anymore when the remote peer sends
                 us more data than we asked for.
                 More diagnostic traces in uploads
  15.10.2002 MZ: Looks like I got 'em working!
  14.10.2002 MZ: Uploads and downloads seem to work again (but they
                 still require work)
  13.10.2002 MZ: Radical rewrite of MAsyncFile. Expect problems
             MZ: Adoptation of MDown*** to work with the new
                 incarnation of MAsyncFile
  09.10.2002 MZ: Upload logging
                 Blacklist accepts subnets
  08.10.2002 MZ: General purpose logging centre (separate thread)
  07.10.2002 MZ: Async DNS (experimental)
  05.10.2002 MZ: GnuWebCache client support
  24.09.2002 MZ: Downloads fixes to somehow resolve the "almost-done" problem
  19.09.2002 MZ: Connections repaired to support new host-cache format
  19.09.2002 MZ: HTTP header fixed for Content-Range
  31.07.2002 MZ: Added 'erase' command to delete searches and partial files.
                 Not yet added to the HTML template. Not tested thoroughly.
v0.4.1
  07.07.2002 MZ: Experiments with MAsyncSocket to sort the sockets by
                 activity
             MZ: 'loop' option added to the 'info' command    
  06.07.2002 MZ: Cygwin fixes
  28.06.2002 MZ: Performance tuning for searches
             MZ: Added support for user auto-get searches
             MZ: Approximate size matching is now possible for user searches
  26.06.2002 MZ: Share download directory (with no sub-directories). New
                 downloaded files are added automatically upon completion.
  24.06.2002 MZ: Clever removal of ineffective connections (the ones that
                 don't send us query-replies). Median rate is used as a
                 measure of *what-is-good*.
  23.06.2002 MZ: Removed 'GroupByName' and 'GroupBySize' options
             MZ: Modified grouping algorithm (made more agressive)
             MZ: Got rid of vectors in searches. Should be saving great
                 deal of memory now.
  21.06.2002 MZ: New very accurate and effective bandwidth limiting for
                 connections.
  20.06.2002 MZ: List-type options are now supported.
                 'set+' and 'set-' commands are added to add and remove items
             MZ: Blacklist added to ignore results by IP (conntrolled by
                 "BlackListActive and "BlackList" options)
             MZ: Word filter added to ignore results, containing offensive
                 words (conntrolled by "WordFilterActive" and "WordFilter"
                 options)             
  19.06.2002 MZ: Crash fixed in downloads when parsing the handshake
                 from a very slow connection
             MZ: Common messaging mechanism is used in share thread
             MZ: Set-type propertyes just introduced    
v0.4
  11.06.2002 MZ: Cleaning up headers and sources. No content changed just
                 various reallocations
  09.06.2002 MZ: Nodes now calculate more in/out statistics like packets
                 in/out per second and number of query-reply packets per
                 second. New tags for web-ui (#NODEPACKIN# #NODEPACKOUT#
                 #NODEREPLYIN#) added
             MZ: GnuDirector makes use of query-reply-rate and periodically
                 removes the node with the lowest rate.
  08.06.2002 MZ: MaxPerFileUploads variable added to enable sharing both
                 rare and popular content
             MZ: Nodes now report more realistic rates (averaged over last
                 3 minutes)
  07.06.2002 MZ: Downloads now, upon fail, report amount of data received
                 in this effort
             MZ: MaxDownloads now should have some effect. Not yet tested
                 however
             MZ: Host cacher (cache) reingenered. Second cache added, which
                 collects the hosts, to which we have succeeded connecting
             MZ: The cache of 'good' hosts made persistent. Should improve
                 connection speed on startup greatly
  28.05.2002 MZ: Http access log (~/.mutella/htaccess.log) is not allowed
                 now to go back for more than one month.
  27.05.2002 MZ: Mean bug fixed, which caused crashes on BSD systems
                 when 'move' or 'edit' pages of HTML interface were
                 used. However, it seemed not to persist on Linux.
                 The cause was the effort to munmap() uninitialised
                 pointer (because of misprints in edit and move pages)
             MZ: configure now checks more properly for slist (Greg
                 have commented out to many lines IMHO)
             MZ: The requirement for readline 4.2 made optional. The
                 command and variable completion is disabled if readline
                 appear to be too old.
  26.05.2002 MZ: Man page edits
             MZ: Completion added for the 'color' and 'help' commands
  22.05.2002 MZ: Memory allocations reviewed in TString, new/delete replaced
                 with (re)alloc/free. Should not affect the release
             MZ: New assignment functions added to TString
             MZ: httpui: loopResults and loopGroups tries to predict required
                 buffer size to minimize reallocations
  19.05.2002 MZ: --enable-optimisation flag added to configure. Optimisation
                 is disabled by default due to observed crashes.
  18.05.2002 MZ: Const cast added in conversions.cpp in fake_hostent()
             MZ: Multiple changes to makefiles in order to get make install
                 working
             MZ: Check for compilers moved up in configure.in 'cos $CC is
                 used to check for cygwin, exe-suffix and so on.
  15.05.2002 MZ: Added sort-by-speed option to the results display in the
                 HTTP ui.
             MZ: disabled unused SIGSEV handlers in main.cpp
  30.04.2002 GB: Checked in Alex Kittenberger's .cvsignore patch
             GB: Moved license file from COPYING to LICENSE.
             GB: Updated all headers to contain GNU license note.
             GB: configure will look for poll() in libpoll.
             GB: Updated version to 0.4.0
  29.04.2002 GB: Tagged 0.39b as MUTELLA_0_39_b_RELEASE
             GB: Correcting TRUE/FALSE predefined issue - no biggie.
             GB: Correcting color ugliness for Unix Navigator.
             GB: Move/Edit Search did not import the CSS correctly.
  22.04.2002 MZ: Checkboxes added to the results*.html pages to enable getting
                 multiple files with less hassle
  21.04.2002 GB: Checking in changes so that we allow for "http://*:*/remote"
                 to work.  Note the lack of trailing slash on the URL - that
                 previously broke the HTML and caused it to miss lots.
  20.04.2002 MZ: Missed some calls to usleep() which might have caused problems
                 on solaris.
  19.04.2002 GB: Man page added to CVS and install-man requirements added
                 to the build system.
  19.04.2002 GB: Build system cleanup.
  18.04.2002 GB: Build system cleanup.
             GB: Added online help for ReachableForPush and PushTimeout
             GB: Fixed makefile.dist
             GB: Modified configure.in to check for rl_get_screen_size in
                 GNU readline and fail with a complaint about requiring 4.2
                 if the existing readline library does not provide it.
  17.04.2002 GB: Adding image and module templates to build system for install.
  16.04.2002 GB: Checked in new nanosleep code and associated autoconf changes.
             GB: Checked in minor updates to HTTP interface.
             GB: Checked in code to add Date, Last-Modified, and Expires hdrs.
                 HTML will default to all set to 'now' while others report
                 a last modify date of 1970 and want to be kept around for an 
                 hour.
  15.04.2002 GB: Checking in the 'final' UI revision.  She's done, methinks.
  14.04.2002 GB: Work on HTML templates continues; changed to remove
                 the wee little baby-font sizes' hardcoding to 0.8.
             GB: Removing the last vestiges of Libtool stuff from configure
  12.04.2002 GB: Fixed the new build changes to work under 1.4/2.13.
             MZ: Fixed chash on non-existant file include (remote-ui)
  11.04.2002 GB: Brought mutella's build system up to date with
                 automake-1.6 and autoconf 2.52.  Hope it works.
  11.04.2002 MZ: 'e' is not treated anymore as a shortcut for 'exit'
                 <!--#include "html.part" --> supported by the http-ui
                 Support for 'Content-type:text/css'
                 "SaveStatePeriod" variable added to control auto-save-state
                 period (in minutes)
  10.04.2002 MZ: Correct http headers for gif,jpeg and png images in http-ui
  09.04.2002 GB: Adding a new mailing list where all CVS checkins will go.
  08.04.2002 MZ: ShareFilter option supported
  07.04.2002 MZ: Memory leaks in MGnuDownload fixed
                 Http-ui bugfixes
                 Sort new results by speed when updating downloaders
  05.04.2002 MZ: Crash in command completion fixed.
                 Small fixes in terminal-ui help system.
  04.04.2002 MZ: README updated to mention thing or two about http-ui
                 Access logging in http-ui
  03.04.2002 MZ: Simple http-ui template now is a part of a projest and is
                 being installed to ${prefix}/share/mutella/remote/template
                 by 'make install'
  29.03.2002 MZ: Event log support in remote ui
  27.03.2002 MZ: many small diffuse changes to get it to compile on solaris 8
                 with gcc-3.x
  26.03.2002 MZ: usleep() & sleep() replaced with xusleep() & xsleep()
                 Using std::queue removed because of name conflict on Solaris
                 Check for alloca.h added to configure
                 MAFContext::WaitForThreadsStop() fixed for write clients
                 Fixed missing \r\n in the 0.6 handshake
                 Fixed crash (I hope) in MDownloader::OnDataWritten()
  25.03.2002 MZ: GCC 3.x -- configure and namespaces should be fixed
  22.03.2002 MZ: -D_PROFILER is recognised. Because of the bug in gprof which
                 requires non-zero total CPU time to be spent in the main
                 thread of execution the thread model has to be altered when
                 -pg option is used
                 Applied patches required to compile on g++ 3.x
  21.03.2002 MZ: Huge CPU consumption by push downloads (removed FD_WRITE
                 from the select flags)
                 Basic authenitfication in HTML interface
  14.03.2002 MZ: Absolute time formating function added to common.*
                 Time printed in the event report
  13.03.2002 GB: Darwin (MacOSX) has a very broken implementation of the
                 gethostby* functions; a workaround has been provided and
                 included which will check names to see if they are IP
                 addresses and perform an inet_aton in its place; this will
                 eliminate most calls to gethostbyname(), as the great
                 majority of calls are for IP addresses.
  13.03.2002 MZ: configure.in fixed around processing '--debug' option
  11.03.2002 GB: autoconf now checks for existence of sys/poll.h
  11.03.2002 GB: autoconf now checks for existence of pthread_condattr_init
  11.03.2002 GB: autoconf now checks for existence of pthread_condattr_destroy
  11.03.2002 GB: autoconf no longer uses AC_CHECK_COMPILERS, which isn't
                 very forward-compatible or friendly to non-std environments.
                 this changes both configure.in and acinclude.m4.
  11.03.2002 GB: Adding "fakepoll.h" when sys/poll.h is not present.  This
                 version of poll, needed under environments like Darwin,
                 is implemented using select().
  11.03.2002 GB: Support for MacOS X/Darwin, Apple's flavor of BSD, is there.
  11.03.2002 GB: Fixed problem in define.h for systems who already define
                 MIN() and MAX() macros.
  11.03.2002 GB: People running automake 1.5 should be able to build the
                 project without difficulty; they must first, however,
                 remove the reference to bin_PROGRAMS = mutella which
                 occurs twice in mutella/Makefile.am - it may only appear
                 once.  (KDE environment gotcha)
  10.03.2002 MZ: Whole lot of empty lines in the end of source files
  09.03.2002 MZ: Fixed problem with 'last bit' in download
  08.03.2002 MZ: Fixed HTTP headers. Now we send HTTP/1.0 or HTTP/1.1
                 'move' & 'edit' support in HTML interface
  07.03.2002 MZ: Updated servent list
                 Move & edit commands added
  05.03.2002 MZ: DownloadItems loop in HTML interface
                 TagIDs are moved to defines, symbol has changed to #
  04.03.2002 MZ: Zero-repeat block in HTTP template
                 Wait for HTTP sockets to complete sending
  03.03.2002 MZ: Small bugfixes here and there (uiremote & download)
  02.03.2002 MZ: HTTP interface reviewed and made quite functional
  01.03.2002 MZ: Custom request handling added to MAsyncFile
  28.02.2002 MZ: Massive changes in gnudownload.
  08.02.2002 MZ: Remote HTTP interface -- first functional version
  02.02.2002 MZ: Substantial revision of MController to enable multiple UIs
                 MThread re-ingenered in an effort to add auto-deleting
                 threads
                 Fixed long standing problem with MThread::wait()
                 Fixed race condition in MWaitCondition::wait()/wakeAll()
  01.02.2002 MZ: General cleanup of the code, few functons and structures
                 changed their location
  31.01.2002 MZ: MGnuSock::OnReceive rewritten to enable request fragmentation
                 Terminal UI moved from mui.* to uiterminal.*. Class MUI made
                 abstract. Former MUI renamed to MUITerminal.
  30.01.2002 MZ: Basic support for command and variable name completion
                 CAsyncProxySocket class added to project (not used yet)
  29.01.2002 MZ: Experiments with "libtecla" to replace readline
v0.3.3
  24.01.2002 MZ: Storing searches between sessions
                 Small fixes here and there
  20.01.2002 MZ: Version 0.6 connection-reply debugged
                 Version 0.6 outbound connection support
  19.01.2002 MZ: "kill" command added
                 "ReachableForPush" setting added
                 MAsyncFile fixes (hopefully final)
  18.01.2002 MZ: Further work on MGnuUpload
                 Support for sections in options
                 "color" comand added
                 First moves towards event support
  17.01.2002 MZ: MAsyncFile fixes
                 MGnuUpload/MGnuDownload fixes
                 Push-uploads fixed (crash + incorrect function)
  12.01.2002 MZ: Color - continue
  11.01.2002 MZ: Color to the people!
                 "" and '' is regarded as empty string (set command)
  10.01.2002 MZ: Configuration migrated to .mutella
                 MUI revised
                 First effort to introduce colors/styles
  08.01.2002 MZ: API fixes, terminal UI re-coded with new API
                 Some asserts removed from MGnuDownload
  07.01.2002 MZ: Cleaning up the API between the UI and the network kernel
v0.3.2
  16.12.2001 MZ: Global LibC mutex abuse fixed in dir.cpp
                 AutoConnectSrvX variables added
  12.12.2001 MZ: General cleanup.
                 MGnuDownload debugging
                 mthread.h host type detection
  11.12.2001 MZ: Gnutella protocol v6 support for incomming
                 connections <not really tested yet>
  10.12.2001 MZ: MThread for Solaris
v0.3.1
  05.12.2001 MZ: Race condition in MAsyncFile is fixed (hopefuly)
  29.11.2001 MZ: Fixed race condition in MGnuUpload -- possible crash reason
                 Fixed pushed upload -- broken in v0.3
                 Fixed race condition in MGnuUpload -- possible crash reason
                 (fixs from 26.11 did not really fix the problem)
  27.11.2001 MZ: CygWin fixes -- now compiles with recent CygWin install
  26.11.2001 MZ: Possible crash reasons sort of fixed in GnuDownload
  24.11.2001 MZ: Exclusive searches
v0.3
  21.11.2001 MZ: BUGFIX: ExpandPath was missing in MGnuDownload::CheckFile
                 which resulted on some systems in creation of "~" directory
                 in the current path
  18.11.2001 MZ: Configure fixes for term_help.c
  17.11.2001 MZ: Help for options
                 Removed unused options
  15.11.2001 MZ: Warnings during compilation fixed
                 Non-persistent properties added
                 Terminal* props made non-persistent
                 Version command added
                 Conection bandwidth limiting
  11.11.2001 MZ: Pipe output of a command to other program (thanks to
                 Benjamin Charron)
                 Limiting number of incomming connections for each
                 subnet class. Improves network coverage.
                 Configure scripts to inclide -lcurses when needed by term_help.h
  01.11.2001 MZ: MGnuApload now uses MAsyncFile -- can share slow media
                 Paged output support
  29.10.2001 MZ: Optimized polling: FD_WRITE is removed from everywhere
                 where it is not needed.
v0.2
  17.10.2001 MZ: info command refined. doc updated.
  15.10.2001 MZ: configure script fixes -- seem to work on Solaris now
  13.10.2001 MZ: fixed stupid memory-leak in MAsyncSocket::Heartbeat
                 TString::format() coded to replace sprintf().. later.
                 Vendor ID is set to 'MUTE'
  11.10.2001 MZ: plugging MAsyncFile into download and upload objects
  10.10.2001 MZ: MAsyncFile now is functional
  08.10.2001 MZ: readline4 fix
                 'failed to stop thread' message removed
                 factor 10 improved help command
v0.1
  07.10.2001 MZ: `library' command added
                 UI output polishing
                 README modified
                 Various fixes
v0.1pre
  06.10.2001 MZ: initial release of v0.1
