# v 0.16   2001.10.03

- Further optimized library lookups to avoid useless matching operations
- Added two host caches: public.bearshare.net and gnotella.fileflash.com
- Was mistakenly using signed integer in GET requests for file indices
- Double check requested file names with those in our library for extra safety
- When download completes, remove all queued entries for same filename
- Results differing only by connection speed are now considered identical
- The payload size of query hits was written in native format, instead of LE!
- Optimized query hit packet construction, reducing mem fragmentation
- Now shows itself as "Gtk-Gnut" instead of "Gtk-Gnutella"
- Fixed important sharing bug where extensions were not matched for correctly
- Can now configure a max size for the host cache (defaults to 20480)
- Kicking policies for dup messages and high TTL now configurable
- Removed unneeded inclusion of <mcheck.h>
- Fixed broken "rm" in debian/rules, changed it to "rm -f"
- Show "<unparsed>" when results have an unparsed query hit trailer
- Ran all sources through "indent -kr", plus minimal reformating, ts=4 now

# v 0.15   2001.09.20

- No longer depends on having "glade" or "tcl" for building
- Try to simultaneously connect to as many hosts as permitted by min settings
- Can now stop and resume passive searches as well.
- Only resort to host catchers when host catch is empty
- Now uses 4 host catchers: router.limewire.com, connect[1..3].gnutellanet.com
- Fixed improper GUI dependency between min/max node connection settings
- Identify as a "modern" client in the GUID, handling protocol 0.4.
- Allocate node reception buffer once, not each time a >4K message is received.
- Avoid dropping replies on high TTL, adjust the field down
- Send back pongs and query hits using the hop count of request as TTL
  (since replies must be routed along the same path, it need not be greater)
- Kick out nodes sending us messages with TTL=0.
- Initial host catcher is now router.limewire.com.
- Ignore file count and sizes in pongs when high bits are set (obviously wrong!)

# v 0.14   2001.09.12

- New project admin Raphael Manfredi <Raphael_Manfredi@pobox.com>
- Integrated all pending (to date) patches on sourceforge.
- Fixed all memory leaks found by dmalloc.
- Fixed segmentation faults.
- Use more efficient pattern scanning to grep through the library file names
- Searches in local library now use begining-of-word matchings
- Configuration now saved in ~/.gtk-gnutella/config
- Many new configuration variables, none settable through GUI yet
- More efficient handling of host catching list to avoid long startup times
- Can limit uploads per IP address (from config file only)
- Better error reporting during read/write errors
- Show more information about connected nodes (TX/RX/Drop/Bad)
- Installed node kicking policies
- Avoid hammering hosts from which we download via smarter scheduling
- Handle upload and download resuming
- Uses much less CPU under stable operation, but can still be improved.
- Lots of other minor fixes and many hours of testing

# v 0.13   2001.05.25

- Searches now show client, busy and MP3 tag info
- Columns now saved correctly
- Downloads do not hammer host, wait 20 seconds+, same IP handled
- Downloads behave better and I found the segfault bug!
- Search select all feature added (config option)
- Search strict AND filter feature added (config option)
- Debug assist code added, prints hex, dbg variable added
- Some readme doc updates
- Client identifies itself properly as Gtk-Gnutella 'GTKG' to the net
- 503 and other returns handled better, queue is better
- Lots of other fixes and many hours testing

 stuff from Goswin:

- parse for any 2xx http header
- recognise 5xx busy headers
- check for non resuming clients
- don't download the same filename twice
- dequeue one download once a second in the main loop
- download_pickup_queued disabled
- move file from completed dir to partial dir when a bigger one with
  the same name is downloaded (both dirs should be on the same drive,
  otherwise the copying will take so long on big files that most
  connections will timeout).
- requeue on timeout
- don't remember that you gone into push mode, try a direct connect
  each time.
- accept long urls on uploads such as a proxy would send


# v 0.13	  2001.01.05

- File Sharing (woohoo!)
- force_local_ip fixed (more than one fix)
- Max simultaneous uploads
- gui_update_upload moved into main timer
- Autoconnect to gnutellahosts.com on startup
- Automatically connect to new hosts when below "atleast connections" 
- Configure option to discard non-routable ip's
- Solaris (maybe win23?) build fix
- Allow passive search results
- Ignore duplicate search results
- "never send push request" option
- "Jump to Downloads" switch added
- "Clear Results" button added to search screen
- Auto-repeat searches on new control connections
- All sorts of other random fixes
 
* v 0.13          2000.07.??

- 32 bits overflow when computing the size of all files on the GnutellaNet
  (in the gnutellanet stats) should been fixed
- Currently implementing the multiple simultaneous searches and the search
  results filters
- The widths of the different clists's columns are now remembered
- You can now force your local IP to whatever you want [NEED TESTS PLEASE]
- 'Current port' label is now updated
- Automatic retry for failed downloads
- A new option limits the number of downloads from a single GnutellaNet host
- Users with big default fonts should now see all the menus
- A quit button has been added
- gtk-gnutella is now linked against libresolv if needed for inet_aton()

* v 0.12          2000.05.03

- All C++ style comments have been replaced by C style comments
- Incoming connections are now accepted again (lame bug created in 0.11 fixed)
- Slashes are replaced by backslashes in downloaded files names
- Downloaded files are no more created before we actually receive data for them
- Queued downloads can now be reordered by drag and drop
- Queued downloads can now be started at any time (using right mouse button on
  them)
- Active downloads can now be forced to push mode, moved back to the queue,
  or killed (with the output file removed) using right mouse button on them
- Preferences and configuration are now saved in a directory instead of a
  single file. You can choose the path of the directory to be used by setting
  the GTA_GNUTELLA_DIR environment variable before running gtk-gnutella.
  By default it will be ~/.gtk-gnutella/ 
- Estimated TR (Time Remaining) is displayed while downloading files
- Catched hosts are now saved in clear text in a separate file:
  GTA_GNUTELLA_DIR/hosts
- Catched hosts can be imported from and exported to any text file (using
  right mouse button on the gnutella host catcher)
- Gtk-Gnutella should now compile (using gcc) and run on more processors
- A few memory leaks removed, but some remain (I don't know where yet)
- Serious bug that made Gtk-Gnutella send garbage when the sendqueue for slow
  nodes excedeed 1024 bytes has been fixed
- Completed download files are now moved to a different directory, that can be
  choosen in the config screen
- Gtk-Gnutella now remembers the position and the size of the window
- Automatic sorting of search results can be stopped by right clicking in the
  search results list (GTK doesn't seem to handle well auto sorting)


* v 0.11          2000.04.19

- Sizes of files in the gnutellanet stats, in search results and in downloads
  lists are now displayed in B, KB, MB or GB. By the way, the gnutellanet
  stats will display the right number of shared bytes...
- Search results can now be sorted by File name, Size, or Speed.
- Buttons 'abort selected', 'resume selected' and 'clear completed' in the
  download section should be less randomly active / unactive.
- The numbers of active and completed downloads should be more accurate.
- The number of routing errors should be more accurate too.
- Some warnings about malformed packets have been removed (that happens too
  often to be displayed...)
- Do not allow more than one incoming connection from the same IP, to prevent
  connect flood attacks (Somebody tried to establish more than 32 simultaneous
  connections (from the same IP) to my client today...)
- Catched hosts are now saved, and reloaded next time Gtk-Gnutella is started.


* v 0.1           2000.04.16

- First release of Gtk-Gnutella :)

