$Id: ChangeLog,v 1.19 2003/09/23 21:36:11 hipnod Exp $

Gnutella 0.0.7:
   
    * Fix a compile error caused by bad prototype in a header file.

    * Use a different method for calculating the number of files/total
      bytes shared. Some samples around the median of many pongs are taken
      instead of just using the average of many pongs.

    * Ban downloaders for IP addresses in hostiles.txt and incorporate
      ban list from peer guardian.

Gnutella 0.0.6:

    * Support receive-side decompression of node streams (transmit-side
      compression still unimplemented).

    * Source searching re-enabled.

    * Preliminary support for parsing XML metadata from packets that 
      have them (usually from LimeWire or Shareaza) using libxml. Support
      is disabled by default and needs --with-libxml passed to configure
      to enable.

    * Keep track of file sizes/file count statistics from pongs, and
      approximate the number on the network (very haphazardly, I
      might add).

    * Fix a potential assert failure when shares are removed.

    * Fix bug where malformed incoming connection requests would 
      cause CPU polling.

    * Incrementally build a larger query-routing table until the fill
      ratio is 1%. Reduces bandwidth used a bit.

    * Support active-queueing.

    * Fix parsing of bitprint urns.

Gnutella 0.0.5:
    
    * Don't reply to our own search requests.

    * Fix display of the time to retry when the peer we
      download from supplies Retry-After:

    * Fix severe mistake in request parsing that caused almost
      all uploads to fail.

    * Remove access.log support, as it has a tendency to consume
      too much disk space when small chunks get requested.

Gnutella 0.0.4:
    
    * Download unpausing would crash giftd. Fix it.

    * Support requests by hpath (/audio/blah/) as well since its
      not too much extra code to support and useful sometimes.

    * Compression was not enabled in configure script, enabled it.
    
    * Firewalled nodes that did searches would accept results from
      nodes with private IPs. Fixed.

    * Maintain a banlist of gwebcaches and add any gwebcaches
      that return anything but 200-series responses.

    * Fixed Retry-After.

Gnutella 0.0.3:

    * Add a node cache to store nodes learned from pongs and X-Try-Ultrapeer:
      With this, connecting to the network should be much less ad-hoc. Also,
      returns such nodes in X-Try-Ultrapeer: header for other nodes.

    * Access the gwebcaches on demand, rather then when the 
      number of nodes is arbitrarily low.

    * Use 4-bit QRP patches. Still needs to do incremental updates, though.

    * Send "206 Partial Content" replies to partial requests instead of 
      "200 OK".

    * Support Retry-After: header.

    * Basic static stats that assumes the network has no cycles.

    * Only send requests by file index, rather than uri-res requests,
      if the previous uri-res request failed or the connection closed
      abruptly. Previously, they were sent randomly. Also, send these
      requests without url encoding, as that is more compatible.

    * Update HTTP transfer size after we receive a GIV response, as
      giFT could change the size of a download request while we wait
      for a response from the firewalled servent. 

Gnutella 0.0.2:
    
    * 0.0.1 would access the gwebcaches excessively due to an oversight
      that the nodes retrieved from them aren't stored because they
      have a vitality of 0. So, this increase in the release number should 
      help identifying problem behaviour between releases. 
      
      Unfortunately, this adds a new problem in that a completely stale nodes
      file will keep us from connecting. This needs a redesign to access the
      caches if we've exhausted all other options.

    * Much improved search timeout system that will detect when
      no more results for a search are likely to come back. Still need to
      check if any results are dropped, though.

    * Fix leak of TCPC objects for persistent connections.

    * Temporarily disabled locate requests because they need some kind
      of global queue to limit the rate at which they are produced.
      
Gnutella 0.0.1:

    * Persistent HTTP support.

    * Eliminated most races between download_stop and push downloads.
      There is still the possiblity of the remote end aborting the connection
      before we giFT reissues a download_start request, but that can't be
      fixed without protocol-initiated downloads.

    * Submit query-routing table of local shares to ultrapeers.

    * Support for using an http proxy to access the gwebcaches (set 
      "http/proxy" key in ~/.giFT/Gnutella/Gnutella.conf).

    * Testable, but unstable Ultrapeer mode.

    * Forgot to report 'Connecting' status when initiating a download.

    * Added ChangeLog.

    * Use a trie for storing the local shares database to improve
      lookup time. Memory usage still needs investigation.

Gnutella 0.0.0:

    * Basic support for searching, downloading, and uploading.
