* Bug Fixes
* 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.
Bug Fixes:
- 1870957: Wrong sign could cause out-of-bounds read and potentially a crash.
- Firewalled status was not re-verified after a port change if the previously
used port was open.
- Fixed issue that caused the local peer cache to degenerate.
Improvements:
- Client-side support for tigertree hashes (TTH/THEX).
- Replaced navigation tree by tabs.
- Redesigned download user-interface to make it more accessible.
- Added some selectable pre-defined search filters.
- Bitzi tickets are displayed in full raw indented XML.
- Display Bitzi and ShareMonkey URLs as search result details.
- Topless mode is available at run-time via command-line switch.
- Added default shared filename extensions:
.7z, .bittorrent, .oga, .ogv, .spx, .tbz2
- Removed default shared filename extensions: .doc
- Updated translations: Japanese, Norwegian Bokmal, French.
Under the hood:
- Changed default to dual use of IPv4 and IPv6 instead of IPv4-only.
- Support the "as" (Alternate Source) key in magnet links.
- Eszett is finally normalized to "ss" in search queries.
- Avoid display updates for elements not currently visible.
- Take full advantage of persistent HTTP connections to fetch multiple
files from the same peer through over the same connection if scheduling
permits.
- Improved TLS support and blocking detection.
- Updated list of hostile IP adress ranges, bogons, Geo-IP data,
spam patterns and spam samples.
Bug Fixes:
- The download overlap checking was incorrectly detecting mismatches.
- A bug in the network queue caused frequent crashes.
- A bug in the event timing caused failures after 25 days uptime.
- A stalling issue with TLS connections.
- The search retry timeouts weren't accepted.
- The order of items in the search history was wrong.
- The quick-connect limit wasn't respected causing too frequent
connection attempts during startup.
- Removed incorrect use of SF_NODISKIO flag for sendfile() on FreeBSD.
- Fixed crash that could be triggered by changing the listening port
temporarily to zero.
- iconv() was not used correctly which could cause wrong conversions
for longer strings.
- Generated filenames weren't properly restricted in length which
could cause crashes.
- There was a compile issue on NetBSD caused by namespace pollution.
- Added workaround for the issue that on Solaris only the file descriptors
0..255 can be used for stdio.
Improvements:
- Finished downloads are now seeded for the whole session or until
they are manually purged, if partial file-sharing is enabled.
- Server-side support for Tigertree hashes and THEX thanks to patches
provided by Martijn van Oosterhout.
- Improved spam filters.
* Added GUI option "headless".
* Removed dbus dependency. It's just a gimmick, not worth it.
* Added patch-ab to avoid picking up stuff from /usr/local for example.
Bug fixes:
- Fixed issue when browse host is the only search in the list.
- Reset download buffers on incomplete writes.
- Fixed ever-growing sidebar at each relaunch under GTK1.
- Fixed misdetection of chunk completion, causing undue abortion of downloads.
- Was wrongly showing the source download speed twice in download status.
- Range column was sometimes inexact in downloads.
Improvements:
- Print PFS indication for actively queued entries as well.
- Take buffered data into account when showing download progress.
- Downloads now show how many HTTP requests were made on the same connection.
- Try to reposition the main window correctly.
Configuration Changes:
- Minimum connection timeout is set to 15 seconds.
- Default for "maximum % of slots / vendor" raised to 90.
libintl. Hack around the gettext detection in Configure, I twisted
my mind too much trying to understand the "logic". Just assume that
we have and want NLS. Bump revision.
Changes include:
* Now uses HTTP/1.1, which implies support for persistent connections.
* gtk-gnutella will now monitor whether we're connected to Internet and
slow down its connection requests when it detects the connection was
broken (after a delay of ~3 minutes at most).
* Download swarming is now supported: gtk-gnutella will download different
portions of the same file from many hosts, as long as alternate sources
are available.
* The download mesh (alternate source collection during downloads) is now
used to fill the download queue with more sources.
* Alternate locations can also be passively collected from query hits.
You can enable this in the swarming section on the download config pane.
* Download scheduling was entiretly redesigned to avoid hammering busy
hosts and scale to 5000+ entries in the queue without slowing down the
whole.
* Is now smart about the "push" flag and will try to ignore it if possible,
in case the remote host wrongly set the flag but is not firewalled.
* gtk-gnutella now remembers the files it downloaded and will ignore
further requests to download the same file. It will visually mark those
files, as well as the ones it already shares, by showing them in lighter
color in the search results.
* It is possible to supply to gtk-gnutella your own ignore lists by SHA1
and by name/size but the feature is under-documented.
* Added an "expert mode". Only when this is enabled will gtk-gnutella show
the users some of the most complex settings.
* New Gnutella statistics pane, showing the packets we sent and received,
how many we generated, and the reasons why we drop packets, by packet
type.
* Now understands UTF-8 queries, but does not generate them.
* Fixed important bugs whereby all earlier versions of gtk-gnutella were
unintentionally corrupting the Gnutella traffic!
* Moved away from the public hostcaches and now uses the Gnutella Web
Cache.
* Will now show all upload attempts, not only the ones that are
transferring. If the connection is aborted, the reason is also shown.
* New search stats types: queries by router, whole query.
* "Queries by router" shows how many queries have been recieved from any
node gtk-gnutella was directly connected to.
* "Whole query" shows stats based on the complete query string instead of
individual query words.
* New visual indications via icons in the status bar: whether gtk-gnutella
is rebuilding the library, computing SHA1 of shared files in the
background, and whether we are connected to Internet or not.
KNOWN BUGS/PROBLEMS:
* When changing the directory for incomplete/complete files, all partially
downloaded files recorded in ~/.gtk-gnutella/fileinfo will still be
downloaded to the old directory. You need to manually change the paths
in above file using search/replace and your favourite text editor.
* Sorting order of tables is not perserved across sessions.
* Marking/highlighting of results/downloads/uploads heavily depends on
your GTK theme. Especially most themes do not set fg[ACTIVE] and
fg[NORMAL] to different values.
* There is currently no way to un-ignore a file via the gui. You can
however edit the done.sha1 and done.namesize files in your
~/.gtk-gnutella directory manually. Unignoring via gui is planned for
the next release.