gtk-gnutella man page

gtk-gnutella is a GTK+ Gnutella client for Unix. It supports both searching and sharing with the 0.6 version of the Gnutella protocol and includes support for numerous protocol improvements and additions that have been added to the Gnutella network since.

The Gnutella network allows users to search for files and to advertise files shared locally, but is not handling file transfers which is done through HTTP. The addition of Gnutella-specific HTTP headers makes each Gnutella client a powerful file swarmer where even firewalled hosts can contribute.

Great care has been devoted into making gtk-gnutella powerful, efficient and reliable.

For developers mostly: this requests a final memory cleanup sequence at exit time in an attempt to be able to spot memory leaks by looking at all the remaining allocated blocks, letting the developpers figuring out, perhaps, why they were not cleaned-up properly.

This options causes gtk-gnutella to become a daemon. It detaches from the terminal (if started from one) and forks itself into the background. It also changes it working directory to the root directory i.e., "/" so that it doesn't block a mount point for example. This is mainly meant for headless mode but you can also use it if the Gtk+ GUI is enabled.

For example, if you do not start gtk-gnutella from a terminal but from a window manager menu, there's little reason to not daemonize gtk-gnutella. Thus you might want to add the --daemonize option in this case.

Please note that when gtk-gnutella is started as a daemon all output which is normally send to the standard output and standard error output (usually your terminal or a common log file such as ~/.xsession-errors), is sent to /dev/null. The options --log-stderr and --log-stdout can be used to redirect log output in this case.

Redirecting these log messages also works without --daemonize. Of course, log files can become large and you might want to archive them or delete them periodically. After moving or deleting the log files, you can send gtk-gnutella a SIGHUP signal to create new log files.

When this option is used to connect to an already running gtk-gnutella process over a local unix domain socket. This socket is located at "$GTK_GNUTELLA_DIR/ipc/socket", thus normally "~/.gtk-gnutella/ipc/socket". The socket is only accessible by the user running gtk-gnutella which is enforced by filesystem permissions. The socket is in a dedicated directory because apparently not all systems honor the access permissions on sockets as seen through the filesystem.

You can disable this feature by setting the property "enable_local_socket" to FALSE. It is recommendable to use this local socket whenever possible instead of the TCP socket to access the shell interface remotely. The reason is that the authentication token is passed non-encrypted over the network and everyone who can sniff the network is able to connect to the remote shell. This may not matter over the loopback interface or a LAN, but it's a bad idea to use this over the Internet.

When gtk-gnutella is first started, it will attempt to connect to a well-known hosts server for some hosts to connect to. If you know a host you want to connect to, you can enter it in the box on the GnutellaNet tab and push the Add button. When first connecting to the gnutella network, it can take some time to establish a stable connection. Be patient.

To search files just type your query in the search box at the top of the screen. All searches, both active and inactive, are shown in the sidebar.

You can have multiple searches running at once. To start another search while the first one is running, simply enter another search term into the edit box at the top of the window.

To stop a particular search and remove its tab from the search window, select the search by clicking on its tab and click the "Close search" button. If you want to clear the list for a particular search, but want to continue to see new files that are received for this search, click the "Clear results" button.

It is possible to apply filtering to search results using the filter editor. Click on "Edit filters" to access the editor. Use of the filtering editor goes beyond the scope of this man page, but there is a tutorial on this topic on the gtk-gnutella homepage.

When you find a file that you want to download, select the file in the list and click "Download selected". This file will be placed in the download queue. On the downloads view you can watch the download progress of the file(s) you are downloading.

It is also possible to select a bunch of files for downloading at once. By holding down the control or shift keys while clicking files, you can select several files and then click "Download selected" to put them all in the download queue at once.

Most of the configuration can be done via the "Preferences" window that can be accesed using the "File -> Preferences" menu-option. You will find several tabs there, each tab regrouping common information. But some specific information pertaining to downloads or searches are directly available on the "Downloads" and "Uploads" panes.

If you linger your mouse over each configuration parameter, a tooltip window will popup explaining the meaning of that parameter. You may have to press "Enter" after a text input, or move the focus to another parameter to validate your entry. Items configured via spin buttons normally take effect immediately, unless you type text instead of using the spin buttons.

Per-user configuration file, for core settings. This can be edited when the program is not running, but it is best to use the GUI to change configuration variables. gtk-gnutella saves this file every time the program is exited normally.

$GTK_GNUTELLA_DIR/config_gui

GUI configuration. It is best to not edit this file.

$GTK_GNUTELLA_DIR/dmesh

This is where the download mesh is persisted. You don't need to worry about this.

$GTK_GNUTELLA_DIR/dmesh_ban

This is where temporarily banned download mesh entries are stored.

$GTK_GNUTELLA_DIR/done.namesize

This file holds the name and size of files completely downloaded by gtk-gnutella and which will now be ignored.

$GTK_GNUTELLA_DIR/done.sha1

This file holds the SHA1 of files completely downloaded by gtk-gnutella and which will now be ignored.

$GTK_GNUTELLA_DIR/downloads

This is where the download queue is persisted. Only the direct downloads (i.e. non-pushed) can be saved, since they don't need routing information.

$GTK_GNUTELLA_DIR/hosts

This is the host cache. This is saved by gtk-gnutella on exit and should not be edited by hand.

$GTK_GNUTELLA_DIR/searches.xml

This is where the open searches and all the search filters are saved.

$GTK_GNUTELLA_DIR/sha1_cache

This is where the cache of all the computed SHA1 is stored.

$GTK_GNUTELLA_DIR/tth_cache

This is the directory under which all the computed TTH trees are stored. These files are binary data.

gtk-gnutella searches GTK_GNUTELLA_DIR for configuration files. If this variable is not set, HOME is used instead. If HOME is not set, then no configuration information will be saved when gtk-gnutella exits.

Yann Grossel wrote the original gtk-gnutella which was running as a Gnutella 0.4 client in 2000.

Raphael Manfredi <Raphael_Manfredi@pobox.com> is the current maintainer and project leader (since version 0.14, released early September 2001).For support, please contact the developer list, which can be reached at <gtk-gnutella-devel@lists.sourceforge.net>.

For a full list of contributors, open the "About" menu.

Brian St. Pierre <bstpierre@bstpierre.org> wrote the initial version of this manpage.