Gnutella 服务端/客户端实现,gtk-gnutella 0.98.4 发布
jopen 12年前
gtk-gnutella是Unix类系统下 Gnutella 的服务端/客户端实现,该软件依赖于 GTK+ (1.2版以上 ) 、 libxml,但Gnome不是必须的。目前,gtk-gnutella主要在Linux(Debian 3.1)下进行开发与测试,至少支持如下操作系统:Linux、 FreeBSD、 NetBSD、 Darwin、 Solaris、Tru64 UNIX (OSF/1)、 SGI IRIX、BeOS等,支持的CPU构架包括:x86、AMD64、PowerPC、SPARC、MIPS等。通过gtk-gnutella,可以分享、搜索、下载各种文件,gtk-gnutella的稳定性也很好。
这次发布的内容如下:
新的特性
- Plugged support for "OOB Proxy Veto".
- Added a Semi-Reliable UDP layer for Gnutella for safe OOB hit delivery.
- Report and display available file size when handling hits for partial files.
国际化
- Added French and Turkish translations of the FAQ.
- Updated French and Turkish translations.
- Fixed typo in a German translation.
- Cleanup of the English FAQ, updating obsolete answers.
改进
- [GTK] Show different icon and tooltip when port mapping done through NAT-PMP.
- [GTK] Flag results from servents with a banned GUID in the "Info" column.
- [GTK] Windows version now compiled with GTK 2.24.10.
- Non-sharing servents can now be promoted to ultra peers (in automatic mode).
- Be stricter about vendor messages origin: ignore them if from wrong protocol.
- Strip GGEP "NP" key from relayed queries.
- Use higher-priority UDP messages for important or time-sensitive data.
- Use semi-reliable UDP to transfer critical data (query hits).
- Make sure the queries we OOB-proxy have a GGEP "SO" key for secure OOB hits.
- Ignore unsecure OOB hit promises from hosts known to support secure OOB.
- Use some of our connected ultra nodes when filling UHC pongs.
- Updated GeoIP databases.
- When resuming from crashes, do not stop session-only searches.
- Persist selected search media types from session to session.
- Report last modification time + available size of partial files in hits.
- Added "webm" and "zoo" to the list of file extensions that can be shared.
- Display unexpected command-line argument before usage output.
- The shell "status" command now shows how port mapping was done, if any.
- Do not forward "What's New?" queries to leaf nodes with empty routing tables.
Bug Fixes
- Avoid segmentation fault if GUESS 0.2 cache is empty.
- Avoid SDBM crash when clearing database which had big keys/values present.
- Use signed arithmetic to compute compression ratios.
- Consider x.x.x.0 as a possibly valid IPv4 address.
- Was not correctly parsing the saved PARQ queue, causing undue forgetting.
- Fixed key accounting in DBMW.
- SDBM was sometimes not iterating over unflushed dirty LRU pages.
- Fixed wrong DHT value response message format.
- Fixed crash when attempting to browse host on a queued source.
- Do not route duplicate queries with higher TTL to leaves.
- Prevent sending of duplicate (locally issued) OOB-proxied queries.
- Fixed startup crash bug on Ubuntu machines.
- Changed the Debian menu icon to use the one which is 32x32, as lintian wants.
- Fixed auto-restart function on 64-bit Windows.
Under the Hood
- [GTK] Darken the color used to display partial results (yellow -> dark gold).
- Various PARQ cleanup to smooth QUEUE callback operations.
- Fallback to pre-computed symbol file when loaded symbols are garbage.
- Relax file_path_set() and open_read() to gracefully handle relative paths.
- get_folder_basepath(): protect against unsuitable environment variables.
- Recompute the amount of banned fds dynamically as config parameters change.
- Detect series of unclaimed OOB hits from a host to ignore further queries.
- Changed MUID marking strategy in queries to better accomodate OOB proxying.
- Added a UDP TX scheduler to optimize datagram sending by priority.
- Enhanced the incremental zlib operations, reusing objects across operations.
- Added new official ISO 3166 country codes.
- node_read(): was wrongly resizing the message buffer for each message!
- Refactored aging table to lower memory footprint (by 6 pointers per entry).
- On Windows, keep last 3 stdout/stderr logs, created when launched from GUI.
- Send important UDP messages with a "control" priority.
- Count TCP push-proxy requests aimed at firewalled-to-firewalled connections.
- Patch UDP PUSH messages aimed at initiating firewall-to-firewall transfers.
- Count received PUSHes requesting FW-FW transfers, plus those targeting us.
- dht_init(): do not reset the KUID if DHT disabled at startup.
- Detect whether we are restarting after a clean shutdown or after a crash.
- bg_task_terminate(): don't panic at shutdown when handling unaccounted tasks.
- Reserve only about 40% of the available virtual memory space on Windows.
- Always discover port-mapping devices, even if they won't be used.
- Ensure reasonable TTL and hops for PUSH messages from UDP we will route.
- The shell "nodes" command now displays the gnet port along with the address.
- Added metaconfig check for malloc() superseding.
- New switch --disable-malloc added to build.sh to prevent superseding malloc().
- When launching gdb during crash, ask for threads and thread stacks as well.
- External IP changes were not waiting for 3 hosts in 3 different CIDR ranges.
- Removed too restrive permissions in the man page (COPYRIGHT section).
- Shell meta-chars in executable path do not prevent loading symbols via BFD.
- Added more DHT statistics.