Filewatcher File Search File Search
Catalog
Content Search
» » » » » gtk-gnutella_0.98.3-1_mipsel.deb » Content »
pkg://gtk-gnutella_0.98.3-1_mipsel.deb:16783564/usr/share/doc/gtk-gnutella/  info  control  downloads

gtk-gnutella - shares files in a peer to peer network…  more info»

changelog.gz

# v 0.98.3   2012-06-04  [stable]

New Features:
- [GTK] Added per-search GUESS statistics line, which can be hidden by users.
- [GTK] Display amount of downloads associated with search in the search label.
- Added property to control usage of unused Gnutella bandwidth by GUESS.
- Added "memory check xmalloc" shell command to monitor the xmalloc freelists.
- On Windows, generate a gdb-like stack trace in the crash log file.

Improvements:
- [GTK] Optimized rendering of main statistics page.
- [GTK] Show more accurate message for queued downloads on completed files.
- Shell now displays properties with appropriate surrounding type markers.
- Limit pongs sent to transient nodes in order to save some bandwidth.
- Avoid sending too many pongs on uncompressed connections.
- Added README.Windows to document compile instructions for Windows.
- Avoid "write() failed: EPIPE" messages from the shell for local client writes.
- Added GUESS link cache size to the general statistics pane.
- GUESS now uses a dynamically computed outgoing bandwidth limit.
- Allow failed TLS connections to be retried without TLS, transparently.
- Added "-a" switch to the shell "version" command to display glib/GTK/TLS info.
- Added -p switch to the "stats" shell command to pretty-print numbers.
- Memory optimization of commonly used data structures to reduce footprint.
- Always generate a crashlog file, even when dumping a core.
- PARQ: switch actively queued download to another when file has been completed.
- Attempt to immediately restart download after failed SHA1 + TTH verification.
- At startup, compute TTH if available and SHA1 checking failed.
- When switching PARQ 1.0 downloads, switch IDs if queue position is favorable.
- Updated translation strings, and fixed French translation.

