Dear Gnutella fans, Version 0.96.6 stable has been released on sourceforge. You may get it at:
http://downloads.sourceforge.net/gtk-gnutella/gtk-gnutella-0.96.6.tar.bz2 You can also download this release from Gnutella using this link: magnet:?xt=urn:sha1:GGKBP2G6CBFTHEJ6BCQKV3EMB4RKMEU5&dn=gtk-gnutella-0.96.6.tar.bz2 IMPORTANT: Please note that the previous stable release 0.96.5 expires on April 1st, in a few days. Consider upgrading to the newest release by compiling the program yourself to avoid any inconvenience. Here are the changes since 0.96.6, as listed in the ChangeLog: # v 0.96.6 2009-03-29 [stable] Bug Fixes: - #1932909 "columns in search window do not scale properly". - Fixed improper HTTP chunking when outputing chunks larger than 64 KiB. - #2628899 "tries to download from my old self after IP changes". - Was not always resuming the interrupted SHA-1 computation of a finished file when servent was closed in the middle of processing. - Fixed bad range checking test in the download part. - Was not paying attention to the "give_server_hostname" property and instead sent "HNAME" GGEP extensions in query hits provided a non-empty name was defined as the "server_hostname". - Fixed improper upload slot counting which introduced race conditions, sometimes leading to having more slots used than the configured maximum (in addition to the "quick" upload slots). - Prevent occasional crashes at shutdown time, during subsystem cleanups. - Fixed corner cases where we could lose a server hostname and downright bug where we discarded the hostname after a DNS lookup if the subsequent connection attempt did not succeed. Improvements: - Refuse to share certain directories: /, $HOME, $GTK_GNUTELLA_DIR, and the incomplete and corrupted directories. - Downloads GUI: added checkboxes to invert the select/filter patterns. - Downloads GUI: added "Modified" column and detail showing the timestamp of the last file modification. - Optional beautification operations on filenames: strip leading "-", remove consecutive "_" and prevent "_" surrounding punctuation characters. - Fixed significant performance issue in the Gtk+ 1.2 front-end: update of upload statistics was O(n) but is now O(1). - Background TTH file verification now lights an icon in the GUI. - Show TTH tree depth in the download "Details" pane. - Update the bitzi metadata info box when a query finishes, so that it is not required to click on the result again after requesting bitzi data. - Added MIME type column for search results. - Added "Last Request" and "Last Upload" columns to the Upload History. - Almost complete DHT support (missing only publishing of data), but code needs to be explicitly enabled by setting "enable_dht" to TRUE. The DHT knows how to look for alt-locs for files and push-proxies for firewalled hosts, and will store local data for others to query. - New shell commands "stats", "download", "echo". - It is now possible to rename files being downloaded (through GTK2 or shell, no support in GTK1). - Added more filename extensions to the built-in search filters. - Switch resources after getting an HTTP error if the connection is kept alive and the error permits follow-ups (non-busy conditions). - Improved ability to switch resources after file completion by ignoring trailing swarming data, to keep the connection alive. - Bitzi tickets are refreshed when explicitely requested, avoiding reuse of stale metadata - Completed files are displayed during hash verification. - Only propagate good alt-locs for files we are downloading, i.e. addresses of hosts which we know to be serving that file because we contacted them. - Many new statistics counters. - Allow scheduling of special downloads without considering per-host limits, as these are of a much shorter duration (THEX and browse host requests). - Always seed completed files, regardless of their size (no PFSP minimum as with partial files), when their SHA-1 has been verified. - Incorrectly encoded Bitzi metadata is translated to Unicode. - Browse-host responses are sorted alphanumerically on relative pathnames to allow users to relate files together if they don't understand GGEP "PATH". - Improved routing of PUSH messages by also looking whether targetted hosts happen to be one of our immediate neighbours. - Updated Norwegian Bokmal and Spanish translations. Under the hood: - Parse legacy Shareaza THEX URIs "urn:tree:tiger/:" (extra "/" here). - Handle non-standard X-Thex-URI headers if peer provides a valid X-Content-URN header (Shareaza 2.1.0.0). - Also attempt to give priority to the last "pfsp_last_chunk" bytes of downloaded files, since that can contain important indexing information to enable pre-view of partial video files. - More MIME types known (derived from file extensions). - Can now download THEX data at a tree depth of 11 for files larger than 1 GiB. - Can download sub-optimal THEX data, as non-optimal data is better than none, but keeps looking for THEX data at the optimal tree depth nonetheless. - Reimplemented scanning of shared directories as a background task so that the process (not just the GUI) is fully responsive during the whole scan. - Let the background task scheduler compute the proper amount of ticks to use for each task. - Upload statistics now record the file's SHA-1, so that we can consolidate partial file sharing with library sharing statistics, with the filename being forced to the library's filename. - Avoid starting moving a completed file if there is not enough space on the targetted file system. - Recognize and propagate the "DHT" GGEP extension in pongs. - Added support for "DHTIPP" GGEP extension in pings, used for DHT bootstrap. - Added more entropy to the random number seed. - Plugged memory leaks - No longer send SHA-1 queries on the Gnutella network. They are now performed through the DHT, which has the suitable topology to do so efficiently. - Fixed UDP bandwidth computation, and removed any limit on UDP incoming. - Updated list of hostile IP adress ranges, Geo-IP data, spam patterns and spam samples. - Property loading from files was in O(n*n), made it O(n). - Now detect property files being blindly copied over from another gtk-gnutella's config directory and reset properties whose value needs to be unique. - The GUID and the KUID (Kademlia ID, the DHT node ID) were made sticky. - Optimization of QRP lookups in tables ranging from 16k to 2M slots. - Limit amount of hits to 10 per query hit packet, as LimeWire chokes otherwise. - Limit amount of alt-locs in hits to 10 or LimeWire chokes. - Keep connection alive when reporting an HTTP error to allow remote resource switching if necessary. - Emit and parse new X-Downloaded header, apparently introduced by LimeWire. - Added parsing of X-FW-Node-Info headers to grab push-proxies from firewalled hosts, as well as gather the proper GUID and host address/port. - Emit X-FW-Node-Info if node is firewalled but continue to list our push-proxies in the standard X-Push-Proxies header. - Avoid endless aggressive chunk splitting during swarming. - Proper parsing of comma-separated values in Accept and other Accept-Encoding HTTP headers. - Reject UDP packets from unspecified addresses. - Drain more data out of the UDP receive buffer to prevent it from filling up. - Strip at most 5 trailing characters from words when building the QRP table, thereby inserting less radices and making the table more sparse. - Removed workarounds for dealing with broken 0.96.2 nodes and earlier 0.95.x. - Extended syntax for push:// exact sources in magnets to be able to supply all the known push-proxies, even if that is an empty set. Since downloads are persisted as magnets, this also allows keeping all the previously known push-proxies accross sessions. - Upgraded PARQ to version 1.1 (mostly specification cleanups). - Added additional anti-hammering for cases where many files on the same server are queued and gtk-gnutella is configured to launch more than 1 connection per IP. Connection attempts to the same server are now limited to 5 per minute. Limitations: - DHT code is still experimental, although functional: configuration of parameters can only be done through the shell, and there is no support for publishing yet. Enjoy! Raphael ------------------------------------------------------------------------------ _______________________________________________ gtk-gnutella-devel mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/gtk-gnutella-devel
