paulo@0: $Id: ChangeLog,v 1.33 2006/08/06 17:26:39 hexwab Exp $ paulo@0: paulo@0: Gnutella 0.0.11: paulo@0: paulo@0: * Made SHA1 implementation work correctly on 64 bit machines. paulo@0: paulo@0: * Create new client GUID on each startup to prevent stupid packagers paulo@0: from hurting the network. paulo@0: paulo@0: * Disable the timebomb once and for all. paulo@0: paulo@0: Gnutella 0.0.10.1: paulo@0: paulo@0: * Added additional revision digit to version number so we can release paulo@0: packages with updated GT_RELEASE_DATE if nothing else has changed. paulo@0: paulo@0: * Increased web cache disabling to 365 days after built and complete paulo@0: shutdown to 1.5 years. paulo@0: paulo@0: Gnutella 0.0.10: paulo@0: paulo@0: * Disconnect idle nodes that don't reply to pings. paulo@0: paulo@0: * Support Vendor Messages. paulo@0: paulo@0: * Support ConnectBack vendor message for better firewalled status paulo@0: detection. paulo@0: paulo@0: * Slightly improved the random number seed. paulo@0: paulo@0: * Send an empty error page when the remote side supports queueing. paulo@0: paulo@0: * All searches now timeout after at most 10 minutes. paulo@0: paulo@0: * Only use the full http:// URL in GWebcache requests when using a proxy paulo@0: (see RFC 2616 (HTTP/1.1) for further information). paulo@0: paulo@0: * Support outgoing compression of message streams. paulo@0: paulo@0: * Drop "urn:" trailer from queries sent. paulo@0: paulo@0: * Send full filename in PUSH uploads; seems LimeWire requires it. paulo@0: paulo@0: * Support p->share_hide/show for hiding shares from other nodes with paulo@0: a HopsFlow message, allowing them to be efficiently un/re-shared. paulo@0: paulo@0: * Basic support for sending GGEP blocks. paulo@0: paulo@0: * Change "really-old" auto-deactivation to silent failure to avoid paulo@0: creating surprises for people who don't care. paulo@0: paulo@0: * Support push proxies: put a GGEP block containing the IP address of paulo@0: some servers we're connected to in order to improve upload performance paulo@0: of firewalled nodes. paulo@0: paulo@0: * Ban webcaches that resolve to local IP addresses. paulo@0: paulo@0: Gnutella 0.0.9.2: paulo@0: paulo@0: * Fix file descriptor leak in file_cache.c that's been around for a while paulo@0: but was made worse by syncing the nodes files every so often. paulo@0: paulo@0: * Don't potentially poll the CPU if the remote zlib stream is called with paulo@0: Z_FINISH. paulo@0: paulo@0: Gnutella 0.0.9.1: paulo@0: paulo@0: * Remove checking for -lresolv in configure. paulo@0: paulo@0: Gnutella 0.0.9: paulo@0: paulo@0: * Fix compile problem with 0.0.8 on big-endian platforms. paulo@0: paulo@0: * Deactivate the plugin if it's more than one year old. paulo@0: paulo@0: * Close all searches when plugin is unloaded. paulo@0: paulo@0: Gnutella 0.0.8: paulo@0: paulo@0: * Trim the node list every so often to prevent it from growing unbounded. paulo@0: paulo@0: * Fix leak of GtNode on incoming connects. paulo@0: paulo@0: * No longer reply to queries marked with the same GUID. paulo@0: paulo@0: * Fix bug in GWebCache code where replies got discarded, as well as paulo@0: some miscellaneous bugs in GWebCache code, and ban caches that paulo@0: fail DNS lookups. paulo@0: paulo@0: * Updated list of GWebCaches. paulo@0: paulo@0: * Fix metadata parsing bugs where the metadata was discarded. paulo@0: paulo@0: * Removed questionably-bad hosts from ban-list. paulo@0: paulo@0: * Support new Source URL format: Gnutella:?ip=..&port=... paulo@0: paulo@0: * Timeout push requests to monopolize Chunks less so that Chunks paulo@0: will get trapped on inactive Sources less often. paulo@0: paulo@0: * Shorter connection timeout to monopolize Chunks less. paulo@0: paulo@0: Gnutella 0.0.7: paulo@0: paulo@0: * Fix a compile error caused by bad prototype in a header file. paulo@0: paulo@0: * Use a different method for calculating the number of files/total paulo@0: bytes shared. Some samples around the median of many pongs are taken paulo@0: instead of just using the average of many pongs. paulo@0: paulo@0: * Ban downloaders for IP addresses in hostiles.txt and incorporate paulo@0: ban list from peer guardian. paulo@0: paulo@0: Gnutella 0.0.6: paulo@0: paulo@0: * Support receive-side decompression of node streams (transmit-side paulo@0: compression still unimplemented). paulo@0: paulo@0: * Source searching re-enabled. paulo@0: paulo@0: * Preliminary support for parsing XML metadata from packets that paulo@0: have them (usually from LimeWire or Shareaza) using libxml. Support paulo@0: is disabled by default and needs --with-libxml passed to configure paulo@0: to enable. paulo@0: paulo@0: * Keep track of file sizes/file count statistics from pongs, and paulo@0: approximate the number on the network (very haphazardly, I paulo@0: might add). paulo@0: paulo@0: * Fix a potential assert failure when shares are removed. paulo@0: paulo@0: * Fix bug where malformed incoming connection requests would paulo@0: cause CPU polling. paulo@0: paulo@0: * Incrementally build a larger query-routing table until the fill paulo@0: ratio is 1%. Reduces bandwidth used a bit. paulo@0: paulo@0: * Support active-queueing. paulo@0: paulo@0: * Fix parsing of bitprint urns. paulo@0: paulo@0: Gnutella 0.0.5: paulo@0: paulo@0: * Don't reply to our own search requests. paulo@0: paulo@0: * Fix display of the time to retry when the peer we paulo@0: download from supplies Retry-After: paulo@0: paulo@0: * Fix severe mistake in request parsing that caused almost paulo@0: all uploads to fail. paulo@0: paulo@0: * Remove access.log support, as it has a tendency to consume paulo@0: too much disk space when small chunks get requested. paulo@0: paulo@0: Gnutella 0.0.4: paulo@0: paulo@0: * Download unpausing would crash giftd. Fix it. paulo@0: paulo@0: * Support requests by hpath (/audio/blah/) as well since its paulo@0: not too much extra code to support and useful sometimes. paulo@0: paulo@0: * Compression was not enabled in configure script, enabled it. paulo@0: paulo@0: * Firewalled nodes that did searches would accept results from paulo@0: nodes with private IPs. Fixed. paulo@0: paulo@0: * Maintain a banlist of gwebcaches and add any gwebcaches paulo@0: that return anything but 200-series responses. paulo@0: paulo@0: * Fixed Retry-After. paulo@0: paulo@0: Gnutella 0.0.3: paulo@0: paulo@0: * Add a node cache to store nodes learned from pongs and X-Try-Ultrapeer: paulo@0: With this, connecting to the network should be much less ad-hoc. Also, paulo@0: returns such nodes in X-Try-Ultrapeer: header for other nodes. paulo@0: paulo@0: * Access the gwebcaches on demand, rather then when the paulo@0: number of nodes is arbitrarily low. paulo@0: paulo@0: * Use 4-bit QRP patches. Still needs to do incremental updates, though. paulo@0: paulo@0: * Send "206 Partial Content" replies to partial requests instead of paulo@0: "200 OK". paulo@0: paulo@0: * Support Retry-After: header. paulo@0: paulo@0: * Basic static stats that assumes the network has no cycles. paulo@0: paulo@0: * Only send requests by file index, rather than uri-res requests, paulo@0: if the previous uri-res request failed or the connection closed paulo@0: abruptly. Previously, they were sent randomly. Also, send these paulo@0: requests without url encoding, as that is more compatible. paulo@0: paulo@0: * Update HTTP transfer size after we receive a GIV response, as paulo@0: giFT could change the size of a download request while we wait paulo@0: for a response from the firewalled servent. paulo@0: paulo@0: Gnutella 0.0.2: paulo@0: paulo@0: * 0.0.1 would access the gwebcaches excessively due to an oversight paulo@0: that the nodes retrieved from them aren't stored because they paulo@0: have a vitality of 0. So, this increase in the release number should paulo@0: help identifying problem behaviour between releases. paulo@0: paulo@0: Unfortunately, this adds a new problem in that a completely stale nodes paulo@0: file will keep us from connecting. This needs a redesign to access the paulo@0: caches if we've exhausted all other options. paulo@0: paulo@0: * Much improved search timeout system that will detect when paulo@0: no more results for a search are likely to come back. Still need to paulo@0: check if any results are dropped, though. paulo@0: paulo@0: * Fix leak of TCPC objects for persistent connections. paulo@0: paulo@0: * Temporarily disabled locate requests because they need some kind paulo@0: of global queue to limit the rate at which they are produced. paulo@0: paulo@0: Gnutella 0.0.1: paulo@0: paulo@0: * Persistent HTTP support. paulo@0: paulo@0: * Eliminated most races between download_stop and push downloads. paulo@0: There is still the possiblity of the remote end aborting the connection paulo@0: before we giFT reissues a download_start request, but that can't be paulo@0: fixed without protocol-initiated downloads. paulo@0: paulo@0: * Submit query-routing table of local shares to ultrapeers. paulo@0: paulo@0: * Support for using an http proxy to access the gwebcaches (set paulo@0: "http/proxy" key in ~/.giFT/Gnutella/Gnutella.conf). paulo@0: paulo@0: * Testable, but unstable Ultrapeer mode. paulo@0: paulo@0: * Forgot to report 'Connecting' status when initiating a download. paulo@0: paulo@0: * Added ChangeLog. paulo@0: paulo@0: * Use a trie for storing the local shares database to improve paulo@0: lookup time. Memory usage still needs investigation. paulo@0: paulo@0: Gnutella 0.0.0: paulo@0: paulo@0: * Basic support for searching, downloading, and uploading.