Bug Fixes:
- bug #3286824 "Crash at startup / 0.96.9 / FreeBSD AMD64"
- Fixed %G formatting bug whereby a zero following a dot would be missed.
- Prevent auto-restart when they explicitly request a shutdown.
- Fixed grave bugs in the virtual memory layer, some being Windows-specific.
- PARQ was not properly computing amortized per-slot time.
- Avoid random shell connection failures on Windows.
- An un-parseable token in a shell command led to an assertion failure.
- Fixed the "alignment optimized" code branch of msort_with_tmp().
- Fixed bad copy-n-paste that could lead to malloc() freelist corruption.
- Fixed GUESS corner-case crash when handling an RPC timeout.
- [GTK] Avoid crash when user clears the upload statistics (bug #3501181).
- On Windows, be smarter when reserving the initial amount of virtual space.
- GUESS: always wakeup sleeping queries if we have bandwidth.

Under the Hood:
- Improved thread-safety of the VMM layer.
- Removed perl4-ism in Perl scripts.
- Updated IPv4 and IPv6 geo databases.
- Attempt to drive a deadlock crash as far as possible to collect debug info.
- When logging from another thread (not main), include the small thread ID.
- Switched halloc() to xpmalloc() instead of walloc().
- Added thread-private zones for blocks <= 512 bytes for faster allocations.
- Optimized access to thread-private information, via a lock-free fast path.
- Exit with a zero status when terminating through a regular signal or request.
- Some UTF-8 optimizations and low-level fixes.
- Also log the faulting PC when we get a harmful signal.
- Use the BFD library, if available, to extract symbols from the executable.
- Restored ability to have usable stack unwinding on Windows.
- Extended crash log information to include full OS name and CPU architecture.
- Sort SHA1s in the search.xml file.
- Clear whole routing table when switching between Ultra and Leaf modes.
- Protect xfree() from algorithmic complexity when handling bursts.
- Added xmalloc garbage collector to reclaim fragments from freelist.
- Allow the "TLS handshake failed" string to be translated.
- Consider IPv4 addresses x.x.x.0 as non-routable.
- Now uses own hash table and hash set implementations.
- Strengthened entropy collection and ARC4 initial seeding.
- Randomly propagate GUESS 0.2 hosts among GUESS 0.2 servents.
- Assume we're not firewalled right after initial UPnP or NAT-PMP configuration.
- Avoid compiler warnings on Windows.
- Make sure random_value() returns uniformly distributed random numbers.
- Added ability to filter dumped traffic by IP address.
- Changed %F to display whole mantissa before switching to scientific notation.
- Ensure memory allocated from the heap is aligned properly.
- Show amount of detected CPUs at startup.
- Added version numbers to the crash log file name.
- Avoid complexity attacks on the hash table.

# v 0.98.2   2011-12-30  [stable]

This is a minor patch to support systems running latest Ubuntu systems,
and maybe others which create multiple threads for GTK programs: our
xmalloc() implementation replaces the system's malloc() but it was not
safe to use in multi-threaded environments.

GUI improvements:
- [GTK] Added option to discard results from banned GUIDs (set by default).
- [GTK] Display results from servents with a banned GUID in "hot pink".

Other improvements:
- Updated turkish translation.
- Added IPv6 geo-localization database (from Maxmind).
- Added dynamic IPv6 hostile support.

# v 0.98.1   2011-12-16  [stable]

This is a minor patch to support systems running glib-2.30.2 and above.

# v 0.98   2011-12-11  [stable]

This is a major release, adding "IPv6-Ready" features.  It also fixes
long-lasting bugs in various areas and contains some other low-level
improvements.

During the building of this release, Dennis MacAlistair Ritchie passed away.
Gtk-gnutella would not exist in its current form without the earlier work
of Dennis, the co-inventor of C.  This release is dedicated to the memory
of that great computer scientist.  Farewell, Dennis!

New Features:
- Added "IPv6-Ready" support.
- Enhanced the shell "memory" command to display various allocator stats.
- Added the "pid" and "version" shell commands.
- Added the "command" shell command to print the server's command line.
- Added -r option to "shutdown" shell command to request a restart.
- Added the --no-restart and --restart-on-crash gtk-gnutella options.
- Added the shell "date" command displaying ISO time with ms accuracy.

Improvements:
- Ignore Bitzi ticket timeouts on missing entries for explicit user retries.
- Added routing table statistics.
- GUI: show file creation times for local searches in the info summary.
- Optimized page cache coalescing by avoiding two successive binary lookups.
- Added -f option to "shutdown" shell command to initiate a fast shutdown.
- Allow "echo command | gtk-gnutella --shell" a chance to work on Windows.
- Ban duplicate GUIDs to avoid them being the target of PUSH requests.
- Updated French translation for 0.98.
- Revisited TX stack flow-control logic when there is a compressing layer.
- Don't send Hops-Flow messages to nodes not supporting it.
- Use full compression for ultra <-> ultra connections.
- Internationalization now works on Windows.

Bug Fixes:
- Fixed harmful cleanup of routing table when cycling over naturally.
- Fixed bug in add_file() when adding multiple partial files to a query hit.
- Fixed DHT lookup when path protection kicks in and clears the closest node.
- Fixed handling of relative position lists, causing unfair PARQ scheduling.
- Prevent preferences from being shown from tray icon when already shutdowning,
  fixing bug #3376952.
- Hide tray icon at shutdown time.
- Enabled loading of hostiles file on Windows.
- Fixed crash on mis-parsed IPv6 address.
- Make sure node is still connected before routing its queries.
- Avoid crashes when asked to deflate 0 bytes.
- Fixed dynamic querying to avoid duplicate messages to probed nodes.
- GUESS must forget about query if the query key was not correct.
- Do not send translated messages in node handshaking replies.
- dualhash_insert_key(): fixed insertion to avoid possible assertion failures.
- Avoid wrong "activity timeout" indications for ultra <-> ultra connections.
- Make sure we do not include "non-shareable" files in query hits.
- Fixed the "node add" and "node drop" shell commands.

Under the Hood:
- Fixed remote token validation for git versions.
- Count and report in statistics the amount of cached GUESS 0.2 hosts.
- Fixed improper message queue status computation (warn zone / delay).
- XML parser was not handling illegal byte sequences in UTF-8 buffers.
- Fixed creation time (GGEP "CT") to send actual filesystem creation time, not
  the filesystem last modification time.
- Enforce configured IP protocols, preventing connection to other protocols.
- Added malloc() replacement.
- Clear "last dmesh sent" timestamp in uploads when client switches resources.
- Construct build date from git's HEAD commit, if available.
- Added options to the "shutdown" shell command to trigger the crash handler.
- Propagate Windows exception information into the crash log.
- On Windows, propagate the PC at which the exception occurs in the crash log.
- Force "idle" tasks to be scheduled once in a while.
- Increased frequency of the main callout queue heartbeats by 4.
- Arrange for a crash log to be generated even when fork() fails.
- Loudly warn when string formatting leads to truncation of the message.
- Added regression tests for str_vncatf().
- Added floating point formatting routine from Robert G. Burger, allowing
  str_vncatf() to format floating point numbers natively.
- Added Windows startup debugging support and fixed Cygwin startup.
- Remap all g_xxx() logging routines to our own message logging layer.
- Added "update-potfiles" target to refresh the POTFILES.in list.
- Frozen PARQ upload queue slots don't count as "wanted" by the queue.
- Added "qhit_bad_debug" property to control logging of bad query hits.
- Stack unwinding routines now stop at the first non-text address they reach.
- Added dynamic memory usage statistics collection.
- Propagate self-assessed symbol quality into the crash log, if not good.
- Make sure we open all files in binary mode on Windows.
- Packaged regex 0.12 to supply POSIX regcomp() on systems lacking it.
- Raise the default number of allowed fds to 2048 on OS X.
- Added SDBM testing and benchmarking program.
- Don't publish NOPE entries in the DHT for nodes with a bad GUID.
- Added "tx_deflate_debug" and "tx_debug_addrs" properties.
- TX deflating layer can postpone Nagle flushing up to 2 seconds.
- Updated Geo IP database.

# v 0.97.1   2011-09-11  [stable]

This is a bug-fixing release, addressing critical bugs that slipped through
in the 0.97 release but which happen only in particular conditions.

The project also switched from SVN to git.  This affects the version number
which no longer includes a single SVN revision but instead uses the combination
of a counter for the number of changes since the last release plus git's
abbreviated commit ID.

Bug Fixes:
- Fixed bootstrapping problems on IPv6 enabled hosts [bug #3376322].
- Forgot to clear global HTTP handle on GHC errors [bug #376322].
- Typo caused crash when processing alternate locations in firewalled mode
  with PFSP enabled.
- Forgot to clear pending THEX downloads on download stops.
- Make sure we remove the SHA1 of de-indexed files from the shared set.
- Handle "message too large" errors when sending on UDP.

Under the Hood:
- When running as ultra node, use GUESS introduction pings when requesting
  a query key so that the remote ultrapeer can passively discover us.
- Do not count GUID collisions with our own GUID when we see our own IP:port!
- Added some gcc 4.6 "hot" / "cold" routine tagging for better optimizations.
- netmask_to_cidr(): was not using the proper metaconfig symbol to activate
  the usage of __builtin_popcount.
- Updated build.sh to build an app bundle for OSX with target=osxbundle
- Added "dmg" to the default extension list for shared files.
- Added OS X integration support: menu bar is now on the OS menubar on top,
  the application does a clean exit on cmd-q and the application continues
  to run when only the window is closed.
- Use the downloads folder on Windows 7 and Vista for completed downloads.
- Updated the geographic IP mapping database.
- Integrated spell check of the French translation from stegozor@gmail.com.
- Turned "zalloc_always_gc" to FALSE by default.

# v 0.97     2011-07-18  [stable]

This is a major release, fixing critical long-standing bugs and introducing
handy new features.  It is also the first stable release for Windows.

New Features:
- Added HTTP request pipelining.
- Added GUESS (Gnutella UDP Extension for Scalable Searches).
- Added the ability to look for specific media types.
- Added the ability to query for partial files as well.
- Added "What's New?" queries.
- Added smart search stopping / resuming options.
- Added command-line option --minimized; useful when auto-starting gtk-gnutella.

Improvements:
- Improved unpredictability of random numbers.
  Continuously collect new randomness from message events (RX, TX, dropping).
- No longer uses download overlaps as soon as we know the TTH of the file.
- When the download queue is auto-frozen due to lack of space, monitor the
  filesystem to auto-unfreeze when enough space is available again.
- Can configure different amount of limits for various kind of search results.
- [GTK2] Added missing configuration option for case-insensitive sorting.
- [GTK] Flag search results bearing an alien IP as such, using both a tag
  (alien) and a color (deep pink).
- [GTK] Added option to discard results bearing an alien IP (TRUE by default).
- [GTK] Added option to restart session-only searches that still have pending
  downloads registered (FALSE by default).
- [GTK] Search details now include a line to display available metadata.
- [GTK] Fill in the Bitzi metadata column on the fly as results come in when
  we have cached ticket information available.
- [GTK] Show media type filter attached to query, when known, in the search
  detail window.

Bug Fixes:
- Fixed *grave* routing bug whereby TTL was wrongly trimmed down by one
  extra step. Furthermore, the trimming threshold was wrong, which in effect
  caused ultrapeers to drop queries with TTL <= 2.
- Fixed *grave* routing bug: was sending TTL>1 queries twice on the same
  connection when running as ultrapeer.
- Fixed *grave* routing bug: was not properly forwarding duplicate OOB-proxied
  queries with a higher TTL (MUID was not altered the second time).
- Make sure ~ expansion is done for path variables when changed at runtime.
  Fixes bug #3215847.
- Was not processing updates of "search_reissue_timeout" from the GUI!
- Filename sanitizer led to a crash when given a filename with leading spaces.
- TTH downloads would crash when not receiving any data back.
- An off-by-one bug prevented proper token validation, causing GTKG to not
  properly recognize the latest releases.
- Avoid crash when attempting to connect to a node that would be internally
  flagged as "useless".
- Fixed chunk selection algorithm to properly request from servers providing
  partial files.
- Various "crash at shutdown time" type of fixes (occuring rarely and randomly).
- Plugged hole leading to a file completing but not being checked for its SHA-1
  when we have a few sources competing against each-other and all these sources
  end up ignoring data to preserve their connection.
- Fixed crashes with GTK2 on some platforms at quit time by ignoring duplicate
  "quit" requests.
- Fixed race condition that could lead to an incomplete QRP configuration.
- Fixed important LRU cache management bug in the SDBM layer, which was causing
  data loss in persisted databases.
- Head pings had their GGEP "PUSH" key improperly parsed.
- [GTK] Was not saving the column size of the search list.
- Fixed cause of random crashes in the VMM layer on systems using mmap() to
  serve uploaded files.

Miscellaneous:
- Dutch translation updated.
- French translation updated.
- By default, auto-clear completed and failed chunk downloads.
- Changed user-visible connection state wording: "Connected" -> "Receiving" or
  "Awaiting data".
- Added documentation for DHT "NOPE" values.
- Allow one to disable partial file sharing in general, enabling it only for
  rare files (no full copy present).
- Moved SDBM files to dedicated directories, either "gnet-db" or "dht-db".
- Added visual indication that the download queue is frozen.
- Added GUI configuration for "tth_auto_discovery".
- [GTK] New colors for search results, to quickly spot partial hits, alien hits,
  hits with media-type mismatch and hits from firewalled sources with no
  push-proxy listed.
- [GTK] Added expert-level configuration for the DHT mode, for whether DHT
  keys/values should be kept in memory, and for the SPAM SHA1 look-up table.
- Option --disable-ipv6 was removed from build.sh:  we now always compile with
  IPv6 when Configure detects OS support.

Under the Hood:
- Tweaked aggressive chunk selection logic.
- Let the RX link layer use the configured socket RX buffer size to determine
  the maximum amount of data that we can attempt to read in one system call,
  when the input layer cannot let us know how much data is pending.
- Ensure we only keep valid address and port information when merging PUSH
  servent addresses for a given GUID.
- Make sure fast assertion routines are never inlined or it would perturb
  stack traces due to missing offsets.
- When building search request, be careful to not include unnecessary bloat at
  the end of the extension block or other GTKG nodes will drop the query.
- DHT statistics now show local k-ball info along with the theoretical one.
- Added probalistic model to randomly avoid cached DHT values too far from the
  key's theoretical k-ball during value lookups.
- Smarter handling of "duplicate DHT values" (coming from the same publisher).
  We now allow fetching of these duplicates and retain different versions of the
  same value if we find a discrepancy (due to caching or partial re-publishing).
- PUSH flooding detection no longer bans offending hosts, but only regulates
  the traffic by dropping flooding requests.
- Compact extensions of forwarded queries to remove needless bloat: the XML is
  compacted, legacy HUGE requests to return URNs in hits are dropped, GGEP
  payload that are large enough are possibly compressed.
- s390(x) has IEEE 754 floats.
- Handle GGEP "u" in queries (SHA1 and bitprint URNs).
- Avoid showing "negative" retry delays.
- Turned some debugging-only assertions off.
- Fixed bad test that led to a crash when receiving improper FIND_NODE messages.
- Removed dependency to libxml2: now uses built-in XML support.
- Converted bitzi cache to a persistent SDBM-based database.
- Faster Bitzi request scheduling.
- The Gnutella routing table now dynamically adjusts its size.
- Deprecated GGEP "GTKGV1" in query hits, replacing it with "GTKGV".
- Make sure we never send back duplicate SHA1 hits, even if they are sharing
  twice the same file from different directories.

# v 0.96.9   2011-03-20  [beta for Windows]

This release only concerns the Windows platform.

Gtk-Gnutella is now fully functional on Windows but needs extensive beta
testing before it can be officially released as 0.97.  A pre-compiled binary
was released on Sourceforge (SVN revision 18885).

# v 0.96.9   2011-03-14  [stable]

New Features:
- Added UPnP and NAT-PMP support.
- Added a "log" command to the shell to manage logfiles.
- Added --gdb-on-crash switch, auto-activated when no core dumps are possible.
- Configures a crash directory as ~/.gtk-gnutella/crashes
- [GTK] Added visual feedback for UPnP and NAT-PMP configuration status.

Improvements:
- Better handling of uploading servers that also publish in the DHT.
- Added Global Host Cache as a last-resort bootstrapping mechanism when UDP is
  not working.
- Search results from firewalled hosts are now displayed in "dark slate gray"
- Message statistics now include a line per DHT message type instead of
  aggregating all DHT messages in the same basket.
- Always use ARC4 random number generator.
- Continuous entropy collection to make the random number sequence more random.
- Raised default ultrapeer connections in leaf mode to 4, maximum now being 5.
- ASCII parentheses are no longer considered evil characters and are not
  stripped from filenames anymore.
- Trailing spaces and periods are stripped from filenames because Windows
  does not like them.
- When stdout and stderr are different files, critical messages (assertion
  failures, crashes) are duplicated to stdout.
- [GTK] Added visual feedback icon for the DHT status.
- [GTK] Show green/yellow/red uploading status icons indicating increasing
  warning levels after which we declare that uploads are stalling.
- [GTK] Show DHT alt-loc queries on a per-file basis.

Bug Fixes:
- Prevented random crash at shutdown time (improper cleanup ordering).
- Prevent crash when running on linux kernels patched with grsecurity.
- Fixed improper hop count display (always showing 2147483647) in horizon stats.
- Fixed bad GUI status for files: do not say "SHA1 failed" unless it's true.
- Fixed message statistics which were reading payload size from the header
  instead of relying on what was actually read.
- OOB proxying code was not considering MUID collisions, causing memory leaks.
- Was not always reconnecting to other Gnutella nodes when missing slots.
- Fixed old bug triggered by setting "listen_port" to 1 multiple times.
- Magnets created from search results did not include push proxies.
- [GTK2] Was not saving tree view column positions in the statistics pane.
- [GTK2] Fixed broken DND so that files can be drag 'n' dropped from
  local searches and the download view to other desktop apps now.
- [GTK] New users were never able to see the preset filters in the menu.

Under the Hood:
- Fresh bogus IP lists and geo IP database.
- Updated SPAM detection rules.
- Updated Gnutella bootstraping logic due to changing environments.
- Cached DHT security tokens are now regularily expired.
- Tuned DHT maintenance traffic down, using statistical methods to further
  avoid needless RPCs.
- Clear empty databases at startup, attempt to shrink them otherwise.
- Fixed uninitialized memory read detected by valgrind.
- Made SDBM more robust when facing errors.
- Errors encountered during SDBM operation are now reported at exit time.
- If I/O errors were detected during operations of a persisted DB, request key
  checking at next startup.
- Added CPU frequency scaling detection (Linux and Windows only) to be
  able to properly determine whether we are overloading the CPU.
- Removed ShareMonkey URL support: they went out of business.
- Use the DHT routing table as a source for new node addresses when the host
  caches are depleted, before attempting to contact the UHCs.
- Throttle UDP pings so that we do not bombard a single host with many requests.
- Limit Gnutella connection attempts to a given host to one per 2 minutes.
- DHT routing table size now adjusts dynamically, lowering maintenance traffic.
- Throttle received DHT lookups as a precaution against abuse from rogue nodes.
- At startup time, sort cached host entries to put the most recent ones first.
- Optimized QRP table merging loop.
- Improved behaviour when facing stalling uploads.
- Only send "DHT" in Gnutella pongs if the DHT runs in active mode.
- Implemented DHT attack-prevention rules to guard against Sybil attacks.
- Added arc4random() default implementation for systems without it.
- Robustified query hit parsing so that we can filter out invalid hits.
- [GTK2] Completely migrated GtkFileSelection to GtkFileChooser.

# v 0.96.8   2010-03-21  [stable]

This is essentially a bug-fixing release for 0.96.7, in which some code paths
that were not exercised during pre-release testing are responsible for
fatal errors (sudden crashes due to assertion failures).

Bug Fixes:
- Removed an obsolete assertion now that gtk-gnutella supports NOPE DHT values.
  This was causing a crash each time a NOPE value was received in response
  to push-proxies queries in the DHT.
- Fixed memory alignment problem for non-forgiving CPU architectures.
- The virtual memory manager would crash when the kernel starts allocating
  pages in zones we wrongly thought were already used.
- Fixed long-standing bug in the Query Routing Table protocol where a RESET
  message with the wrong table size could sometimes be sent, causing the remote
  node to close the connection.
- Make sure an ultrapeer is not publishing NOPE values in the DHT if support
  for the DHT was disabled by user, which would be triggering a fatal assertion
  failure.

Under the hood:
- Fixed Makefile to ensure proper compilation under Gentoo's build scripts.
- Push-proxy client support now makes sure there is a space after a leading
  GET or HEAD word in the HTTP request.
- The DIME parsing layer now given more information in case of an error.
- Let THEX downloads peruse any supplied Content-Length information from the
  server (applicable only when the output is not chunked).
- The VMM layer is now smarter at identifying foreign pages when allocating
  blocks larger than a single page.
- When sending BYE messages, do not shutdown the socket layer if using TLS.
- Compilation cleanup for SunOS, Sun Studio, and versions of GTK < 2.5.0.

# v 0.96.7   2010-03-07  [stable]

Bug Fixes:
- Fixed memory leaks.
- Do not unduly rewrite fileinfo trailers on restart, messing with the "mtime"
  filesystem information.
- We were never forwarding to other ultra nodes queries that did not
  have a TTL of exactly 1 (severe bug impacting the network).
- Queries not kept for a local file match were most often dropped and not
  forwarded (severe bug impacting the network).
- Corrected detection of largefile support in Configure.
- Fixed oversight in token validation, to be able to verify older versions.
- Fixed metaconfig unit for systems without kqueue().
- PARQ complained about lack of X-Queued header even if HTTP status was not 503.
- Fixed sending of QUEUE callbacks to avoid hammering remote host, or stopping
  alltogether at the first timeout detection.
- Was sometimes failing to reconnect to more nodes after disconnections.
- Inverted logic was causing repeated UHCs queries when under the minimum
  amount of peer connections, causing undue traffic.
- Tigertree verification would sometimes crash and delete the wrong slices
  after a TTH mismatch.
- Fixed crashes at shutdown time due to inappropriate dropping of new messages
  in the message queues.
- Fixed crashes at shutdown time due to improper checking in the dynamic
  query cleanup code.
- Fixed invalid boundary test when server shrinks the requested file chunk.
- Unfreeze all PARQ entries from the IP after serving a quick slot, or we
  could have several frozen entries for that IP with no possible escape.
- Receptions of "GIV" and "QUEUE" were not checking whether the remote address
  was an hostile one.
- Changed the Bitzi ticket-requesting URL, as the previous one was no longer
  responding correctly.
- Fixed push-proxy support: requests (LIME/21) now only use v1 and acks
  (LIME/22) only use v2 because this is what LimeWire expects.  GTKG was
  sending LIME/21v2 which confused LimeWire, in effect disabling the ability
  of GTKG to act as a push-proxy.
- GUI node flags were not updated upon reception of a Push Proxy
  Acknowledgement (indicating the node became one of our push-proxies).
- Fixed status bar which lost the GTKG URL as soon as a new version was
  announced.
- Fixed crash when a compressed connection was closed and had never been
  given any data to compress.
- Fixed behaviour on DHT value lookups when the key exists but is not holding
  the proper value types.
- Fixed HTTP partial range merging logic.
- Fixed logic for push-fallback on connection timeouts.
- Fixed improper GUI status display when connecting to a push-proxy.
- Could wrongly discard a perfectly good push-proxy.
- Prevent "found more recent metainfo" warnings at next startup by properly
  flushing the metainfo database at shutdown time.
- The "Force push mode" menu entry could have no effect if gtk-gnutella had
  determined the host did not require a push.
- Avoid innocuous duplicates in the persisted download file.

Improvements:
- Better resuming of downloads on session restarts.
- Increased success rate on downloads from firewalled hosts.
- Completed support for DHT publishing: DHT is now fully functional.
- DHT bandwidth usage is now disaplayed in the GUI.
- Added support for GGEP XQ (eXtended Query) as used by LimeWire for search
  terms longer than about 30 characters.
- Try to decipher incorrectly encoded query flags from buggy Shareaza.
- Parse incorrectly formatted X-Alt header from buggy Shareaza.
- Implemented PFSP 1.0a: now emits and handles new X-Available header.
- Added some MIME types and file extension mappings.
- Added comand-line switch --compile-info to print some information
  that is hardcoded at compile-time.
- Persist known TTH roots in magnets.
- Swapped leaf and ultrapeer slots for GGEP UP in compliance with LimeWire
  which does not follow the published specification (so we don't either now
  but we are compliant with the de-facto standard).
- Will now remove uncompressed ultra connections when full and getting a
  new compressed one.
- Whitelist can now support TLS hosts and will refresh DNS mappings regularily.
- Improved granularity of the background task used to scan the library in
  order to prevent noticeable processing freezes as much as possible.
- Redesigned the output of the shell "status" command to show more information
  and display status flags (shown as icons in the GUI).
- Added liberal parsing of urn:sha1: and urn:bitprint to cope with clueless
  sites using hexadecimal instead of base32 to encode the hashes.
-´┐ŻAdded -v option to the shell command "props" to also display values along.
- Added real shell-like string parsing, and fixed escaping to work correctly.
- Added the ';' separator to be used to separate mutiple shell commands.
- Allow crashes and fast assertions "soft" failures to be timestamped.
- Don't answer to UDP pings from bad nodes, which include "alien" hosts.
- Loop through the TCP push-proxies more quickly until one can relay our push.
- Passively revitalize PUSH routes and wakeup starving downloads.
- Attempt to collect push-proxies passively from relayed query hits.
- A completed file waiting for being moved accross filesystems will now
  be flagged as such in the GUI "Downloads" pane.
- Detect and fix improper 503 HTTP status code replies when 416 was meant
  (broken HTTP replies from Foxy, Shareaza, and maybe others).

Under the hood:
- DHT (Distributed Hash Table) is now enabled by default.
- Reduced blackout period between two DNS server name lookups to 30 minutes.
- Updated PFSP specifications (partial file sharing) to version 1.0a.
- More statistics.
- Always use exact time when logging, not the cached time.
- Align to LimeWire's settings for DHT expiration and republishing periods.
- Do not emit any PFSP header when seeding a finished file.
- Even if bandwidth is tight, force emission of the X-Hostname header under
  certain circumstances because this information is precious.
- No longer constantly monitors for unsolicited UDP traffic, which will save
  precious CPU cycles.
- Improved malloc tracking by reporting symbolic names in stack frames.
- Optimized ultrapeer TX compression settings to reduce memory requirements,
  saving 288 KiB of RAM per Gnutella node connection (leaf or ultra).
- Increased default amount of ultrapeer connections to 42.
- Optimized memory footprint of the simple hashtable and allow it to be
  downsized as well.
- Consider a HEAD Ping message to be unsolicited UDP traffic.
- New shell command "memory dump" available when malloc stats compiled in.
- Some documentation held in SVN cannot be packaged on Debian, so it was
  moved to a separate directory that is left out from the packaging manifest.
- SDBM improvements for greater runtime performance and data consistency.
- Added DHT root node caching (k-closest nodes of a target KUID).
- Tuned DHT node lookups for more performance.
- Can now hold the SPAM look-up table in an SDBM database instead of memory.
- The directory holding "incomplete" files is now lock-protected to prevent
  two different gtk-gnutella instances from using the same one.
- Added long-due zone garbage collector, called when gtk-gnutella is "idle".
- Tuned block size to avoid wasting too many bytes in zones.
- Improved the virtual memory management layer to limit fragmentation,
  especially for servents running over long periods of time (weeks).
- Revised the vitrual memory management page-caching algorithm.
- Politely deny handshaking with peers presenting an X-Auth-Challenge header
  or an FP-Auth-Challenge one.
- Added support for firewalled alternate location collection and propagation
  through the X-Falt header (requires that the "fwalt/0.1" feature be
  advertised in X-Features).
- Added a non-persistent "alien" cache to keep track of IP:port of nodes
  that do not belong to the Gnutella network.
- Increased the buffer size of datagram sockets to 32KiB to allow reception of
  bigger messages: it is not uncommon to get OOB query hits larger than 4KiB.
- Count (and show) amount of launched SHA-1 and TTH file verifications.
- Translation updates.

Limitations:

- DHT code is currently sub-optimal for firewalled hosts.
- Manual bandwidth tuning is currently necessary to allow for efficient
  DHT usage.  Allow at least 8 Kib/s out, 15 KiB/s out being better.
  Also increase the lookup bandwidth to 32 KiB/s in and 6 KiB/s out, the
  defaults of 8 KiB/s in and 2 KiB/s out being very conservative.
- DHT is enabled by default with a fixed (manually tunable) configuration.
  There is no auto-tuning and no adaptation to traffic conditions yet.
  You need to explicitly disable the DHT if you don't want to benefit from it.

# 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.

# v 0.96.5   2008-04-01  [stable]

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.

# v 0.96.4   2007-07-07  [stable]

Bug Fixes:

 - The download overlap checking was incorrectly detecting mismatches.
 - A bug in the network queue caused frequent crashes (#1601523).
 - 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 (#1568205).
 - The order of items in the search history was wrong (#1568206).
 - 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.
 - Slightly better drag & drop support.
 - Removed GWebCache support so only UHCs are used for bootstrapping.
 - Improved the shell interface somewhat.
 - Downloads can be paused now.
 - Added a simple query syntax for easier creation of result filters.

Under the hood:

 - Added support for HEAD Pings and Pongs which improves the download mesh.
 - Implemented for Out-of-Band result delivery protocol v3 which protects
   against certain kinds of forged results.

# v 0.96.3   2006-11-09  [stable]

Bug fixes:
 - Portability fixes which affect the ARM architecture.
 - Ultrapeers could be unnecessarily demoted to leaves in auto mode.
 - [GTK2] Fixed a bug that could cause spurious assertion failures or memory
   corruption.
 - Fixed bug that might have caused truncation of printed numbers in certain
   places.
 - Rewrite the upload_history file if the history was cleared.
 - Fixed crash caused by an assertion failure that could occur if IPv6
   support was disabled at compile-time.
 - Fixed buggy utf8_is_valid_data().
 - Fixed a couple of small technical mistakes in translations.
 - Fixed compilation for Cygwin without IPv6 support.

Updated:
 - Updated French translation.
 - Updated list of hostile IP ranges.
 - Updated list of bootstrap caches.
 - Updated list of country names and codes for Serbia and Montenegro.

Improvements:
 - Turkish translation.
 - New shell commands: online, offline, props, status.
 - The search list allows selection of multiple items and applying actions to
   them now.
 - Added a tray icon to hide the gtk-gnutella application windows. This
   feature requires Gtk+ 2.10 or newer.
 - Added a limit of downloads per file which defaults to 40 to prevent using
   an unreasonably large amount of sources.
 - Keep certain irrelevant columns empty for "local:" searches instead of
   showing bogus data.
 - Added README.Debian with instructions how to compile gtk-gnutella yourself
   on Debian-derived systems.

Under the hood:
 - Rewrote "fast" assertions so that they are sufficiently portable and do
   not mess with debugging. Thus they are always enabled now which reduces
   code size signifcantly.
 - The TLS cache is now persistent without SQLite too.
 - Disabled reservation of Gnutella slots and vendor limits because it's not
   useful with the current population of Gnutella.
 - Disabled GWebCache updates.
 - Configure bails out now if a mandatory dependency e.g., libxml2, GLib,
   zlib isn't available.
 - Added -Wshadow to the default compile flags for GCC for even cleaner code.

# v 0.96.2   2006-10-16  [stable]

Bug fixes:
 - Fixed bug #1467793 "uname() return value".
 - Fixed bug #1467681 "weird HTTP acknowledgment".
 - Fixed bug #1422526 "`Drop results' should prepend, not append, to filters".
 - Fixed bugs in the dynamic querying logic that caused leaves to
   receive very few results through gtk-gnutella ultrapeers.
 - Fixed crash on 64-bit platforms when using the navigation tree.
 - Fixed format mismatches in some translated message catalogs.

Updates:
 - Updated French, Japanese and Ukrainian translations.
 - Updated list of hostile IP ranges.
 - Updated list of bootstrap caches.
 - Updated list of country names and codes.

Improvements:
 - Italian translation.
 - Fairly complete support for magnet-links; magnets can be passed per
   drag & drop or entered via the search box. Magnets can be generated
   from the search results display and the downloads display through
   the context menu.
 - SHA-1 based spam filtering.
 - Built-in spam detection for certain kinds of spam.
 - [GTK2] Overhaul of the downloads display.
 - [GTK1] Downloads can be sorted albeit the sorting does not persist.
 - Compiling the topless is variant is now as easy as
   "./Configure -Oders -Dd_headless".
 - Support for several command-line options like "--help".
 - A local shell interface accessible with "gtk-gnutella --shell".
 - New shell commands "nodes" and "shutdown".
 - All downloads are stopped now if the disk apparently filled up.
 - Caching of TLS-support allows automatic use of TLS.
 - ~/.gtk-gnutella/whitelist supports the "tls:" as well.
 - More search results columns for experts (hidden by default).
 - Diverse IPv6 settings can be configured in the GUI now.
 - The setting "IPv4 and IPv6" works now; the default is "IPv4 only".
 - Results bearing no SHA-1 are suppressed by default.
 - Results from hostile IP ranges can be made visible; they are discarded
   by default.
 - One's own shared files can be search by using the prefix "local:"
   for searches. Local searches uses regex syntax unlike Gnutella searches.
   "local:" alone will list all shared files. Local searches results
   allow drag & drop and generation of magnet links.
 - Support of Socker for access to privileged TCP and UDP ports below 1024.
 - Optionally bind sockets to a configured address instead of the wildcard
   address.
 - Support of IPv6-to-IPv4 Transport Relay Translators (RFC 3142).

Under the hood:
 - mmap()-based memory allocation to decrease fragmentation and
   increase performance.
 - Support of socket option TCP_DEFER_ACCEPT (Linux).
 - Support of accept() filter "dataready" (FreeBSD).
 - Support of /dev/poll on Solaris and IRIX.
 - Sharing of file descriptors so that we don't require a file descriptor
   per swarm source but only one per file.
 - Use of pwrite(), pwritev() for flushing download buffers.
 - Reopen log files on SIGHUP if the command-line options --log_stderr or
   --log_stdout are specified which is useful for topless mode.
 - Disabled following of HTTP redirects.
 - Support of "deflate" transfer-encoding for all downloads.
 - Support for compression of UDP packets.

- (2006-04-22 - RAM)
 * Moved downloads were not lingering in the GUI once completed.

- (2006-03-11 - RAM)
 * Fixed improper UDP overhead accounting.
 * Flush ASAP when file is overcommitted: we have more data buffered than
   there are in the file.

# v 0.96.1   2006-02-22  [stable]

Bug fixes:
- Fixed issue when browse host is the only search in the list (bug #1421196).
- Reset download buffers on incomplete writes (fixes bug #1429981).
- Fixed ever-growing sidebar at each relaunch under GTK1 (bug #1421940).
- 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.

- (2006-22-01 - RAM)
 * Further fix for #1421940, regarding the vertical position of the search
   list on the sidebar, which continuously went off after each restart.
 * Made root window position fixup more robust to avoid random jumps when
   we cannot determine the window position correctly.
 * Was wrongly showing twice the same b/w rate in downloads with more than one
   source: the second rate is supposed to be the aggregated rate of all the
   sources.
 * Downloads now show how many HTTP requests were made on the same connection,
   if more than one, by appending a "#n" at the end of the status.
 * Only update the range in the GUI after we decided which boundaries we'll use.
 * Added workaround against broken HTTP servers such as GnucDNA which don't
   show us the HTTP version in their statuses.
 * No longer need to fake presence of a README.debian: manifests were updated!

- (2006-19-01 - RAM)
 * Fixed misdetection of chunk completion, causing undue abortion of downloads
   each time a chunk was completed.
 * Take into account buffered data when showing download progress, instead
   of waiting for the data to be flused on disk to update the counters.

- (2006-16-01 - RAM)
 * Minimum connection timeout is set to 15 seconds.
 * Default for "maximum % of slots / vendor" raised to 90.
 * Forgot to reset download buffers on incomplete writes (fixes bug #1429981).

- (2006-04-01 - RAM)
 * Print PFS indication for actively queued entries as well.

- (2006-02-01 - RAM)
 * Fixed issue when browse host is the only search in the list: it could not
   be closed, and GTKG would dump a core at exit time.  Fixes bug #1421196.
 * Use conditionnal form when reaching "code that should not have been".

- (2006-01-30 - RAM)
 * Fixed line incorrectly starting with a leading $ instead of %.

- (2006-01-26 - RAM)
 * Desktop and png files are located in extra_files now, no longer at the
   root of the source tree: fixed debian/rules accordingly.

# v 0.96   2006-01.24  [stable]

New features:
- Browse Host (HTML and Gnutella), TLS and IPv6 support.
- Chinese and Greek translations of the user interface.
- D-BUS plugging.
- Added hot keys: F2, F8 and F9 (see menu View->...).
- Searches are now created with a configurable expiration date.

Improvements:
- Optimization of the UTF-8 processing.
- Better filename conversion to locale, with automagic charset detection.
- General performance improvements in QRP and search filters.
- Full "nl" translation.
- Sorting persistence.

Under the hood:
- Buffering of downloaded data to avoid excessive disk fragmentation
- Support for the epoll()/kqueue() system calls.
- More optimistic PARQ ETA, and PARQ back-off when QUEUE are unanswered.
- NFS-compatible session locking if anyone cares.
- Nifty property browser.

- (2006-01-21 - RAM)
 * [GTK1] Do not deselect items on menu "browse host" selection.
 * Added option to copy browse-host results to passive searches (disabled
   by default).  Setting done in GUI from search option pane.
 * Added cygwin directory containing rules suitable for building cygwin
   binaries (on a cygwin platform, no cross-compiling).
 * Fixed crash on exit when hosts are browsed.

- (2006-01-13 - RAM)
 * Guard against servers incorrectly shrinking the HTTP range in such a
   way that the end is lower than the beginning! (Shareaza 2.1.0.0 does this)

- (2006-01-01 - RAM)
 * Distinguish between fully completed browse host requests and those that
   are aborted in the middle of the transmission.
 * Added properties "html_browse_served" and "qhits_browse_served".
 * Added property "browse_host_max_results".

- (2005-12-21 - RAM)
 * Use specialized routines for 8-bit and 4-bit patches to increase the speed
   of QRP patching, which is CPU intensive. [Patch from Bill Pringlemeir]
 * Blindly accept remote GTKG version identification if we're expired.
 * Removed unused version_newer() routine.

- (2005-12-11 - RAM)
 * Allow launching of "browse host" on expired (completed) uploads from the GUI.
 * Configure updates to allow configuration of madvise(), sigaction(),
   the SA_INTERRUPT flag for sigaction(), and FAST_ASSERTIONS.

- (2005-12-10 - RAM)
 * [GTK1] Browse all the hosts of the selected entries like GTK2 does, not
   simply the host listed in the detailed search information pane.

- (2005-11-29 - RAM)
 * Always collect the TX and RX stacks asynchronously.
 * Update downloads pane when browse-host is created or when search is closed.

# v 0.96   2005-11.22  [beta]

New features:
- Browse Host (HTML and Gnutella), TLS and IPv6 support.
- Chinese and Greek translations of the user interface.
- D-BUS plugging.
- Added hot keys: F2, F8 and F9 (see menu View->...).
- Searches are now created with a configurable expiration date.

Improvements:
- Optimization of the UTF-8 processing.
- Better filename conversion to locale, with automagic charset detection.
- General performance improvements in QRP and search filters.
- Full "nl" translation.
- Sorting persistence.

Under the hood:
- Support for the epoll()/kqueue() system calls.
- More optimistic PARQ ETA, and PARQ back-off when QUEUE are unanswered.
- NFS-compatible session locking if anyone cares.
- Nifty property browser.

- (2005-11-21 - RAM)
 * [GTK1] Added ability to launch a browse-host from a download or a node.
 * Will now correctly mark as finished browse host entries which have
   a known size (maked when they're done, that is).

- (2005-11-17 - RAM)
 * Added counting of received bytes during host browsing.
 * Better handling of sudden file size knowledge.
 * Update GUI information when size of browse host is known.

- (2005-11-17 - JA)
 * PARQ now backs-off everytime a QUEUE failed to send.

- (2005-11-15 - RAM)
 * Added client-side "browse host" support in the core.
 * [GTK1] Initial implementation of client-side "browse host".

- (2005-11-11 - RAM)
 * [GTK1] Changed the way autoselection works in search results: it now
   happens only when one selects the root of a folded tree, and it
   auto-selects all the (hidden) children.

- (2005-11-10 - RAM)
 * When a bg_task is killed, don't launch any more processing in the
   "done" callback: this cause QRP compression to attempt to send data
   on a node that was being removed.

- (2005-11-09 - RAM)
 * Re-activated suffix filtering rules.

- (2005-11-03 - RAM)
 * Added .srt (video subtitles) to the default list of shared extensions.
 * Tuned algorithm for PFSP with low amount of sources: use the amount of
   alive sources instead of the amount known in the mesh.  Also request
   the minimum filesize for PFSP as quickly as possible, but otherwise
   request the smallest chunk size first to have rapid exchanges with the
   remote server to gather more sources.
 * Added GUI mapping for new pfsp_minimum_filesize property.

- (2005-10-31 - RAM)
 * Don't pursue QRT patch sending when node connection has been broken.

- (2005-10-20 - RAM)
 * When we know a small amount of alternate sources and PFSP is enabled,
   always include ourselves in the X-Alt we generate to help propagation
   of alternates, even if the bandwidth is saturated.

- (2005-10-02 - RAM)
 * GTKG was not tracking the TTL of broadcasted messages received along a
   given connection, thereby leading it to believe it was receiving undue
   duplicates whereas the node was simply resending it with a higher TTL.
   This unfortunate bug was introduced on 2004-08-28 so all 0.95.x suffer
   from it...
 * Added workaround to allow ultra connections to old (broken) GTKGs to be kept
   without remote ending it abruptly: simply never send duplicates to those...

- (2005-10-01 - RAM)
 * Fixed buffers_strip_leading() when the stripped size equals the buffer size.

- (2005-09-29 - RAM)
 * Fixed buffers_strip_leading() when trailing I/O vector is emptied.
 * Show estimated remaining time in the Download pane as well.

- (2005-09-28 - RAM)
 * At exit time, one must not try to flush download buffers holding nothing.
 * Performance improvement, especially when running as ultra peer.

- (2005-09-27 - RAM)
 * Flush pending download buffers at exit time.
 * [GTK1] When download is done / checking SHA1 / moved, update parent's
   status in case tree is collapsed.
 * [GTK1] Always freeze the Active and Queue pane trees, updating them only
   once per second, as controlled via main_gui_timer(), or when a button press
 * Show SHA1 checking status and file moving feedback in the Download pane.
 * Revisited chunk size computation: use a more realistic estimate of the
   potential concurrency we'll get, and account for the shrinking size of
   the remaining data to be downloaded.

- (2005-09-26 - RAM)
 * Added "download_buffer_size" and "download_buffer_read_ahead" properties.
 * Buffer more data per download to avoid endless lseek()/write() system
   calls when swarming with lots of sources, and try to reduce filesystem
   fragmentation by writing more data at once.
   was done that should trigger a display refresh.

- (2005-09-25 - RAM)
 * Don't honour settings for monitoring node "bad IP / unstable" addresses
   when we're low on pongs: we don't want to discard IP addresses or
   connections and end up being forced to contact web caches for new addresses.
 * Don't use alternate locations as source for "semi-pongs" when we're not
   low on pongs: we can't know for sure that those nodes have free slots and
   that their HTTP port is the same as their Gnutella port.
 * Disable "monopoly protection" when we're low on pongs (fixes #1177512).
 * [GTK1] Buffer updates to fileinfos to avoid too frequent GUI redrawing,
   like GTK2 is already doing.  Update every second though, don't enforce a
   3 second limit. (fixes #967781)
 * Only redraw visual progress if the currently shown fileinfo is updated.
   (fixes #967781)

- (2005-09-16 - RAM)
 * Now monitors the CPU usage and lower consumption if we detect overloads.
 * Reduce amount of GUI refreshing done when CPU overloaded.
 * Added chip.xpm icon, lighted on when CPU is overloaded.
 * Optimized query routing via QRT.

- (2005-09-14 - RAM)
 * Configure will now use "mkdir -p" over "install -d" if possible to create
   directories (fixes bug #972777).
 * Detect too large UDP messages explicitly to log their dropping in the
   proper category.

- (2005-09-13 - RAM)
 * Fixed file descriptor leak in uploads (bug #1285670).

- (2005-09-11 - RAM)
 * Added robots.txt file to forbit all web crawlers from browsing us.
 * The mechanism to add special shared files was made generic.  The table
   listing them is specials[] in core/share.c.
 * Added property "bootstrap_debug" to monitor the bootstraping process.
 * [GTK1] Added GUI settting for bootstrap_debug.

- (2005-09-04 - JA)
 * [PARQ] Implemented option to always allow uploads which would take less
   than a certain amount of seconds to complete.
 * [PARQ] Show an astrisk in front of uploads which are given a quick
   upload slot (time or size based).

- (2005-08-31 - RAM)
 * Reduce the amount of time() and gettimeofday() system calls drastically.
   This should reduce the kernel time used by GTKG.

- (2005-08-31 - JA)
 * [PARQ] Added option to allow small uploads to always continue.

- (2005-08-30 - RAM)
 * Revisited download selection logic when a GIV string is received.
 * Improved tracing of the download selection logic for debugging.
 * Added another banned GUID from Morpheus hosts.
 * Added fast UTF-8 char decoder to try to reduce overhead of remappings.
 * Validate the CHNK list from the fileinfo database, using the trailer
   information if it is corrupted or missing.

- (2005-08-30 - JA)
 * [PARQ] Added setting to allow more optimistic calculation of ETA. 
   default is TRUE.

- (2005-08-28 - RAM)
 * Will now serve GTKG's favorite web icon when "/favicon.ico" is requested.
 * Typo in metaconfig symbol prevented the use of sendfile() on platforms
   that have it.
 * The OOB-proxying ultrapeer would send back the local hits to the leaf
   using the mangled MUID, instead of the original, surely causing the leaf
   to discard the replies.

- (2005-08-27 - RAM)
 * Adapt stalling threshold to the amount of upload slots configured.
 * Reduced stalling TX buffer down to 1K.
 * Count HTML and Gnutella browse host requests.
 * Show HTML and Gnutella browse host request counts in upload stat pane.
 * Don't allow dynamic upload slot allocation when uploads are stalling.
 * Added internal GUID to each fileinfo, to be perused by downloads at
   retrieval time, ensuring a download source is uniquely linked to a given
   fileinfo.
 * [GTK1] Added GUI setting for "parq_debug".

- (2005-08-24 - JA)
 * [PARQ] Added parq_debug property for PARQ specific debugging
 * [PARQ] Fixed bug where an upload got queued, with an ETA of 0s
   and all upload slots where available

- (2005-08-21 - RAM)
 * GTKG is no longer explicitly asking replying servents to skip XML in
   query hits, since it can now show the XML.

- (2005-08-20 - RAM)
 * [GTK1] Added 7 new GUI-settable debug levels.
 * [GTK1] Added provision for displaying XML data from search results.
 * [GTK1] Search results now show XML payload, if any.

- (2005-08-15 - RAM)
 * Show GTKG's version, amount of files and total size shared in HTML browsing.
 * If they advertise a host name in query hits, redirect an HTML browsing
   to the qualified host name if it was directed to the IP address, so that
   the links shown there have a longer lifetime.
 * Allow the TX deflate layer to have its buffer size / flush / nagle params
   configurable externally.

- (2005-08-14 - RAM)
 * Added size of shared files within brackets in HTML browse-host output.
 * Fixed buglet that caused no status to be displayed for completed uploads.

- (2005-08-13 - Hans)
 * Include configure options for GNU TLS. GNU TLS is enabled when
   found.

- (2005-08-10 - Hans)
 * Include configure option for IPv6. Ask the user if this should be
   enabled.
	
- (2005-08-04 - RAM)
 * Make sure we abort the upload immediately if the shared file is no longer
   present on the disk, especially when they are being queued for that
   no-longer-existi
Results 1 - 1 of 1
Help - FTP Sites List - Software Dir.
Search over 15 billion files
© 1997-2017 FileWatcher.com