ed2k://urlslave - ed2k URL integration for GNOME

Extended version of the original ed2k://urlslave to work with mlDonkey. It features network capabilities, verbose error/warning messages and conversion of hex-defaced URLs produced by dumb HTML editors like those from MICROS~1.


2004-01-09 GTK+2 and updated mldonkey interface!
Paul Wilhelm Elsinghorst <paul [at] uni-bonn [dot] de> sent 2 patches, one features GTK+2 bindings for mlurlslave, the other makes mldonkey 2.5-4 work better with mlurlslave. The patches have been verified. The GTK+2 patch is now included in mlurlslave 1.1.


As ed2k://urlslaves are Gtk-Perl applications you will need to install Gtk-Perl on your system if it is not already installed. You can download Gtk-Perl source distributions from gtkperl.org or CPAN, searching Gtk-Perl. Or simply install a binary distribution. Possibly RPMfind will help you finding a packaged (binary) distribution for your system. Search for gtk-perl and perl-gtk.


Setting up ed2k://urlslave for mlDonkey and GNOME:

  1. Copy (as root) mlurlslave to a place in $PATH, I suggest /usr/local/bin/
  2. Start mlurlslave once to create the default configuration file for your user
  3. Edit the configuration file to fit your needs (~/.mlurlslaverc)
  4. Start gnomecc and open the URL handler capplet
  5. Fill 'ed2k' into the protocol field and 'mlurlslave "%s"' to the handler field
  6. Hit 'set' to add the new protocol handler to the list
  7. Take any GNOME program (e.g. Galeon) and click some ed2k:// URLs ;)


ed2k://urlslave for mlDonkey ©2002 Veit Wahlich <cru [at] zodia [dot] de>, released as free (libre) software under the terms of the GNU General Public License, version 2.
The author disclaims responsibility of any damage or harm caused directly or indirectly by usage of this software. Use only at your own risk.


The following releases are available:

Errors and Warnings

Connection Timeout
This happens when mlurlslave establishes a connection with the mldonkey core (or what it believes to be the mldonkey core) but it the core does either not respond or it responses too slow. Two reasons are known to cause this: a) The process listening on the port specified in ~/.mlurlslaverc is NOT the mldonkey core. Read below (Terminated Abnormally) how to check and fix this. b) A network problem occured. This can be e.g. a routing problem or a firewalled telnet port.

Queue Timeout
The URL was added to the download queue but the mldonkey core did not give a success or failure message in time. This can happen when the core is very busy and is usually not a reason to be afraid of, as the download usually has been started successfully. It just informs you that you should check the queue for your download. If it happens frequently, you can increase the queue_timeout value in your ~/.mlurlslaverc. If this is the case, please send me an EMail about how many downloads are in your queue and what is their overall size, what speed/size your CPU and RAM is and your current download rates, to allow me to calculate a higher default value in the future.

Terminated Abnormally
This means mlurlslave was disconnected from the peer, which should be your mldonkey core. This is usually caused by one of these two common problems: a) You are connecting to the mldonkey core from another computer. The IP address of the computer running mlurlslave is not allowed to connect to the mldonkey core, by default only (=localhost) is allowed to connect and you need to dilate this list. E.g. if the IP addresses of all computers to allow are, and you can define a new allowed_ips list with the mldonkey-command "set allowed_ips ''". You can use the GUI's "Console" to execute this command. b) The process listening on the port defined in your ~/.mlurlslaverc file is NOT the mldonkey core. Run 'netstat -lntp' and determine which process bound to port 4000. This is often an ICQ client, i.e. GnomeICU, which uses port 4000/tcp as its default incoming port.

Connection Failure: Connection Refused
This is because the mldonkey core is not listening on the IP address and/or the port defined in your ~/.mlurlslaverc configuration file, which defaults to port 4000. There are two common reasons why this happens: Either you told mldonkey to bind telnet access to a port other than 4000, or you have no password set, which causes mldonkey not to provide telnet access. If your port is other than 4000, you need to change the port directive in your ~/.mlurlslaverc file. If you have not set a password yet, use the mldonkey-command "set password 'thisismypasswd'" and restart the mldonkey core. You can easily execute mldonkey-commands from mldonkey_gui under "Console", but you can also use the File -> Settings dialogue to change the password (for both GUI and client).