lugdunum2k.free.fr website backup  


logo2 The lugdunum kit to build an eDonkey server
Building an efficient edonkey server on linux


eServer configuration file.

maxVersion (integer)
A client software has a version number. Clients having a version greater than maxVersion are not allowed to login. Default value = 2000

maxnozlib (integer)
New in version 16.44. When the current number of users exceeds the maxnozlib value, only zlib aware clients are alowed to login. Default value = 250000

maxservers (integer)
Limits the maximal number of servers that this server can add in its list. To protect against some Denial Of Service attacks. Default value = 4096

maxstrangers (integer)
Used with the nickcommunity parameter. No more than 'maxstrangers' users not belonging to the community are allowed to login. Default value = 1000000

minEVersion (integer)
Used with the trackemule feature. Gives the minimum Emule version that this server allows. Emule version is a hexadecimal number between 00 and FF. Default value = 0x26

minVersion (integer)
A client software has a version number. Clients having a version lower than minVersion are not allowed to login. Default value = 59

minkeylength (integer)
Default value 3. This is the minimum length of a keyword. The server builds indexes on the keywords contained in the filenames, to be able to perform fast searches.
As indexes use a lot of ram, 16.44 server can ignore short words.

mmap_hint (integer)
A hint for the eserver to place its 4Mo pages in virtual memory space. Default value = 0 (no hint)
On ia32 linux, one can use mmap_hint=0x80000000
razorback uses 0x74000000

msgrandomport (boolean)
Some providers (ISP) are filtering 4662 port. To help users, it may be a good thing to ask them to change the 4662 value for something else.
If msgrandomport is true, the server automatically sends a warning message to users that uses the default port.
The MsgRandomport default value is : WARNING : Please try to use a random port instead of 4662, because a lot of ISP have filters on 4662 port. Any number between 80 and 65530 should be OK. Thanks

name (string)
The name of your server, as sent to clients. Default = eserver 16.44

nbuserIP (IP address)
The server has a special TCP listener on a port that allows nbuser to gather information. By default, the port is binded on (localhost) so that only a local nbuser can connect to eserver. You may want to allow extern access. Default value =

nbuserport (integer)
The port of the nbuser listener. See above. Default value = 5656

ncpus (integer)
This value is filled by eserver at startup, and gives the number of cpus of the host. Not really used by the programm. See udpsearchers. Default value = number of cpus of the host.

nickcommunity (string)
The tag that should be present in the nickname of users to be able to log in the server. Used with maxstrangers.
Note : You MUST enter a string in lowercase. (The clients can use upper/lower case). Default value : no value (public server)

nickname (string)
When performing a backdoor test to the 4662 port of client, the eserver impersonnate a user. This param is the nickname of the faked user. Default value = eserver

noepoll (boolean)
(linux only) If set to true, eserver doesnt try to use epoll feature. I strongly advise not doing that, but your linux version may have a bug on this function. Default value = false
For linux-2.4.21 or linux-2.4.22, you can try the patch from Davide Libenzi to add epoll feature.

opIP (IP address)
If the server operator wants to use a ed2k client and connect to his own server, he may have a problem because of a private IP. The opIP parameter asks the server to replace the client'IP by the listenIP/thisIP of the server. That way, when other client want to contact the operator, their incoming connections can be NATed to the operator.

noudpslowsearches (boolean)
You can deny to handle complex searches sent by remote users (clients of other servers). Complex searches are searches that must scan the whole file list, instead of using a keyword index. Default value = false

ping_delay (integer)
The server periodically sends a frame called a 'ping', containing the number of users and files he has, to each of its client. This is to verify each TCP socket is alive (Users may have switch off their computer). ping_delay is the maximal delay between such pings. Default value = 300 (was 400 before 16.49)

port (integer)
This is the TCP port that this server listens on. Default value = 4661
See also auxportslist

public (boolean)
If set to true, the server advertizes himself as a public server to other servers. This parameter had a role in the past, but is useless today because clients can automatically add servers to their list, when a client connects to them. Default value = false.

quickack (boolean)
If set to true, the server uses the setsockopt(TCP_QUICKACK) to ask the linux kernel to delay the TCP ACK packets, instead of enter in the quickack mode. This should reduce the bandwitdh. Default value = true.

search_trace (boolean)
If set to true, the server dumps to the logsearches file the searches requests handled. Default value = false

seedIP (IP address)
The IP address of another server. This is used by the eserver if no "serverList.met" file is present (or if it's empty), to gather a server list. Default value : none

seedPort (integer)
The port of the seed server. Default value = 4661

slimit_tableSize (integer)
The size of the hash table used in slimit module. Each slot uses 4 bytes of memory. Default value : 10007

softLimit (integer)
If a client tries to publish more than softLimit files, the server sends him a WARNING message and ignores files in excess. Default value : 1000
See hardLimit parameter description.

tableSize (integer)
The size of the hash table used to store file descriptions. You should not set it, since eserver dynamically increase it as needed.

tcpthreads (integer)
The number of worker threads to handle tcp requests (connected clients). See ncpus. May be dynamically changed in eserver console. Default value = number of cpus of the host.

tcp_rbuffersize (integer)
The TCP/IP stack of your machine allocates for each socket a maximum size to store incoming messages. You may want to change this default size.
Default value = 0 (system default)
(on linux check /proc/sys/net/ipv4/tcp_rmem)

tcp_xbuffersize (integer)
The TCP/IP stack of your machine allocates for each socket a maximum size to store outgoing messages. You may want to change this default size.
Default value = 0 (system default)
(on linux check /proc/sys/net/ipv4/tcp_wmem)

thisIP (IP address)
This is the IP of this Server. Note : eserver cannot find it automatically. You MUST set it correctly if your server is public.

threads (integer)
Obsolete parameter. The number of threads in eserver is fixed:
One thread receives UDP request.
One or two threads handle UDP searches. (See udpsearchers)
One thread accepts new incoming connections.
One thread handles the login phase of clients.
One thread handles the console dialog. (This is the 'main' thread)
One thread handles all the TCP traffic (requests from connected clients)
One thread handles the 'nbuser' requests.
One thread handles incoming connections to auxports.

trackbademule (integer)
A bitmask of flags. See minEVersion parameter. Default value = 30

trackemule (integer)
If set to 1, eserver tracks the emule version. Check also minEVersion parameter. Default value = 1

type (string)
Two values are possible :
key (default) : The server builds indexes based on keywords found on file names. Searches are fast.
substring : The server doesnt uses indexes. Searches are slower.

udp_rbuffersize (integer)
The UDP/IP stack of your machine allocates for each socket a maximum size to store incoming messages. You may want to change this default size. Default value = 0 (system default)

udp_xbuffersize (integer)
The UDP/IP stack of your machine allocates for each socket a maximum size to store outgoing messages. You may want to change this default size. Default value = 0 (system default)

udpsearchers (integer)
The number of threads dedicated to UDP searches. Default value : 1 on Uniprocessor machine, 2 on SMP machine.

verbose (boolean)
If set to true, the server logs some messages (clients login/lougout for example). Default value = false

warnfakes (integer) (New in 16.50)
Each time a client publishes a file that is present in fakes.txt, the server sends a warning message giving the name of offending file to the user. This parameter controls the max number of such messages. Default 0.

welcome[#] (string)
This is a series of messages that each client that logs on to the server will be sent.
New in 16.50 : If ip-to-country.csv file is used, the server checks if a file welcome.xx (where xx = country code of the incoming client) exists. If yes, the content of file is sent instead of the welcome[] from donkey.ini

zlib_complevel (integer)
level of compression done by this server. An integer between 0 (no compression) and 9 (max compression) . Default value = 9

zlib_enable (boolean)
Allows server to negociate zlib compression with incoming clients. Default : true


Format of fakes.txt file

This file is a text file, containing one fake description per line. Each line should start with a 32 hexadecimal digits (16 bytes) md4 hash of the file, followed by some comments and a line feed.

See also warnfakes parameter.