| General: | A computer with reasonable amount of RAM (see below) and an internet connection.
Machine availability, including internet connection, of 24h / day is preferred
but not required. A flatrate connection to the internet with unlimited (or
inexpensive) data transfer volume is recommended. |
|
| Operating systems: | Precompiled binary versions are available for Linux x86 and Windows.
Versions for many other Unices can be created by compiling the sources yourself.
We learned that Opennap NG 0.49 compiles and probably also runs fine on
FreeBSD and Solaris, however we currently can neither confirm
that nor support it directly. Recommended minimum Linux kernel version is
2.2. Linux 2.4 or later is required if a server is to serve more than 1000
users. Windows NT, 2K or XP (any editions) should be
used for stable server operation. Windows 95, 98 and ME are known not to
support server operations very well at all. |
|
| CPU: | CPU speed is important when it comes to serve file searches and transfer
requests for a large number of users. For a standard filesharing Opennap
NG server the rule of thumb for x86-compatible CPUs is that every 500
MHz allow you to serve 1000 users. That is, if you have a 2 GHz machine,
you should be able (in theory) to serve 4000 users without noteworthy lag
on one machine. For chatting only servers, with filesharing disabled, the
requirements are believed to be 100 MHz or less per 1000 users. |
|
| RAM: | Offering filesharing services with Opennap NG is fairly RAM-consumptive.
The rule of thumb is that on Linux systems 1000 files take 300
to 350 KB of RAM, while on Windows systems 1000 files take
400 to 500 KB of RAM. The difference comes from the totally different
memory management concepts of those operating systems. So if you have 1
GB of RAM to spend, you should be able to handle nearly 3 million files
on Linux and about 2 million files on Windows. For chat-only servers RAM
demands are negligible. |
|
| Internet bandwidth: | Demands for internet bandwidth are highly variable, depending on how many
users are connected, how many files are maintained, how many browse and
search results per request may be returned, etc. In general, a single server
with reasonable settings receives about 2 to 3 times the amount of data
of what it sends. During regular operation the demands should be about
15 KB/sec. incoming and 7 KB/sec. outgoing traffic per 1000 users on
a standalone server. Especially outgoing traffic can be adjusted or limited
by a number of settings, such as max_results
(I), max_browse_result
(I), notify_exceed_frequency
(I) and others. If being connected to other servers of similar capacity,
traffic demands can easily be doubled or tripled, due to state and request
exchanges with other servers. During initial fillup phase, shortly after
a server has been started, almost all availabe bandwidth could be consumed
by incoming filelists of newly connecting users. Not having enough bandwidth
may just cause some lag for up to half an hour after server restart, but
doesn't essentially limit your serving capacity. Opennap NG offers multiple
means to throttle initial server fillup, to reduce or prevent lag. |
|
| Harddisk: | Opennap NG itself basically operates completely RAM-based. The harddisk
is only used to load the server program and occasionally dump updated user
and ban lists. As of 0.60, Opennap NG is capable of storing log output directly
into files on harddisk, which may increase demands. With default log levels
and about 500 users on a standalone server, there will be approximately
15 MB of log output produced per day. While increasing log level will increase
harddisk space demands as well, decreasing them will decrease demands as
well. Windows users who want to use the GUI config tool need to consider
disk space requirements of GTK+ as well, which, if not already being installed,
requires another 20 MB. |
|
| Additional software requirements: | Server operation: no additional software besides standard libraries
is required. libz may be the least common of them, especially on some Windows
installations. No X windows is required to run the Opennap NG server itself
on Unix. The GUI config tool isn't required either to run the server. Build process: Opennap NG 0.60 requires GCC >= 3.x (GNU Compiler Collection), a portable and efficient programmer's toolset available for free at http://www.gnu.org/ (for Unix) and http://www.mingw.org/ (for Windows). Other, proprietary or commercial compilers are not supported at this time. Important: don't use GCC 2.95.x or earlier. Due to bugs in those older compiler versions either unreliable binaries may be created or the sources won't compile at all. Use GCC 3.x to get most reliable binaries. No compiler is required if you just use one of the available precompiled binary packages. GUI configuration tool: The GUI configuration tool requires the Gimp Toolkit (GTK+) 2.x. It's available for free at http://www.gtk.org/download (sources, mainly for Linux / Unix users) and http://gimp-win.sourceforge.net/old.html (binaries for Windows users). Only the GTK+ Runtime version is needed, the GTK+ Development version is not needed. X-windows server: As a GUI application, on Unix / Linux systems the config tool obviously requires an installed X windows server system as well. |
| -- |
disable-meminfo Disable custom memory management system. Variable max_mem and runtime memory stats output of Opennap NG depend on meminfo being enabled. However, there is a small memory usage overhead by this, usually about 15%. With meminfo disabled you may reduce memory usage by Opennap NG slightly but won't know exactly how much memory Opennap NG is consuming and when it is about to consume more. |
| -- |
disable-protnet Disable the Protnet variable. |
| -- |
disable-warnings Turns off all C compiler warnings during compilation. Although being preconfigured to use very high sensivity of warnings there shouldn't be many left, anyway. |
| -- | enable-chroot Compile support for running OpenNap-NG in a chroot() jail. This prevents the server from being able to read/write any files outside of its data directory. Useful for parnoid people. OpenNap-NG must be run setuid root (at which point it will drop privs) in order for this to work. |
| -- | enable-debug Turns on debugging information to catch memory leaks and buffer overruns. This is usually not suitable for "production" environments because of the extra memory use and significant performance impact, but good for small test servers. The more testing the more likely bugs can be squashed. |
| -- |
enable-email Enables support for storing the email addresses of users obtained from the nickname registration command. By default this information is not kept and the server will always return unknown if this information is requested. Note that sane users don't enter correct email addresses nowadays so this feature is generally of little use. |
| -- | enable-gprof Adds the -pg option to gcc to generate profiling information suitable for digestion by gprof. Profiling gives a detailed output of what the server is spending its time doing so that bottlenecks can be detected and server performance can be increased. This option is useful for programmers only. |
| -- | enable-resume Enables the server-side support for resuming downloads. This option makes the server use more memory because it has to store to MD5 hash values for all shared files in addition to the other information. Note that most clients don't support this feature so it is generally of little use. |
| -- | enable-router Compiles a routing-only version of the OpenNap-NG server. This disables the file sharing commands for local clients, only allows users of level Admin or greater to log in, and simply routes all other messages to linked servers. This is ideal for use as a hub server to connect a cluster of other servers together. |
| -- |
with-fd-setsize=SIZE Under some BSD systems, this may set FD_SETSIZE, the hard maximum number of connections the server can support via the select() system call. On some Unix systems, including Linux, this is a constant, hardcoded in system libraries and / or kernels, and actually can't be changed. On Windows machines there is no size restriction for supported connections via select(). Most modern Unices, including Linux and BSD, feature the newer and more efficient poll() syscall. This syscall has no inherent limitation on number of supported connections. If poll() is available and detected on your OS, Opennap NG will automatically utilize it instead of select(). Note that on Linux kernels prior to 2.4.0 there existed a hardcoded limit of total files or connections any process could handle. This limit defaulted to 1024. Neither with poll() nor select() it is possible to handle more than roughly 1000 connections on those kernels, without changing that constant and recompiling the kernel. |
| -- | enable-jmm This is a new experimental option. It enables use of Jondo's Memory Management in Opennap NG, a rather low level a replacement for malloc(), free() and other standard memory management functions. JMM is optimized to handle huge amounts of small memory chunks, as they are used in Opennap NG. The three main differences between JMM and conventional MM are:
|
| Parameter | Description |
| -c <directory> | Specify data directory for Opennap NG, where files like opennap-config.txt and opennap-users.txt are located. On Unix platforms the default is /usr/local/share/opennap-ng/. On Windows platforms the default is the current directory. Note that the default for data files installation on Windows is C:\Program Files\Opennap NG 0.60\. |
| -b | Run Opennap NG as a background process (daemon). Any output to stdout is disabled in this mode. |
| -D | Don't listen on stats port |
| -h | Print help information, offering a brief version of this description. |
| -i <ip_addr> | Listen only on the given IP address instead of all available interfaces of a machine. This makes sense only on machines with multiple network interfaces. |
| -p <portnum> | Override the port number specified in file opennap-config.txt and listen on the port specified here, instead. |
| -r | Disable remote configuration commands. This is exactly the same as setting remote_config in file opennap-config.txt to on. |
| -s | Channels may only be created by privileged users. This is exactly the same as setting strict_channels in file opennap-config.txt to on. |
| -V | Display seever version to stdout and exit. |
| opennap-bans.txt | list of server-wide bans on clients |
| opennap-block.txt | REs (regular expressions) to define allowed and disallowed files |
| opennap-config.txt | main configuration file containing server options |
| opennap-channels.txt | database of predefined group chat channels |
| opennap-filter.txt | list of words to skip when searching/indexing files |
| opennap-log.txt | optional log file stored by Opennap NG |
| opennap-motd.txt | message of the day, the text shown to users when they log in |
| opennap-servers.txt | database of servers to link with |
| opennap-state.txt | frequently updated server status page |
| opennap-users.txt | registered users database |
<target> <nick> <when> "<reason>" <timeout>
| Class | Affects | Char | Description |
| blocked | files | - | This is the traditional class; the only one which was properly supported
by older versions of Opennap NG. All filenames matching any expression of
this class will be silently ignored by the server. They won't be stored
in internal server file lists and won't be returned as search results or
show up on server based browses. Attempting
to share blocked files has no immediate further consequences for the user
attempting to share them, although he may fall under limits imposed by max_block_pct
and eject_limit_files. The common use of blocked expressions is to specify file types (extensions) you don't want to have listed on your server, i.e. \.(jpg|gif|ico) (for some image formats which are unsuitable for an Opennap NG server). If you want your server to stay (mostly) free of porn expressions like these would be suitable: p[o0}rn|f[ui]ck|xxx. Note that blocked files still appear on direct browses, as that operation bypasses the server and its internal lists. |
| criminal | files | ! | All filenames matching any expression of this class are considered criminal
(really bad). They will not only be blocked (ignored by the server), but
users who attempt to share any of those files will be automatically banned
for criminal_ban_ttl seconds. You should be careful what to enter to this class and use precise and unambiguous terms only. By specifying too loose keywords you may ban a lot of users who try to share harmless stuff only. I.e., specifying simple terms like ass or sex in this class is a bad idea as there are certainly a lot of harmless files with terms "bass" or "sexy" in their names. Putting general porn terms into criminal class is not recommended as you may quickly lose the majority of your users by doing this. |
| must match | files | + | If opennap-block.txt contains any expression of this class, all
files to be shared by users must match at least one of them in order to
be accepted. Files whose names don't match any of the given must match
class expressions are blocked (ignored). Use expressions of this class to restrict your server to accept files of reasonable types only, i.e. \.(mp3|ogg|wmv|avi|mpg|mpeg|mov), to accept sound and video files only. It is strongly recommended to use a must match expression for your server, since nowadays quite many users attempt to trick you and other users by sharing large amounts of all sorts of obscure or artificial but certainly useless file types. |
| invalid searches | searches | ? | If a user searches for a term which matches any of the invalid searches expression and the variable invalid_search_ban_ttl is nonzero then that user will be immediatly ejected and banned. You should make sure you specify clear, unambigious terms referring to perversities or other unwanted stuff only. Otherwise a lot of innocent users could be ejected for just searching for something they don't even know that it's deprecated on your server. A mods+ notification will be sent on every automatic ban due to searching for invalid keywords. |
| invalid nicks | nicks | @ | If a user tries to login using a nick which matches any of the expressions of the invalid nicks class the login will be rejected. The user will not be banned explicitly (as he couldn't ever login with the same nick anyway). However, the user will be unable for ibl_ban_ttl seconds to reconnect to the server. |
<channel> <flags> <limit> <level> "<topic>"
[level] [filename] [function name] [line number] <log message>
| Digits | Color | Digits | Color | Digits | Color | ||
| 01 | Black | 30 | Black | 50 | Dark gray | ||
| 02 | Blue | 31 | Red | 51 | Light red | ||
| 03 | Green | 32 | Green | 52 | Light green | ||
| 04 | Red | 33 | Brown | 53 | Yellow | ||
| 05 | Brown | 34 | Blue | 54 | Light blue | ||
| 06 | Purple | 35 | Purple | 55 | Light purple | ||
| 07 | Light red | 36 | Cyan | 56 | Light cyan | ||
| 08 | Yellow | 37 | Grey | 57 | White | ||
| 09 | Light green | 38 | White | 58 | Grey | ||
| 10 | Cyan | ||||||
| 11 | Light cyan | ||||||
| 12 | Light blue | ||||||
| 13 | Light purple | ||||||
| 14 | Dark gray | ||||||
| 15 | Grey | ||||||
| 16 | White | ||||||
This is a line with a ^C52light green text^C58 part.Note that "^C" isn't two characters! It's just one CTRL-C ASCII character. You need a text editor which is capable of inserting raw ASCII characters into the text. Not all text editors are capable of this.
<server_name> <remote_pass> <local_pass> <port> [alias]where server_name is the DNS name of the remote server (the remote server should have its server_name set to this value), remote_pass is the password expected from the remote server to authenticate (prove its identity), and local_pass is the password your server uses to authenticate to the remote server. port is the TCP port on the server to connect to. alias is an optional string which will be used to refer to this server instead of its DNS name. This is useful for defining hub servers where you might not want the DNS name to be revealed to users, or you want to use a different name instead of the ip address (if you don't have a reverse DNS record). Note that if a server you want to link to uses an alias name you must enter the alias name in opennap-servers.txt, too. Lines that begin with a pound sign (#) or any space character (tab, etc.) are ignored. See the sample.server file as a basis to start your own configuration.
<nickname> <password> <email> <level> <created> <lastseen>
| Variable | Change | Note |
| allow_dynamic_ghosts (B) | Replaced | by ghost_kill (I) |
| ascii_filenames (B) | Replaced | by ascii_filenames_pct (I) |
| block_winmx (B) | Replaced | by invalid_clients (S) and valid_clients (S) |
| break_mx_queue (B) | Type change | from integer to boolean |
| browse_nag (B) | Type change | from integer to boolean |
| discipline_block (B) | Removed | functionality replaced and extended by block class criminal of opennap-block.txt file. |
| discipline_block_ban_ttl (I) | Renamed | to criminal_ban_ttl (I). Applies to matches of filenames against criminal class of expressions in file opennap-block.txt. |
| discipline_block_mod (B) | Removed | Mods+ are to be banned automatically under no circumstances! They are part of the staff. De-mod or ban them manually if they did something wrong and you want to get rid of them! |
| discipline_ignorers (B) | Removed | Redundant setting! Set discipline_ignorers_ban_ttl to nonzero to killban Mod+ ignorers, zero to turn it off. |
| eject_also_bans (B) | Removed | Redundant setting! Set eject_ban_ttl to nonzero to turn this feature on, zero to turn it off. Auto-ejecting without banning is pointless. |
| eject_leeches (B) | from integer to boolean | |
| eject_nochannels (B) | Renamed | to eject_no_channels_only (B) to better reflect its meaning. |
| ghost_kill (I) | Type change | from boolean to integer to allow multiple modes. |
| log_blocked (B) | Removed | obsoleted by notify_block_mode (I) |
| log_channel (B) | Removed | obsoleted by log_targets (I) |
| log_mode (B) | Renamed | to log_level_change (B) |
| log_stdout (B) | Removed | obsoleted by log_targets (I) |
| loglevel (S) | Replaced | by log_level (I) |
| max_new_users_per_minute (I) | Replaced | by max_new_users_count (I) and max_new_users_time (I). This setting never worked correctly. |
| max_searches (I) | Renamed | to max_searches_pending (I), to better reflect its meaning. |
| no_mod_annoying (B) | Type change | from integer to boolean |
| notify_mod_abuse (B) | Type change | from integer to boolean |
| notify_mod_block (B) | Removed | obsoleted by notify_block_mode (I) |
| notify_user_abuse (B) | Type change | from integer to boolean |
| notify_user_block (B) | Removed | obsoleted by notify_block_mode (I) |
| ping_server (I) | Renamed | to ping_server_interval (I) |
| allow_share | Group: content managment | Type: boolean | Default: on | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Controls whether or not clients are allowed to share files
via the server. If set to off this server doesn't accept any files
to share and operates as a chat server only. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| alnum_nicks | Group: user management | Type: boolean | Default: off | Since: NG 0.49 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| If set to on, only old-fashioned alphanumerical user nicks
will be accepted. They may consist of upper and lowercase letters "A"
- "Z" and "a" - "z", digits "0"
- "9", a hyphen "-" and an underscore "_"
only. Nicks containing any other character will be rejected on login by
the server. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| ascii_filenames_pct | Group: content management | Type: integer | Default: 0 | Since: NG 0.60 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| If set to a value between 1 and 100, filenames to be shared
must consist of at least this percentage value of 7-bit printable ASCII
(32 - 126) characters. For instance, a value of 90 (recommended) allows
one non-ASCII character every nine ASCII characters, hence forbidding completely
cryptic filenames while likely still allowing filenames containing a few
language-specific foreign chars, like in french, german, spanish, etc. This
results in filenames that should be readable in english and a limited number
of other languages. Especially filenames consisting of foreign language
characters like Kanji (japanese), russian or others are not accepted. This
helps keeping out incomprehensible filenames, hence potentially unwelcome
or dangerous content. Filenames containing a higher percentage of non-ASCII
characters than this value are blocked (and count for max_block_pct,
eject_limit_files and similar of that user).
Not that percentage calculation applies to all characters in filename plus
optional path, which may be sent by a client. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| auto_friend_filenum | Group: user management | Type: integer | Default: 0 | Since: NG 0.60 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| When set to non-zero, any client sharing at least this number
of files will be automatically assigned the Friend flag. This will
allow such users to connect any time to the server, even when it's full
and ordinary users would be rejected. Hence, setting this variable honors
and endorses users who share much to visit the server again. Only those
files are counted which actually passed all block conditions, such as min_file_size,
ascii_filenames_pct and the block
expressions. A useful value for this is 5000. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| auto_link | Group: network | Type: boolean | Default: off | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| When set to on, Opennap-NG will automatically attempt
to link to all servers listed in the servers file
when it starts up for the first time. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| auto_register | Group: user management | Type: boolean | Default: off | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| When set to on, the server will automatically register
a nickname the first time it is used. When off, nicknames will only
be registered when the client explicitly requests it. Please regard that
many users don't care about correct passwords in filesharing networks and
neither do some clients. Actually, an increasing number of users use random
passwords on each connect. Those users won't be able to connect more than
once to a server with auto_register set on, See also: registered_only,
register_interval and nick_expire. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| auto_relink_count | Group: network | Type: integer | Default: 0 | Since: NG 0.60 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Together with auto_relink_idelay
and auto_relink_pdelay this variable controls
server auto-relink. All three must be set to nonzero to enable auto_relink.
If a linked server delinks without a manual delink command having been issued
then other servers, in larger networks preferably the router, can automatically
attempt to relink the lost server. This variable sets the maximum number
of automatic relink attempts carried out by the server before it gives up.
Reasonable values are probably 5 to 10, unless you want the server to continue
auto-relink attempts nearly forever. Mods+ are notified on relink attempts.
Automatic relink sequence ends on any of these three events:
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| auto_relink_idelay | Group: user management | Type: integer | Default: 300 | Since: NG 0.60 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Together with auto_relink_count
and auto_relink_pdelay this variable controls
server auto-relink. All three must be set to nonzero to enable auto_relink.
If a linked server delinks without a manual delink command having been issued
then other servers, in larger networks preferably the router, can automatically
attempt to relink the lost server. This variable sets the initial delay
for automatic server relinking. When a server delink is detected, auto_relink_idelay
seconds will be waited before the first automatic relink attempt. This value
shouldn't be too low, as the reason for the other server having delinked
could be a system reboot, software upgrade or other events which prevent
it from being relinkable again immediately. reasonable values are probably
3 to 10 minutes (values 180 to 600). Note that the value of this setting
is rounded up to the next multiple of 60, hence providing a one minute resolution.
Mods+ are notified on relink attempts. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| auto_relink_pdelay | Group: user management | Type: integer | Default: 120 | Since: NG 0.60 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Together with auto_relink_count
and auto_relink_idelay this variable controls
server auto-relink. All three must be set to nonzero to enable auto_relink.
If a linked server delinks without a manual delink command having been issued
then other servers, in larger networks preferably the router, can automatically
attempt to relink the lost server. This variable sets the periodic delay
for ongoing server relinking attempts. When a server delink is detected,
auto_relink_idelay seconds will be waited
before the first automatic relink attempt. If the first attempt was not
successful then further attempts will be issued periodically every auto_relink_pdelay
seconds. reasonable values are likely between 2 and 5 minutes (values 120
- 300). Note that the value of this setting is rounded up to the next multiple
of 60, hence providing a one minute resolution. Mods+ are notified on relink
attempts. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| auto_restart | Group: performance | Type: integer | Default: 0 | Since: NG 0.60 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| When set to nonzero, enables auto-restart of Opennap NG in
case of improper termination (i.e. crash). Together with the auto_relink-settings
this significantly increases availability of Opennap NG in case of unexpected
failure events. The numeric value specifies the number of seconds to wait
before relaunching the server after a crash. Reasonable values are 5 to
60 (seconds). If in auto_restart mode, the only ways to terminate Opennap
NG is by an Admin or Elite sending a killserver message
or the server owner killing / ending the Opennap NG processes locally. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| ban_target_spec | Group: security | Type: integer | Default: 1 | Since: NG 0.60 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
This variable specifies the format of ban targets when created
by any of the automatic ban features of the server.
This determines the strictness or range of particular ban entries. There
are three reasonable values with the following target formats:
All formats have their pros and cons:
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| break_mx_ queue | Group: flood protection | Type: boolean | Default: off | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Some buggy clients send a lot of privmsgs containing //WantQueue.
If this value is set to on then these privmsgs will be blocked on
the server this user is connected to. To get a picture what a waste of bandwidth
occures when not switching this to on grep your opennap-ng logfile
for "privmsg"opennap/opennap-ng/doc/. It should display something like: privmsg: all 205: 43000 705596 Bytes - 205WQ: 39096 (90.9%) 431382 Bytes (61.1%) privmsg: all 205: 44000 720813 Bytes - 205WQ: 40030 (91.0%) 441662 Bytes (61.3%) after only some hours of uptime. 205WQ is the count and the size of privmsgs containing a queueing message. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| browse_nag | Group: user notification | Type: boolean | Default: on | Since NG 0.46 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| When set to on users are nagged when their client issues
an old 211 server browse request without at least trying the newer 640 direct
browse command. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| client_queue_length | Group: performance | Type: integer | Default: 262 144 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Sets the maximum number of bytes that can be queued for a
client connection. If this threshold is reached, it is assumed that the
client is either dead, or the network link can not sustain the level of
output, and the server automatically closes down the client connection.
This is necessary so that dead clients don't consume all of the servers
memory. Note that this size doesn't represent a static buffer which is always
allocated for every client. Most clients won't need any output buffers at
all since data for them can be sent out instantly and received fast enough.
Buffering takes place only if a client has requested a huge bunch of data
which can't be sent by the OS in one turn, or when the client has actually
disconnected already and won't receive any further data at alll. Client
buffers are dynamically allocated on demand by Opennap NG. Their typical
lifetime is within 2 seconds. They are freed as soon as buffered data could
be sent or the client disconnects. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| cloak_user_ level | Group: security | Type: integer | Default: 0 | Since: NG 0.49 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
If non-zero, ordinary users who are whois'ing others will
always receive "user" as userlevel information
of the user being whois'ed. Users won't be able to identify Moderators,
Administrators and Elites. This feature is to protect server staff, if responsible
ones prefer to stay undiscovered. More precisely, the values of this setting
have the following meaning:
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| clones_allow_level | Group: user management | Type: integer | Default: 3 | Since: NG 0.49 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
If non-zero, specifies which user levels
are exempt from clone detection and ejection. Without clone detection, an
arbitrary number of connections from the same IP address are allowed to
connect. All user levels equal or above the specified value are exempt from
clone detection. The default value is to exempt Admins and Elites from clone
detection. Actual clone detection setting is done via the max_clones
variable. Here, the possible values are:
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| compression_level | Group: performance | Type: integer | Default: 1 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| The zlib compression level to use when compressing server
to server connections. 0 means no compression, 1 is least effort, 9 is best
compression. The higher the number, the more CPU it will consume. Level
1 compresses text by about 50%, which is good enough for most applications. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| connection_ hard_limit | Group: Unix specific | Type: integer | Default: depends on OS | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Sets the maximum number of file descriptors available to the
server process. Generally this is used to increase the default number available.
Note that in order to increase the default maximum, the server needs to
be started as root (OpenNap-NG will drop privileges and run as the
uid/gid specified by set_user and set_group
then). Note: under Linux (< 2.4.x) connection_hard_limit
cannot be changed and is always 1024. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| criminal_ban_ttl | Group: user management | Type: integer | Default: 604 800 | Since: NG 0.60 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| If file opennap-block.txt contains any
active expressions of class criminal, any user who attempts to share
at least one file that matches active expressions of this class will be
banned for criminal_ban_ttl seconds. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| criticial_ delay | Group: log verbosity | Type: integer | Default: 5 | Since: NG 0.47H | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| The server contains some internal performance validation code.
After it got stuck in particular subroutines for too long, (freezing,
also causing lag), it can report the duration and cause
of this event to the log. Messages are of the form "checkdelay:
level x, stuck for y seconds in block z". The error log
level must be enabled for these messages to be emitted. This setting
specifies the threshold in seconds for such delays to be reported. All freezes
which have taken longer than this will be reported. These messages may be
helpful in detecting and confirming server lag, identify its origins and
possibly hint on correcting server parameters to reduce these events. To
non-programmers the messages may appear incomprehensible, though. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| default_ ban_ttl | Group: user management | Type: integer | Default: 5 184 000 | Since: NG 0.49 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| How long bans last if no timeout value was entered. The default
value is 60 days (~2 months). Longer and shorter bans can still be specified,
and other feature-specific ban ttls aren't affected either. Just absolutely
unlimited bans aren't supported any more; every ban has its expiration period. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| discipline_ ignorers_ ban_ttl | Group: user management | Type: integer | Default: 2 592 000 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| When a user ignores a mod+ this is annoying enough. But when
the mod killbans the user just to have the user relogging in with another
nick this hits the spot multiplied by -1. This feature takes some care of
these cases. If you set this value to nonzero then a user who ignores a
Mod+ will be killed and banned for this number of seconds. The default is
30 days. Set this to 0 to allow users to ignore Mods+
without sanctions. However, remember the meaning of Moderators is to be
listened to and not to be ignored. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| eject_after | Group: user management | Type: integer | Default: 120 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Specifies the number of seconds after initial login to the
server for which the client is exempt from being killed for not sharing
enough when the server is full (see eject_limit).
This should be large enough to allow a client to start sharing files before
getting killed. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| eject_ban_ttl | Group: user management | Type: integer | Default: 7200 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| If a user doesn't share enough appropriate files he gets ejected
and banned for this number of seconds. If this value is 0 no general ejection
for not sharing enough will occur. However, regard max_block_pct
and max_block_pct_ban_ttl, which supplies
an independent and different approach for this. Mods+
will never be ejected for not sharing enough. This sort of ejection is affected
by the following settings: eject_limit_files,
eject_limit_libsize, min_file_size
and max_file_size and file opennap-block.txt
The default value is 2 hours. Increase it to slightly reduce your internet
traffic. Experience has shown that 98% to 99% of users don't care about
being banned for not sharing enough on a particular server, resulting in
them connecting again and being banned again and again, as soon as this
ban TTL expires. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| eject_grace_time | Group: user management | Type: integer | Default: 600 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| If the eject_limits are on then a freshly started
server may killban users because the load on such a server is so high that
some users are not able to get their files shared in time or even may time
out when sharing on a low bandwidth server. The variable eject_grace_time
is the time in seconds after which the eject_limits are checked right after
the serverstart. The default value is ten minutes (600 seconds). |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| eject_leeches | Group: user management | Type: boolean | Default: off | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| When eject_when_full is set,
kill leeches to allow another user to login, even if they are sharing over
the required amount of files. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| eject_limit_ files | Group: content management | Type: integer | Default: 0 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| The min amount of files a user has to share in order to be
exempt from eject_when_full. Any client that
shares either eject_limit_files+1 files or 'eject_limit_libsize+1 Kilobytes
will not be disconnected. This setting helps fighting freeloaders.
Mods+ will never be ejected for not sharing enough.
See also eject_limits_conjunction
to alter the conjunction between these two varaibles. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| eject_limit_ libsize | Group: content management | Type: integer | Default: 0 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| The min amount of Kilobytes a user has to share in order to
be exempt from eject_when_full. Any client
that shares either eject_limit_files+1 files or eject_limit_libsize+1
Kilobytes will not be disconnected. This setting helps fighting freeloaders.
Mods+ will never be ejected for not sharing enough.
See also eject_limits_conjunction
to alter the conjunction between these two varaibles. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| eject_limits_ conjunction | Group: content management | Type: boolean | Default: on | Since: Opennap NG 0.60 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| This variable determines the relationship between variables
eject_limit_files and eject_limit_libsize.
If it is on (default) then both limits must be missed by a
user to be ejected (AND-conjunction). This is the behaviour of all previous
Opennap NG versions. If this variable is set to off then only
one of the limits need to be missed for the user to be ejected (OR-conjunction).
Note that automatic ejection on users takes place only if eject_when_full
is set to on, or if the level of a user is leech and eject_leeches
is on. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| eject_no_ channels_only | Group: user management | Type: boolean | Default: on | Since: NG 0.49 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Normally eject_when_full will
eject users who aren't sharing enough regardless of if they are chatting.
eject_no_channels_only set to on ejects only users who are
not in a channel and not sharing enough. If set to off, users who aren't
sharing enough are ejected regardless of if they are in channels or not.
In other words: on protects chatters from ejection. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| eject_when_ full | Group: user management | Type: boolean | Default: on | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| If set to on, the server will disconnect the longest
connected client which is not sharing any files when the server is full
(eg., when it has reached max_connections
clients). This allows room to be made for those clients which are sharing
files. See also eject_leeches, eject_limit_libsize,
and eject_limit_files This setting helps
fighting freeloaders. Note: mods+
and Friends are exempt and will never be ejcted automatically,
even if they are sharing no files. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| evaluate_ search_ abuse_after_ secs | Group: flood protection | Type: integer | Default: 120 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| After how many seconds should max_searches_per_minute
be evaluated? This is to prevent that a freshly connected user will be prosecuted
because he is initally searching all of his incompletes. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| evaluate_ search_ abuse_after_ tags | Group: flood protection | Type: integer | Default: 100 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| After how many tags in total should max_searches_per_minute
be evaluated? This is to prevent that a freshly connected user will be prosecuted
because he is initally searching all of his incompletes. After evaluate_search_abuse_after_tags
requests the counter starts counting. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| file_count_ threshold | Group: flood protection | Type: integer | Default: 5 000 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| When a indexed file search token (one word) contains more
than this number of matching files, the server will warn in its log output.
This gives the ability to add this term to the list of filtered
words. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| fix_xnap_ path | Group: content management | Type: integer | Default: 1 | Since: NG 0.47H | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Some versions of the XNap client use to share each file in
its own directory named by just a number. The results of browsing such users
look stupid on many other clients and make it difficult to get an overview
over the files offered. This setting provides some ways to deal with this
mess. It only affects files to be shared with a plain number as the top
level directory name.
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| flood_ ban_ttl | Group: flood protection | Type: integer | Default: 86400 | Since: NG 0.49 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| If flood_eject is non-zero then
this setting specifies the ban TTL in seconds for exceeding flood limits.
The default is 1 day. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| flood_ commands | Group: flood protection | Type: integer | Default: 0 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| This variable, along with flood_time,
allow for server-side flood protection. When set to a value greater than
zero, the server will not allow clients to issue more than this number of
commands in flood_time seconds. Any client attempting
to send commands faster than the allowed limit is throttled back. A recommended
value pair is 100 commands in 10 seconds, to allow clients to occasionally
repeat multiple searches. Intentional flooders will easily exceed this. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| flood_eject | Group: flood protection | Type: integer | Default: 0 | Since: NG 0.49 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| If flood_eject and flood_ban_ttl
are both non-zero, clients exceeding the flood threshold specified by flood_time
and flood_commands this number of times will
be automatically ejected and banned. Setting this to a low value like 1
or 2 is not recommended! Clients which exceed the flood limits don't always
do this on purpose or even knowingly. Occasionally exceeding flood thresholds
can happen to many clients. Hence, if this feature is to be used, minimum
values of 4 or 5 are recommended. Otherwise you could quickly find large
numbers of users getting banned. The same is true, if flood_commands and
flood_time are set too low. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| flood_time | Group: flood protection | Type: integer | Default: 100 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| This variable, along with flood_commands,
allow for server-side flood protection. When set to a value greater than
zero, the server will not allow clients to issue more than this number of
commands in flood_time seconds. Any client attempting to send commands
faster than the allowed limit is throttled back. A recommended value pair
is 100 commands in 10 seconds, to allow clients to occasionally repeat multiple
searches. Intentional flooders will easily exceed this. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| friend_expire | Group: user management | Type: integer | Default: 2 592 000 | Since: NG 0.60 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Specifies the time in seconds of after which unused registered
users with the Friend flag set are expired and returned to the pool of available
nicknames. User accounts without any flags expire after nick_expire
seconds. Accounts of Mods+ and higher levels never
expire. Since friends and their accounts are more valuable than ordinary
"anonymous" registered user accounts this value should be between
2 and 4 times higher than nick_expire. The default
for this variable is 30 days. See also auto_register.
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| ghost_kill | Group: user management | Type: integer | Default: 1 | Since: NG 0.49 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
If non-zero, ghosts may be killed. Despite
the possibility of ghost kill deadlocks it is recommended to enable ghost
kill, since the harmless and innocent ghosts use to outweigh malicious ones
by far.
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| ibl_ttl | Group: flood protection | Type: integer | Default: 0 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| The Internal Ban List is an optimization means which is used
to keep out excessive clients. If a client reconnects too fast, keeps using
an invalid nick or an invalid client, then the IP of this user is banned
for ibl_ttl seconds. Checks against entries in the IBL are much
faster than checks against entries in the main ban list. The user trying
to connect will be disconnected immediately, without even getting a "You
are banned..." message delivered. Clients may display this as "server
read error"s, "connection timeout"s or similar. Please note that if for some reason any Moderator or Admin or Elite gets into this list upon an connection attempt, he won't be able to connect to the server for ibl_ttl seconds either! That is because the connection request will be rejected before any nicks or passwords are transmitted to the server. There is currently also no way to "unban" an entry from the IBL. So this value shouldn't be too high. 10 minutes (600) is a reasonable value. It should not exceed 1 hour (3600). A value of 0 disables this feature. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| index_ignore_suffix | Group: content management | Type: boolean | Default: on | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Controls whether or not the filename extensions of shared
files are included in the searchable index. Also see index_path_depth. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| index_path_ depth | Group: content management | Type: integer | Default: 2 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Controls how many levels of directory are included when adding
shared files to the searchable index. Often times the leading parts of the
path are completely useless for searching (eg., C:\Program Files\My
Music\Rock\) and just consumes a lot of memory. This variable counts
from the end of the path backwards, so the higher the value, the
more of the beginning of the path it will include. Also see index_ignore_suffix. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| invalid_ clients | Group: user management | Type: string list | Default: (null) | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| This is a string list of clients that are not allowed on your
server. Some clients can't/don't share, some clients are broken, etc. This
list can be superseded by valid_clients. Example: invalid_clients *floodster*,*mp3rage*,*rapigator* |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| invalid_nicks | Group: user management | Type: string list | Default: (null) | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| invalid_nicks is a list of invalid client nicks, ones which
you do not want on your network for some reason or another. Example: invalid_nicks joey2cool,*trade* |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| invalid_search_ ban_ttl | Group: user management | Type: integer | Default: 43 200 | Since: NG 0.60 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| If there are active expressions of class invalid search
in file opennap-block.txt and a client searches for any terms matching
any of those expressions it will be immediately ejected and banned for this
period (in seconds). |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| irc_channels | Group: chat control | Type: boolean | Default: on | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| When set, Opennap-NG requires all channel names to begin with
# or &. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| leech_ban_ttl | Group: user management | Type: integer | Default: 0 | Since: NG 0.60 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| If leech_ratio and leech_grace
are both nonzero then any convicted leech will be killed and banned for
this number of seconds. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| leech_grace | Group: user management | Type: integer | Default: 20 | Since: NG 0.60 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Together with leech_ratio this
variable specifies the threshold for users being regarded leeches and becoming
subject to optional auto leech ejection. If nonzero, this variable sets
the number of "free" downloads each user has. That is, the number
of initial downloads which don't count for leech_ratio.
For leech detection and ejection to be enabled, this variable must be set
to at least 1. A value of 0 disables leech detection. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| leech_ratio | Group: user management | Type: integer | Default: 20 | Since: NG 0.60 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Together with leech_grace this
variable specifies the threshold for users being regarded leeches and becoming
subject to optional auto leech ejection. If nonzero, this variable sets
the maximum upload:download ratio a user must stay within in order to avoid
being regarded a leech. In other words: a user must commit at least one
upload every leech_ratio downloads. For instance, if leech_ratio
is set to 10 then a user must upload at least one file per every 10 downloads.
If leech_ban_ttl is nonzero, the leech will be automatically ejected and
banned. Otherwise just a notification to all Mods+ will be generated, reporting
the leech. Set either leech_ratio or leech_grace
to zero to disable leech detection. If nonzero, a value of at least 20 is
recommended. If you set this to lower than 20 you will find many users getting
banned. If you set this to 10 or lower you may find almost the majority
of your users getting banned. There are many leeches out there. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| leech_share | Group: content management | Type: boolean | Default: on | Since: NG 0.47H | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| If set to on then users with level leech
may still share and upload files. This may give them a chance to gain back
regular user level if Mods+ decide to honor it. If set
to off then users with level leech can't share nor upload any files. Leeches
never can download any files. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| level_to_ set_flags | Group: security | Type: integer | Default: 2 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Minimum level a user must have to assign userflags to other
users. Values are: 0 = Leech, 1 = User, 2 = Moderator (default), 3 = Admin,
4 = Elite. Values below 2 are not sensible. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| listen_ address | Group: network | Type: string | Default: 0.0.0.0 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| By default, the server will listen on all interfaces on the
system. You can force it to listen only on a single interface by specifying
the IP address of the interface in this option. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| live_stats | Group: log verbosity | Type: integer | Default: 5 | Since: NG 0.60 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| This variable sets the update interval for the live
stats output feature of Opennap NG in seconds. Typical and suitable
values are 5 or 10. A new version of file opennap-state.txt
will be created (overwriting the existing one) every live_stats seconds.
External tools like watch and cat (on Unix systems) can
be used to permanently monitor server state. Setting this to 0 disables
the live stats feature and emission of opennap-state.txt files. Note:
while the value of this variable may generally be changed at runtime without
need to restart or rehash the server, a change between zero and nonzero
(or vice versa), that is, switching between enabling and disabling this
feature at all, requires a server restart. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| lock_memory | Group: Unix specific | Type: boolean | Default: on | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| On supported systems, this will cause the server to lock all
of its memory pages into real memory, thus avoiding swapping to disk. It
is strongly recommended to leave memory locking for Opennap NG enabled,
since due to its architecture Opennap NG is extremly bad suited for any
of its parts of allocated memory to be swapped out to disk. On some systems
Opennap NG doesn't seem to run reliable in the long run if it is subject
to swapping. However, on other systems, especially Linux 2.6.10 and 2.6.11,
memory locking seems to be broken, i.e. preventing Opennap NG to execute
if this option is enabled. If memory locking is enabled, Opennap NG conducts
a little self test upon startup to determine, whether proper operation with
memory locking is possible at all. If it isn't then Opennap NG tries to
unlock the memory again and proceed with unlocked memory. If this fails
as well then Opennap NG will resign and terminate. In this case the server
must be started with lock_memory set to off and the server owner
should consider an up- or downgrade of the OS (s)he is using. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| log_blocked | Group: log verbosity | Type: boolean | Default: off | Since: NG 0.47H | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| When set to on, each file that a user tried to share
and which is blocked will appear in the log. mod+'s can monitor this by
joining the &LOG channel. This feature usually produces less traffic
than notify_mod_block. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| log_fmt | Group: log verbosity | Type: bitmap | Default: 7 | Since: NG 0.60 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
This variable specifies format of single log lines, as they
are emitted. If all options are enabled, a log line would consist of the
following items:[level] [filename] [function name] [line number] <log message>This is a bitmap variable where any of the format options can independently be turned on or off. Add numbers of options you want to enable. Available options are:
The default value 7 means that every log line will be aligned and contain level and function name. Unaligned output is recommended if you are low on screen width only. Sourcecode line and filename are relevant for programmers only. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| log_ignore_ abuse | Group: log verbosity | Type: integer | Default: 1 | Since: NG 0.47H | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| If set to 1 then each user who tries to ignore more other
users than max_ignore will be reported once in
the log. If set to 2 then each further attempt to ignore other users will
be logged, including the nick which would be ignored. If set to 0 then no
logging happens when a user tries to ignore more than max_ignore
other users. This variable can be helpful to detect traders or leeches who
tend to quickly ignore almost every user who tries to download from them. Note: a client may implement its own management of ignoring other users. This variable has effect only if the client requests ignores on the server. Most clients do so as this is part of the protocol and simpler for them to implement. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| log_level | Group: log verbosity | Type: bitmap | Default: 241599 (0x3AFBF) | Since: NG 0.60 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
This bitmap variable enables or disables
various sorts of log messages. Where the enabled log messages will actually
be emitted to is determined by the log_targets
variable. If you are not familiar with bitmap arithmetic or don't like those
large numbers then you should adjust bitmap variables like this one using
the Opennap NG GUI config tool (Onngconf). It presents a much
more convenient interface to set bitmap variables like this.
The default is to enable messages of all sorts but Debug, Connects and Rejected. On server start, the Error level will always be anabled, regardless of the log_level setting in opennap-config.txt. If you really want to disable error messages you have to turn them off later using a /msg operserv config log_level <levels> command, |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| log_mode | Group: log verbosity | Type: boolean | Default: off | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| When set to on, Opennap-NG will log changes in user
levels to a file. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| log_split_hours | Group: log verbosity | Type: integer | Default: 168 | Since: NG 0.60 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| When output to log files is enabled in log_targets
variable and this value is nonzero, the log will be split every log_split_hours
hours. That means, the current log file will be closed and renamed to a
file of pattern opennap-log-yyyymmdd-nn.txt, where yyyy is the
current year, mm is the current month, dd is the current day and nn is the
index of that logfile. Opennap NG will never overwrite existing logfiles
when splitting multiple log files a day but always increase the index number
to the first non-existing filename of that day, instead. Also note that
split times of log files are aligned by the value of this variable.
That means, if you specify a value of 24 hours, the log file won't be split
exactly 24 hours after server start time but always at 00.00 local time.
If you specify 6 hours, the log file will be split at 00.00, 06.00, 12.00
and 18.00, regardless of when the server was started. Hence the first archived
log file after server start will span a shorter period than the following
ones. The default value will result in one split log file per week. Log
file splits by time and by size (log_split_mb)
can both be set and coexist independetly. Log files will be split whenever
any of the two split conditions become true. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| log_split_mb | Group: log verbosity | Type: integer | Default: 50 | Since: NG 0.60 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| When output to log files is enabled in log_targets
variable and this value is nonzero, the log will be split whenever its size
reaches log_split_mb megabyte. That means, the current log file
will be closed and renamed to a file of pattern opennap-log-yyyymmdd-nn.txt,
where yyyy is the current year, mm is the current month, dd is the current
day and nn is the index of that logfile. Opennap NG will never overwrite
existing logfiles when splitting multiple log files a day but always increase
the index number to the first non-existing filename of that day, instead.
Log file splits by size and by time (log_split_hours)
can both be set and coexist independetly. Log files will be split whenever
any of the two split conditions become true. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| log_targets | Group: log verbosity | Type: bitmap | Default: 2 | Since: NG 0.60 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
This variable specifies the output targets of log messages
of any sort. It is a bitmap variable with the following target options:
Standard output channel &LOG channel refers to the pseudo chat channel of the same name which may be joined by any Admins and Elites via their client. Log file refers to the log file opennap-log.txt which will be written into the data directory of Opennap NG. Note that existing log files will never be appended nor overwritten on server start. Instead, existing opennap-log.txt files will be removed to files of the naming scheme opennap-log-yyyymmdd-nn.txt, where yyyy is the current year, mm is the current month, dd is the current day and nn is the index of that log file within that day. Example: to enable log output to &LOG channel and log file but not to stdout, set this value to 6. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| log_timefmt | Group: log verbosity | Type: string | Default: none | Since: NG 0.47H | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
If set then this variable specifies a time format which is
used to create a time / date string. This date string is prepended to each
line which is logged to stdout / the log file / channel. The format of log_timefmt
must be according to the options of the GNU LIBC strftime() function.
It's made up of conversion specifiers which compose the format of the time
output (similar to the printf() function variants). A description
of all conversion specifiers is beyond the scope of this manual. Look into
the GNU LIBC documentation of the function strftime() for that. Only
some useful examples are given here:
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| login_interval | Group: flood protection | Type: integer | Default: 0 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Specifies how often (in seconds) clients from the same IP
address are allowed to connect to the server. This allows you to ignore
clients which are reconnecting too fast. Reasonable values are 5 to 30 (seconds).
A value of 0 disables the check. Also see register_interval. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| login_timeout | Group: flood protection | Type: integer | Default: 60 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| If a client has not completed the login process after this
number of seconds, it will be disconnected. This is to prevent malicious
parties from trying to open up many sockets to the server. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| loopcount_ output_ interval | Group: log verbosity | Type: integer | Default: 1000 | Since: NG 0.47H | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| If non-zero, specifies the interval for executed main loop
iterations being logged (with Debug level). Number of main loop iterations
is a rough measure for servicing activity and efficiency since server start.
The default value means that every 1000th main loop iteration will be logged. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| max_block_ pct | Group: user management | Type: integer | Default: 0 | Since: NG 0.49 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| If this value is nonzero it specifies the maximum percentage
of blocked files which are allowed per user. If i.e. a user attempts to
share 2000 files but 1800 of them are blocked (90%) the user may not be
suitable or welcome to the server at all. Files may be blocked because they
match patterns in the opennap-block.txt file or are
too small (min_file_size) or too large (max_file_size).
If the percentage of blocked files of a user is higher than this value and
max_block_pct_ban_ttl is nonzero, the
user will be immediately banned. Mods+ will never be
banned. Banning users who attempt to share a great amount of blocked files
also reduces waste of internet bandwidth. The valid range for this value
is 0 to 100. A value of 0 disables this feature. 75 seems to be a fair value
for public servers. Reduce it to 50 or less to be more restrictive, but
possibly also lose interesting content. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| max_block_ pct_ban_ttl | Group: user management | Type: integer | Default: 60400 | Since: NG 0.49 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| If max_block_pct is set and a
user attempts to share more than that percentage of blocked files, the user
will be banned for this number of seconds. The default value is one week.
This is a reasonable value since you deal with users who share a great amount
(percentage) of stuff you don't want to have on your server, and experience
has shown that the vast majority of users being banned for that wouldn't
quickly change their entire shares just to get on a particular server or
network. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| max_browse_ num | Group: performance | Type: integer | Default: 0 | Since: NG 0.60 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| If nonzero, limits the number of browses a regular user may
issue, no matter whether they are direct browses
or server based browses. If a client requests
to issue more browses than this number, they will be ignored and Mods+ will
be notified about the attempt. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| max_browse_ result | Group: performance | Type: integer | Default: 500 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| If nonzero, limits the output of a server
browse to this number of files. Because of the limit imposed by client_queue_length, the number of files returned
by a browse command is limited to this number. If this is too large, clients
will be disconnected when they browse a user with many files. There is also
a consideration of bandwidth, a high browse limit imposes a large amount
of uplink bandwidth. Mods+ are exempt from this limit,
however they are still limited by the max_shared
value for the client being browsed. This setting has a high influence on
the amount of internet bandwidth the server consumes, especially the upstream.
If the server consumes too much upstream bandwidth then reduce this value
to 200 or 100. If upstream bandwidth is no issue for you then you may increase
this to 1000, 2000 or more. The default value is appropriate for servers
running via DSL connections. Note: this limit affects only server based browses. No limit is imposed on direct browses (client to client connections) since the server doesn't control data exchange in that case. Direct browses save server network bandwidth and are therefore the preferred method. Whether direct browses can be performed depends on which client programs are involved. Many client programs don't support direct browses yet. Both (requestor and responder) must support it in order to work and allow unlimited browsing. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| max_channel_ length | Group: chat control | Type: integer | Default: 32 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Specifies the max number of characters allowed in a channel
name. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| max_client_ string | Group: user management | Type: integer | Default: 32 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Specifies the max number of characters allowed in the client
version string. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| max_clones | Group: flood protection | Type: integer | Default: 0 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| When set to a value greater than 0, the server will only allow
this many connections from the same IP address, to limit clones.
Also see login_interval and clones_allow_level.
A value of 2 should be acceptable, as this description
states. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| max_ command_ length | Group: flood protection | Type: integer | Default: 2048 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| When set to a value greater than 0, the server will disconnect
any client that sends a command longer than this value. Clients that trigger
this are either attempting to flood the server or are out of sync. Actually,
the default value of 2 KB should not be changed,. as most clients don't
issue larger commands anyway, while all clients assume at least this command
size to be accepted. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| max_ connections | Group: performance | Type: integer | Default: 1000 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| When set to a value greater than 0, the server will only allow
this many clients to log into the server. If max_connections users
are already logged in and new users try to login they will be disconnected
with a server full response. This is one of the most important server
settings, as it specifies the general user capacity the server will be able
to serve. This setting strongly affects CPU consumption, RAM consumption
and internet bandwidth consumption of the server. Lower it to reduce server
demands regarding those items. A more dynamic way of limiting connections
with regard to server resource usage is max_mem.
See also: connection_hard_limit. Warning: when setting this variable to 0 or a value larger than your operating system limit the server may crash as soon as the number of connections gets close to the OS limit. For all Linux versions < 2.4.x this is 1000. Also consider increasing RAM, CPU and bandwidth consumption of high numbers of connections. Heavy lag and timed out connections are mostly the result of a too high value for max_connections. A typical P5-II class machine should be able to safely handle ~500 connections, a P5-III ~1000 and a P5-IV up to 2000 connections (if your OS permits it). Higher numbers may be feasible depending on other settings like max_shared, max_browse_result, max_searches_per_minute and some other flood protection settings. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| max_data_size | Group: Unix specific | Type: integer | Default: 0 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Sets the maximum amount of memory the process may consume.
If this limit is reached further attempts by Opennap NG to allocate memory
will fail. This will usually cause the servere to terminate immediately.
Use max_mem as a softer alternative to limit memory
consumption without terminating the server when the limit is reached. Also
see max_rss_size. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| max_file_size | Group: content management | Type: integer | Default: 0 | Since: NG 0.49 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Set the upper limit of filesize (in bytes) which a single
file must at most have to be shared. If the max_file_size is 0
then there is no checking on this parameter. Limiting the maximum size of
files makes sense if you want to avoid complete CD or DVD images being shared,
possibly for legal reasons. A value of 150 000 000 (150 MB) is recommended,
if you want to allow music files, complete albums (as single files) and
video files of limited size only, but no full CD images. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| max_hotlist | Group: performance | Type: integer | Default: 32 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| When set to a value greater than 0, the server will only allow
each user to have this many entries on their hotlist. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| max_ignore | Group: performance | Type: integer | Default: 32 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| When set to a value greater than 0, this server will only
allow each user to have this many entries on their ignore list. If the user
tries to ignore more users those requests will simply be ignored. Depending
on the setting of log_ignore_abuse such
an event may be logged or not. Note: a client may implement its own management of ignoring other users. This variable has effect only if the client requests ignores on the server. Most clients do so as this is part of the protocol and simpler for them to implement. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| max_login_ban_ttl | Group: flood protection | Type: integer | Default: 86 400 | Since: NG 0.60 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| If nonzero and max_login_count
and max_login_time are also set, this variable
specifies the period for which login flooders are automatically banned.
The default is 1 day. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| max_login_count | Group: flood protection | Type: integer | Default: 10 | Since: NG 0.60 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| If nonzero and max_login_ban_ttl
and max_login_time are also set, login flood
protection is enabled. It aims at clients which connect and disconnect to
the server very often. This can be due to network trouble, wrong client
settings (in particular wrong or outdated server lists) or due to intentionallay
flooding the server. Especially if clients have large filelists to share,
frequent reconnecting virtually results in server flood. Note that disabling
ghost_kill doesn't protect from this, as there
are no ghosts being involved at all in most cases. This variable specifies
the maximum number of logins a client may perform within max_login_time
seconds. If a client disconnects and attempts to reconnect more often than
this it will be banned for max_login_ban_ttl
seconds. The default values allow a maximum number of 10 logins per hour.
Any client exceeding this can certainly be assumed to be either in trouble
or hostile. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| max_login_time | Group: flood protection | Type: integer | Default: 3600 | Since: NG 0.60 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| If nonzero and max_login_ban_ttl
and max_login_count are also set, login flood
protection is enabled. It aims at clients which connect and disconnect to
the server very often. This can be due to network trouble, wrong client
settings (in particular wrong or outdated server lists) or due to intentionallay
flooding the server. Especially if clients have large filelists to share,
frequent reconnecting virtually results in server flood. Note that disabling
ghost_kill doesn't protect from this, as there
are no ghosts being involved at all in most cases. This variable specifies
the period within at most max_login_count
logins by one particular user are perimtted. If a client disconnects and
attempts to reconnect more often it will be banned for max_login_ban_ttl
seconds. The default values allow a maximum number of 10 logins per hour.
Any client exceeding this can certainly be assumed to be either in trouble
or hostile. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| max_mem | Group: performance | Type: integer | Default: 0 | Since: NG 0.60 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
If nonzero, imposes a (very) soft limit on maximum main memory to be used by Opennap NG. If Opennap NG has allocated more than max_mem MB of RAM, it will reject any further logins by ordinary users. Only if memory usage drops below this value further logins will be allowed again. Memory usage drops whenever users disconnect from the server for any reason, freeing less or more file information they were sharing. This variable can be regarded a dynamic replacement for max_connections. It will not start rejecting logins when a fixed maximum number of users has connected but when the RAM usage of Opennap NG starts exceeding a predefined limit. However, there are two important issues to keep in mind when setting this value:
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| max_new_ users_count | Group: performance | Type: integer | Default: 20 | Since: NG 0.47H | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| When max_new_users_count and max_new_users_time
are set to nonzero the rate at which new users can connect is limited. During
each interval of max_new_users_time seconds at most max_new_users_count
users can connect. Further connection requests are refused until the next
interval of max_new_users_time begins. This is to avoid splits
and timeouts due to the fact that 2000 users who want to connect to the
freshly advertised server simultaneously produce a pretty nice bandwidth
peak. The default values allow up to 20 users to connect per 10 seconds
(or 2 users per second in average). |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| max_new_ users_time | Group: performance | Type: integer | Default: 10 | Since: NG 0.47H | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| When max_new_users_count
and max_new_users_time are set to nonzero the rate at which new
users can connect is limited. During each interval of max_new_users_time
seconds at most max_new_users_count users
can connect. Further connection requests are refused until the next interval
of max_new_users_time begins. This is to avoid splits and timeouts
due to the fact that 2000 users who want to connect to the freshly advertised
server simultaneously produce a pretty nice bandwidth peak. The default
values allow up to 20 users to connect per 10 seconds (or 2 users per second
in average). |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| max_nick_ length | Group: user management | Type: integer | Default: 19 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| If set to a value greater than 0, this specifies the max number
of characters allowed in a nickname. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| max_queue_notify | Group: mod+ notifcation | Type: integer | Default: 200 | Since: NG 0.60 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| If set to a value greater than 0, Mods+
will be notified whenever the upload queue of a client exceeds this size.
It means that the client has very many upload requests pending and processes
them either too slowly or not at all. In most cases this actually indicates
freeloaders. Many users tend to limit their upload bandwidth to unreasonable
values of 2 KB/sec. or less, taking requestors and network staff for fools.
Mods+ should check those users, possibly ask them why their queue is so
long, ask them to increase their output or possibly even eject them due
to freeloading. Even users who share large amounts of presumably great stuff
are not beneficial for a network if they don't allow any (or very few only)
uploads. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| max_reason | Group: performance | Type: integer | Default: 96 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| If set to a value greater than 0, this specifies the max number
of characters allowed in the "reason" strings for such commands as ban,
kick and kill. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| max_results | Group: performance | Type: integer | Default: 100 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| If set to a value greater than 0, this specifies the max number
of search results that are returned to a client. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| max_rss_size | Group: Unix specific | Type: integer | Default: 0 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Sets the maxiumum amount of real memory a process is allowed
to consume . Any excess will be swapped to disk. Also see max_data_size, lock_memory
and max_mem |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| max_searches_pending | Group: performance | Type: integer | Default: 3 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Specifies the maximum number of pending searches a user is
allowed to have. Once this threshold is reached, no more searches can be
issued until one of the others has completed. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| max_searches_ per_minute | Group: flood protection | Type: integer | Default: 2 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Set the maximum number of searches (tag 200) a client is allowed
to make during his connection. A value of 0 does not check the number of
searches at all. This limit is calculated by using: ( count200 - evaluate_search_abuse_after_tags
) / onlinetime. So a value of 2 searches should be sufficient. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| max_shared | Group: content management | Type: integer | Default: 5 000 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| If set to a value greater than 0, this specifies the max number
of files that any client may share. This also affects the maximum number
of browse results for Mods+ (they are exempt from the
normal max_browse_result). This setting
strongly affects RAM consumption and also affects internet bandwidth consumption
of a running server. Increase this value if you have plenty of them left
to spend. Decrease this value (or max_connections)
if RAM consumption tends to grow too large after the server has been running
for some hours. Also regard there may still be some users who like to share
20 000 files and more. They could feel disgusted if this value is too low,
especially if they get additionally annoyed by verbose_too_many
being on and notify_exceed_frequency
being too low. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| max_tags_ per_minute | Group: flood protection | Type: integer | Default: 2 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Set the maximum number of certain tags per minute a client
could issue to the server. Some analysis showed that the tags 218, 219 and
700 were abusively used by some buggy clients. When the client has more
than max_tags_per_minute tags the request is simply ignored. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| max_time_ delta | Group: network | Type: integer | Default: 90 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Specifies the maximum number of seconds of difference in clock
time between two servers in order for them to be able to link. Note that
if this value is set too large, users can gain ops in channels even if they
were not the first user to join the channel. A value of 0 will turn off
this check completely. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| max_topic | Group: chat control | Type: integer | Default: 64 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| If set to a value greater than 0, this specifies the max number
of characters allowed in a channel topic. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| max_ uploading | Group: performance | Type: integer | Default: 200 | Since: NG 0.49 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| If non-zero, limits the number of concurrent filelist uploads
by clients. Most clients start to transmit their shared files lists immediately
after connect. If many files are to be shared by clients this can mean an
excessive incoming traffic for the server, especially shortly after the
server has been started. Server overload and significant lag can be result
of this. With this setting, if more than this number of clients are currently
uploading, new logins are rejected until some clients have finished uploading
their filelists. The stats log output shows how many users are uploading.
However, for technical reasons the value being displayed isn't quite precise
and usually a bit higher than the actual number of clients uploading. So
it's recommended not to set this value too low, as on large servers this
could not only limit incoming traffic but also the number of users being
able to connect at all. Don't set this value lower than 50 for small servers.
For large servers, values of 200 or 300 are recommended. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| max_user_ channels | Group: chat control | Type: integer | Default: 5 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| If set to a value greater than 0, this specifies the max number
of channels a user is allowed to join. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| max_whois_ ban_ttl | Group: flood protection | Type: integer | Default: 86400 | Since: NG 0.49 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| If max_whois_count, max_whois_time
and this value are non-zero, determines the ban TTL in seconds for excessively
whois'ing clients. The default value is one week. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| max_whois_ count | Group: flood protection | Type: integer | Default: 0 | Since: NG 0.49 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| If non-zero, specifies how many whois requests a user may
issue within max_whois_time seconds. If the
user exceeds this number of whois requests and max_whois_ban_ttl
is non-zero, (s)he gets banned. Excessive numbers of whois requests are
emitted automatically by some clients with certain settings, when users
want to be selective (or denying at all) regarding their uploads, at the
expense of server bandwidth. Most server owners don't want to support such
behaviour. Since occasional whois'ses of other users aren't anything hostile,
if non-zero, this value should not be set too low. A number of 20 whois
requests per hour should be tolerable. Excessive clients will exceed this
number by far quickly. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| max_whois_ time | Group: flood protection | Type: integer | Default: 0 | Since: NG 0.49 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| If non-zero, specifies the period for max_whois_count
in seconds. Recommended is a value pair of count 10 to 20 and time 3600
(1 hour).. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| min_file_size | Group: content management | Type: integer | Default: 0 | Since: NG 0.47H | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Set the lower limit of filesize (in bytes) which a single
file must at least have to be shared. If the min_file_size is 0
then there is no checking on this parameter. If a user tries to share files
with a size of less than min_file_size the user will receive a
server message informing him about the rejected file. It should be considered
that the Napster protocol isn't well suited to transfer large numbers of
small files. Also, a significant amount of common small files consists of
either images of unwelcome (or dangerous) kind or simply crap, like icon
libraries, DLL files, installed driver files or simply fakes! Although noone
will be interested in crap it may consume (waste!) significant amounts of
server resources if not being filtered out. That's why for public servers
a value of 100000 to 300000 (100 to 300 KB) is recommended, although this
may suppress a small number of desired small files as well. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| min_nick_ length | Group: user management | Type: integer | Default: 0 | Since: NG 0.60 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| If set to a value greater than 0, this specifies the minimum
number of characters allowed in a nickname. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| min_read | Group: network | Type: integer | Default: 0 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| If not 0 specifies the minimum number of bytes expected to
be read from a connection. If less than min_read bytes are read
the number of bytes read will be logged. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| motd_fmt | Group: user notification | Type: bitmap | Default: 255 (0xFF) | Since: NG 0.60 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
This is a bitmap variable, specifying which items to show
in the MOTD, prior to the custom MOTD
file. Available items and associated values are summarized in the table.
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| nick_expire | Group: user management | Type: integer | Default: 604 800 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Specifies the time in seconds of after which unused registered
user are expired and returned to the pool of available nicknames. Only regular
users with no flags set can expire after this time. User accounts with the
Friend flag set may expire after friend_expire
seconds. Accounts of Mods+ and higher levels never
expire. The default for this variable is 1 week. See also auto_register.
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| no_mod_ annoying | Group: mod+ notification | Type: boolean | Default: off | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| When set to on mod+ are exempt from the notification
of tag abuse. This only affects mod+ who are on a server where notify_user_abuse
is set to on. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| no_share_ level | Group: security | Type: integer | Default: 4 | Since: NG 0.49 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| If nonero, specifies the user level from which on no shares
are accepted. I.e. the user will always be listed as sharing 0 files, even
if the client is configured to share files. This is helpful for Elites and
Admins who connect to multiple networks with the same client and shares
setting but don't want to share any files in the network where they are
Elite or Admin, due to legal trouble, for instance. Meaningful values are
0 == no sharing restrictions, 2 == Moderators, 3 == Admins, 4 == Elite.
The default value 4 means that all Elites won't appear sharing any files,
regardless of their client settings. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| notify_block_ sources | Group: mod+ notification | Type: integer | Default: 2 | Since: NG 0.60 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
This variable specifies what sorts of blocked files Mods+,
the log and possibly the user are reported. On the first blocked file encountered
from the filelist of a client during its upload process, this variable specifies
what sorts of the following files should be reported. The variable notify_block_targets
specifies to what targets the reports should be delivered. The following
table shows valid values for this variable:
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| notify_block_ targets | Group: mod+ notification | Type: bitmap | Default: 1 | Since: NG 0.60 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
This variable specifies what targets are informed about blocked
or criminal files. Variable notify_block_sources
specifies what sorts of files are to be reported. This variable is a bitmap
where the following targets can be independently enabled and disabled:
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| notify_exceed_ frequency | Group: user notification | Type: integer | Default: 10 | Since: NG 0.47H | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Frequency of notifications which are sent to a user if he
keeps trying to share files beyond the max_shared
limit. The default value of 10 means that for every 10 rejected files the
user gets one notification. The higher this value the less network bandwidth
will be wasted. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| notify_mod_ abuse | Group: mod+ notification | Type: boolean | Default: on | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| When set to on the abuse of the tags mentioned above
is reported to the mod+ users on your system. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| notify_mod_ abuse_ frequency | Group: mod+ notification | Type: integer | Default: 100 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| When notify_mod_abuse is set to 1 then this following
var reports the frequency of notifications which are sent. A notify_mod_abuse_frequency
of 100 means that every 100th abuse per user is reported via notify_mods(). |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| notify_no_ uploads | Group: mod+ notification | Type: integer | Default: 10 | Since: NG 0.60 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
If nonzero, this variable enables notification of Mods+
on clients who share many files but have no uploads after a reasonable period.
This usually suggests they either share crap only which no one is interested
in, or they are actually freeloaders, i.e. they share files but don't allow
any uploads. The notification message is: "Crap or freeloader alert:
user x!y (z) shares n files for m minutes but has no uploads!"
The period between a non-uploading user connecting and this notification
being eemitted is inversely proportional to the number of files he shares.
I.e. the more files are shared with no uploads the earlier the notification
occurres and vice versa. Notifications are only generated on users sharing
at least 500 files. Currently this variable should be set with one of the
predefined values listed below. The columns show after what time notifications
are generated for users who share the respective number of files but have
no uploads within the period.
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| notify_user_ abuse | Group: user notification | Type: boolean | Default: off | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| When set to on the abuse of the tags mentioned above
is reported to the user issueing the tag via a privmsg. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| notify_user_ abuse_ frequency | Group: user notification | Type: integer | Default: 1000 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| When notify_user_abuse is
set to on then this following var reports the frequency of notifications
which are sent. A notify_user_abuse_frequency of 1000 means that
every 1000th abuse per user is reported via privmsg to the user. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| notify_user_ block | Group: user notification | Type: boolean | Default: off | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| When set to on a user will receive a server response
for every blocked file he tries to share. This is a way to let the user
know which of his files are blocked. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| persistent_filter | Group: flood protection | Type: boolean | Default: off | Since: NG 0.60 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| The server keeps a list of filtered search keywords which
are too common to yield useful results without severe usage of server resources.
keywords in that list will be ignored on searches for files. A predefined
list of filtered keywords is loaded on each server start. Unless persistent_filter
is set to on, the server won't change this file. The list of filtered keywords
may grow in server memory as it runs, but won't be stored in the file. This
way, after each server restart the filter list will be the same. This is
the behaviour of earlier Opennap NG versions. If persistent_filter
is enabled, the server will periodically store the updated list of filtered
search keywords. But beware: this list (and the file as well then) can
only grow, they will never shrink! This can easily lead to a situation
in which many hundreds of keywords become filtered, even rather particular
ones like certain artist's names, which will prevent files by those artists
to be searchable by their name at all. If persistent filters are enabled,
server owners should check from time to time the contents of this file and
remove some potentially indispensable key words. Raise file_count_threshold
to reduce chances of particular keywords to get into the filtered list.
In fact, setting this to on is not really recommended. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| portscan_ban_ttl | Group: user management | Type: integer | Default: 21 600 | Since: NG 0.60 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Users who can't provide an open port for others to connect
need to configure their client to operate in firewalled (port 0) mode. However,
a number of users fails to do so. Their client announces a connect port
being available, while it is actually not. This makes those clients freeloaders,
as no one will be able to connect to them in order to download from them.
If portscan_notify is nonzero, Opennap NG
tries to connect to clients which announce open ports, to verify they're
actually open. If they are found not to be open notifications will occur
as specified by that variable. If portscan_ban_ttl is nonzero,
clients with announced but unconnectable ports are automatically ejected
and banned. Otherwise just notifications will take place. Portscanning of
clients doesn't take place immediately after they connect. Instead, Opennap
NG will wait until they have finished uploading their filelists and start
sending other requests. Clients which have connected in firewalled (port
0) mode already, aren't scanned. The possible values for this variable |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| portscan_notify | Group: user management | Type: integer | Default: 0 | Since: NG 0.60 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Users who can't provide an open port for others to connect
need to configure their client to operate in firewalled (port 0) mode. However,
a number of users fails to do so. Their client announces a connect port
being available, while it is actually not. This makes those clients freeloaders,
as no one will be able to connect to them in order to download from them.
If this variable is nonzero, Opennap NG tries to connect to clients which
announce open ports, to verify they're actually open. If they are found
not to be open notifications will occur as specified by this variable. If
portscan_ban_ttl
is nonzero, clients with announced but unconnectable ports are automatically
ejected and banned. Portscanning of clients doesn't take place immediately
after they connect. Instead, Opennap NG will wait until they have finished
uploading their filelists and start sending other requests. Clients which
have connected in firewalled (port 0) mode already, aren't scanned. The
possible values for this variable are as follows:
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| ping_interval | Group: network | Type: integer | Default: 600 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Specifies the interval (in seconds) of how often to sping peer (linked) servers. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| protnet | Group: security | Type: string list | Default: * | Since NG 0.46 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Protnet is a set of protections granted to an Elite user on
the defined IP or list of IPs. The elite is protected from being killed,
mkilled, their password changed, or account nuked, and their server killed,
by someone NOT on the protnet, even if they are elite. The default setting
works like normal, any elite can kill other elites, etc. Note, the protection
only works on your own server, it can't protect you on another server, etc. Example: protnet 128.1.128.1,192.168.0.* |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| register_ interval | Group: flood protection | Type: integer | Default: 0 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Specifices how often (in seconds) clients from the same IP
address are allowed to register new nicknames. This can be used in conjunction
with auto_register to block web/clone clients
which attempt to log in with random nicknames. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| registered_ only | Group: user management | Type: boolean | Default: off | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| When set to on, the server only allows logins from
registered clients. Also see auto_register,
register_interval. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| remote_browse | Group: performance | Type: boolean | Default: on | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| This variable controls whether or not the server supports
remote browsing (where the client being browsed is not on the same server).
In large networks, remote browsing can account for significant cross server
traffic, increasing lag. Lopster or TekNap support´s for clients to directly
browse eachother outside of the servers, which is the recommended approach. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| remote_ config | Group: security | Type: boolean | Default: on | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| If set to on then admins from
other servers are permitted to change configuration values on this server. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| report_ip | Group: GotNap support | Type: string | Default: value of server_ name | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Sets the IP address this server listens on to be reported
to Napigator (GotNap). |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| report_name | Group: GotNap support | Type: string | Default: value of server_ name | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Sets the name of the server reported to Napigator
(GotNap). |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| report_port | Group: GotNap support | Type: string | Default: value of server_ ports | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Sets the TCP port this server listens on to be reported to
Napigator (GotNap). |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| restrict_ registration | Group: user management | Type: boolean | Default: off | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| If set, disallow the automatic registration of new nicknames
by clients as they log in for the first time. The only way to create new
nicknames (accounts) is then to use the administrator commands to register,
or by editing the users file directly (when the server
is not running). This option is typically used with the registered_only
option to run a private, access-controlled server where users need accounts
before they can log in. For public servers this setting should remain off,
to offer users the option to register themselves, for instance to avoid
nick collisions. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| search_max_ cache_entries | Group: performance | Type: integer | Default: 500 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| To give the hub in a distributed network some relief and to
speed up repeated searches an internal cache is maintained. How many searches
should be cached? The default value is 500 searches. You can query the cache
stats using /raw 10116. The format of the output is: Counter
Rank Usage Starttime LastUsedTime SearchString |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| search_timeout | Group: network | Type: integer | Default: 180 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| When servers are linked, searches will be timed out if no
response has been received after this many seconds. This forces the server
to send the final ack to the client. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| server_alias | Group: GotNap support | Type: string | Default: none | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Allows you to specify an alternate name by which the server
refers to itself. This is useful for connecting a "hidden" hub (routing-only)
server, or if you just want to use a shortcut for the full DNS name. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| server_chunk | Group: performance | Type: integer | Default: 0 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| If not 0 then this is the minimum amount of data to queue
before being sent to another server. If less data is to be sent the transmission
will be delayed. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| server_name | Group: network | Type: string | Default: Hostname | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Specifies the server's DNS name. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| server_ports | Group: network | Type: string | Default: 8888 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| This option specifies a list of TCP ports which the server
should listen on for client connections. Each port number should be separated
by whitespace. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| server_ queue_ length | Group: network | Type: integer | Default: 1 024 000 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Specifies the maximum number of bytes that can be queued for
a server connection before it is considered dead. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| set_group | Group: Unix specific | Type: string | Default: nogroup | Since: NG 0.60 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| This variable specifies either the name or number (GID) of
a valid Unix group of your system. If the server is started as root,
it will, after performing some initializations, drop its privileges and
continue executing with the effective access rights of this group. Specify
0 or "root" if you explicitly want the server to execute with
root group rights. That is not recommended, of course. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| set_process_priority | Group: performance | Type: integer | Default: 2 | Since: NG 0.60 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
If nonzero, attempts to change the priotity of the Opennap
NG process on startup, i.e. lower it. It is recommended to let Opennap NG
run on a lower or even lowest process priority. It's a common misconception
that low server priority means less performance, significantly greater lag
or lower execution speed. This is not true. See the Opennap NG FAQ for a
more detailed description about this issue. This variable can have three
values:
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| set_server_ nicks | Group: security | Type: string list | Default: (null) | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| This is a list of names of users who are allowed access to
raw 9998 and 9999. The users must still be elite, this adds another layer
of security to restrict exactly who is allowed access. I suggest not doing
wildcards in this list. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| set_user | Group: Unix specific | Type: string | Default: nobody | Since: NG 0.60 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| This variable specifies either the name or number (UID) of
a valid Unix user of your system. If the server is started as root,
it will, after performing some initializations, drop its privileges and
continue executing with the effective access rights of this user. Specify
0 or "root" if you explicitly want the server to execute with
root user rights. That is not recommended, of course. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| stat_click | Group: log verbosity | Type: integer | Default: 60 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Specifies how often (in seconds) the server should send updates
about server statistics (users/files/gigs) to the clients. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| stats_fmt | Group: log verbosity | Type: bitmap | Default: 255 (0xFF) | Since: NG 0.60 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
this bitmap variable enables or disables
particular sections in the frequently emitted stats output.
Note that this setting only applies to stats emitted every stats_click
seconds to log_targets. If enabled by live_stats,
the opennap-state.txt file always contains all of the
sections being listed here.
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| stats_port | Group: GotNap support | Type: integer | Default: 8889 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Specifies the TCP port on which the server should listen to
reports stats. Typically used by Napigator (GotNap).
If this port is set to -1, the server will not listen for stats reporting
at all. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| stat_server_ host | Group: GotNap support | Type: string | Default: report.gotnap .com | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Sets the DNS/IP address of the Napigator (GotNap) server to report
stats. Also see report_name, report_ip,
report_port, stat_server_port,
stat_server_user, stat_server_pass. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| stat_server_ pass | Group: GotNap support | Type: string | Default: none | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Sets the password for your Napigator (GotNap) account to list
live server stats. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| stat_server_ port | Group: GotNap support | Type: integer | Default: 8890 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Sets the port number for your Napigator (GotNap) account to list
live server stats. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| stat_server_user | Group: GotNap support | Type: string | Default: none | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Sets the username for your Napigator (GotNap) account to list
live server stats. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| strict_channels | Group: chat control | Type: boolean | Default: off | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| When set to on, the server will only allow privileged
users to create new channels. Upon startup of the server the channels listed
in the channels file are always created. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| user_db_interval | Group: security | Type: integer | Default: 1800 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Specifies the interval in seconds of how often the server
should write out its database files to disk. This is important in case the
server crashes prematurely, so that data loss is minimal. The default value
of half an hour should be reasonable. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| usermode | Group: security | Type: string | Default: all | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Sets the default usermode for mods+ users. Note: this is not to be confused with user
levels! |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| valid_clients | Group: user management | Type: string list | Default: (null) | Since: NG 0.47H | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| If not empty this is a string list of clients that are allowed
on your server. The client's identification must match one of the entries
to be allowed to connect. The default is empty so there are no restrictions.
Some clients can't/don't share, some clients are broken, etc. See also:
invalid_clients. Example: valid_clients *lopster*,*xnap*,*winmx*,*audiognome* |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| verbose_ ban_msg | Group: user notification | Type: bitmap | Default: 511 (0x1FF) | Since: NG 0.60 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
This is a bitmap variable. It allows to selectively enable
or disable verbose ban messages, to be sent to users via private
message just before they are getting banned (immediately before they
are ejected from the server).. Verbose ban messages may help users who are
not familiar with Opennap protocol, features and habits better understanding
why they are getting banned and what they should change in order
to avoid getting banned again later. This may help or encourage users to
change their behaviour in order to comply to the server rules next time.
Verbose ban messages also inform the user about the duration of the ban.
Hence, verbose ban messages can be regarded a matter of politeness. They
are typically 2 to 4 lines long each and don't carry weight regarding output
traffic, even if your server bans an average of more than 2 users per second
(which is an unlikely frequency). See the list of automatic
ban reasons, their settings and descriptions for a reference of verbose
ban messages which users are sent in case of getting banned. There are no
verbose ban messages being sent to users in case they are manually banned
by Mods+. The default is to enable all verbose ban
messages.
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| verbose_too_many | Group: log verbosity | Type: boolean | Default: on | Since: NG 0.47H | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| If a user tries to share more files than max_shared
there will be a server response to the user and a log entry informing that
no more files of him will be accepted. If this setting is on the
names and sizes of the rejected files are evaluated and logged. This can
be helpful to find users which share lots of fake or useless files. If this
setting is off then names and sizes of files will not be evaluated
and logged. This reduces CPU consumption. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| warn_time_ delta | Group: network | Type: integer | Default: 30 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| If the clock on a remote server is more than this many seconds
out of sync, opennap-ng will print a warning message. Also see
max_time_delta. A value of 0 turns off the warning completely. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| who_was_time | Group: user management | Type: integer | Default: 300 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Specifies the number of seconds after a user logs out that information on the client's ip address and server is kept in cache, so that mods+ may perform a whowas command. Note: this only controls how often the cache is purged, so some nicks may appear to be older than this amount. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
server_name set you to level Elite (4).where server_name is the name of your server. This message will let you know that you have fill privilege to access administrative commands on this server. Clients such as Lopster or TekNap already have all of the OpenNap-NG extensions built into it. Others, such as the official Napster client or WinMX do not (it was not inteded to be used by administrators). If you client is missing functions to directly access these administration commands, not to worry, OpenNap-NG has a way of getting around this. OpenNap-NG provides to pseudo-users, ChanServ for channel related commands, and OperServ for server related commands. For both of these, you can access their functionality by sending a privmsg (instant) message to either of these users (in most clients this will be either /msg user or /tell user).
| Ban type: | file limits |
| Since version: | Opennap NG 0.45 |
| Description: | A client is not sharing enough files to be allowed to stay in the network. |
| Ban time variable: | eject_ban_ttl |
| Trigger: | eject_limit_files, eject_limit_libsitze, eject_leeches, eject_when_full, min_file_size, max_file_size, ascii_filenames_pct, REs of class blocked, REs of class must match |
| Recommended TTL: | 6, 12, 24 or 48 hours |
| Ban message: | You shared less than x files or y GB (n files/z GB) |
| Verbose message: | You have to share at least x files or y GB to stay on this server
but you only share n files and m GB! Regard that the server doesn't accept files smaller than k KB, and certain file types considered useless may be blocked by server rules as well. Please upgrade your set of shared files if you want to return. You will be banned for z hours. |
| Ban type: | login flood |
| Since version: | Opennap NG 0.60 |
| Description: | A client is disconnecting and reconnecting frequently, potentially flooding the server with filelist uploads |
| Ban time variable: | max_login_ban_ttl |
| Trigger: | max_login_count, max_login_time |
| Recommended TTL: | 3, 6, 12 or 24 hours |
| Ban message: | Trouble? x logins in y minutes! Fix your connection problems! |
| Verbose message: | This is your x th login within y minutes! You either seem to be having
network or configuration trouble or attempting to flood the server! Fix your problems. You will be banned for z!" |
| Ban type: | whois flood |
| Since version: | Opennap NG 0.49 |
| Description: | A client is whois'ing other clients in great numbers. This wastes server resources and often indicates freeloaders. |
| Ban time variable: | max_whois_ban_ttl |
| Trigger: | max_whois_count, max_whois_time |
| Recommended TTL: | 12, 24 or 48 hours |
| Ban message: | Excessive whois'ing: x in y min.! No automated user scans here! |
| Verbose message: | Your client issued x whois requests within y minutes! This is regarded
server flooding and user espionage! Tools doing so inherently, like MXMonitor, are PROHIBITED (not allowed) on this server! Configure your client to stop emitting whois requests in masses! You will be banned for z hours! |
| Ban type: | command flood |
| Since version: | Opennap NG 0.49 |
| Description: | A client is flooding the server (issueing too many commands in too short time). |
| Ban time variable: | max_whois_ban_ttl |
| Trigger: | flood_commands, flood_time, flood_eject |
| Recommended TTL: | 6 or 12 hours |
| Ban message: | Flood: x tags in y min! (n searches, m requests) |
| Verbose message: | You were flooding the server: more than x requests in y seconds (z
total), n times. Reduce your activity, i.e. number of file searches or download requests if you want to come back. You will be banned for m hours! |
| Ban type: | too many blocked files |
| Since version: | Opennap NG 0.49 |
| Description: | A client shares a too high percentage of files which are blocked |
| Ban time variable: | max_block_pct_ban_ttl |
| Trigger: | max_block_pct |
| Recommended TTL: | 1, 2 or 3 days |
| Ban message: | Shared too many blocked files (x%) y of z files |
| Verbose message: | x percent of the files you wanted to share here were rejected by the
server due to block rules! This suggests you are trying to share a huge amount of needless or illegal crap! This isn't tolerated here! You will be banned for %.1f hours! Correct your shares if you want to come back! |
| Ban type: | upload port not open |
| Since version: | Opennap NG 0.60 |
| Description: | A client which announces an open upload port was scanned and the upload port couldn't be accessed, hence making that client a freeloader. |
| Ban time variable: | portscan_ban_ttl |
| Trigger: | portscan_notify |
| Recommended TTL: | 12, 24 or 48 hours |
| Ban message: | Your port x is closed, you're a freeloader! Fix your config! |
| Verbose message: | Your TCP port x can't be connected! However, your client is configured
to invite other clients to connect to it! This way other clients can't download anything from you and hence you are a freeloader, either accidentally or on purpose! Open your port (adjust your firewall?) or configure your client to operate in firewalled mode (port 0)! Since this sort of disguised freeloading isn't tolerated here you will be banned for y hours! |
| Ban type: | shared criminal files |
| Since version: | Opennap NG 0.60 |
| Description: | A client attempted to share files which match criminal class block expressions. |
| Ban time variable: | criminal_ban_ttl |
| Trigger: | REs of class criminal |
| Recommended TTL: | 1 week |
| Ban message: | |
| Verbose message: | You were attempting to share one or more files on this server which
are regarded criminal! You are banned for x hours! Clean up your shares if you want to return after that! |
| Ban type: | invalid searches |
| Since version: | Opennap NG 0.60 |
| Description: | A client attempted to search for terms which match invalid search class block expressions. |
| Ban time variable: | invalid_search_ban_ttl |
| Trigger: | REs of class invalid searches |
| Recommended TTL: | 1, 2 or 3 days |
| Ban message: | No searching here for x! |
| Verbose message: | You were searching for terms which are considered invalid by the server
owner, either due to legal reasons or because of potential perversity! You will be banned for x hours. Cancel your invalid searches if you want to stay here after that. |
| Ban type: | Mods+ ignore |
| Since version: | Opennap NG 0.45 |
| Description: | A client was ignoring a mod+. |
| Ban time variable: | discipline_ignorers_ban_ttl |
| Trigger: | discipline_ignorers_ban_ttl |
| Recommended TTL: | 1 week |
| Ban message: | Don't ignore a Mod+ ever again! |
| Verbose message: | You are ignoring a moderator, admin or elite of this network! This
is prohibited! Moderators and above are staff members. They manage or own servers or the network. You have to listen to them carefully and obey their orders if you want to stay on this network! Blocking any download requests from staff members is not acceptable either. For this significant violation of server rules you will be banned for x hours. |
| ban | /msg chanserv ban #channel nick ["reason"] | ||||||||||
| Places a ban on channel such that nick is prevented from joining.
You can optionally give a reason for the ban that will be displayed
to the user (Note: if you specify the reason, it must be quoted
with double-quotes (") or else the server will only show the first word
of the reason). |
|||||||||||
| banclear | /msg chanserv banclear #channel | ||||||||||
| Removes all bans from the channel. |
|||||||||||
| banlist | /msg chanserv banlist #channel | ||||||||||
| Displays the list of bans for the channel. Note: this does not
work for the official Windows Napster client since it doesn't have support
for displaying it. |
|||||||||||
| clear | /msg chanserv clear #channel | ||||||||||
| Kicks all users in the channel out of the channel, only leaving yourself. |
|||||||||||
| deop | /msg chanserv deop #channel nick | ||||||||||
| Removes user nick as a channel operator and makes him/her a normal
channel user. |
|||||||||||
| help | /msg chanserv help | ||||||||||
| Displays a summary of all available commands. |
|||||||||||
| invite | /msg chanserv invite #channel nick | ||||||||||
| Send an invitation to user nick allowing them to join a channel
which is set +INVITE. |
|||||||||||
| kick | /msg chanserv kick #channel nick ["reason"] | ||||||||||
| Kick user nick out of the channel. A reason can optionally
be given. Note: if reason is given, it must be quoted
with double-quotes (") or else the server will only display the first word. |
|||||||||||
| level | /msg chanserv level #channel [level] | ||||||||||
| Displays / sets the minimum required user level to
be allowed to join a channel. |
|||||||||||
| limit | /msg chanserv limit #channel [numusers] | ||||||||||
| Displays/sets the maximum number of users allowed to join a channel. |
|||||||||||
| mode | /msg chanserv mode #channel [mode [mode ...]] | ||||||||||
Displays/sets the channel mode. If no modes are given, it returns what
the current channel mode is. Acceptable modes are:
To set a channel mode, prefix it with a plus-sign (+). To unset a channel mode, prefix it with a minus-sign (-). You can specify however many different modes on the same command as you like. |
|||||||||||
| muzzle | /msg chanserv muzzle #channel nick | ||||||||||
| Prevent user nick from being able to send messages to the channel. |
|||||||||||
| op | /msg chanserv op #channel [nick [nick ...]] | ||||||||||
| If no nicknames are given, it returns a list of the current channel operators.
If given one or more nicknames, each user will be given channel operator
status (and thus the ability to execute any of the other channel admin commands). |
|||||||||||
| topic | /msg chanserv topic #channel [topic] | ||||||||||
| Display / set the channel topic. |
|||||||||||
| unban | /msg chanserv unban #channel nick | ||||||||||
| Remove channel ban against nick, allowing him/her to join the channel
again. |
|||||||||||
| unmuzzle | /msg chanserv unmuzzle #channel nick | ||||||||||
| Allow a previously muzzled user to send messages to the channel. |
|||||||||||
| unvoice | /msg chanserv unvoice #channel nick | ||||||||||
| Remove the ability to speak in a +MODERATED channel. |
|||||||||||
| voice | /msg chanserv voice #channel nick | ||||||||||
| Give the ability for a user to speak in a +MODERATED channel |
|||||||||||
| wallop | /msg chanserv wallop #channel text | ||||||||||
| Send a message to all channel operators on the channel (that is not seen by other users in the channel). |
| ghost | /msg nickserv ghost user password |
| This command allows you to kill a ghost which is
holding your nickame so that you can log in again. user is the nick
which is ghosting, and password is the password for that account. |
|
| register | /msg nickserv register password |
| Allows a user to register a nickname that has not been previously registered,
such that no other user may use the nickname without the corresponding password. |
|
| usermode | /msg nickserv usermode [flags] |
| See usermode. |
| add_server | /msg operserv add_server <hostname> <their_pass> <my_pass> <port> [alias] | ||||||||||||||||||||||||||||
| Adds a temporary server to the servers list |
|||||||||||||||||||||||||||||
| cloak | /msg operserv cloak | ||||||||||||||||||||||||||||
| Toggles invisibility to normal users. When cloaked, normal users do not
see your real nickname when you perform actions such as kill, ban, etc.
Instead, it will display Operator. Other mods+
users still see the real nickname. |
|||||||||||||||||||||||||||||
| config | /msg operserv config var [value] | ||||||||||||||||||||||||||||
| Display / set a server configuration variable. When value is missing,
OpenNap-NG displays the value of var. If value is specified,
it sets the configuration variable. |
|||||||||||||||||||||||||||||
| connect | /msg operserv connect server [remote_server] | ||||||||||||||||||||||||||||
| Links the server running on server. If remote_server is
specified, it tries to make a connection from remote_server to server
instead of from the local server. |
|||||||||||||||||||||||||||||
| disconnect | /msg operserv disconnect server | ||||||||||||||||||||||||||||
| De-links a server from the cluster. |
|||||||||||||||||||||||||||||
| killserver | /msg operserv killserver server | ||||||||||||||||||||||||||||
| Causes the specified server to shut down (terminates the OpenNap-NG process). |
|||||||||||||||||||||||||||||
| links | /msg operserv links | ||||||||||||||||||||||||||||
| Display a list of all linked servers. |
|||||||||||||||||||||||||||||
| list_server | /msg operserv list_server | ||||||||||||||||||||||||||||
| Display the servers file, the list of known servers. |
|||||||||||||||||||||||||||||
| reconfig | /msg operserv reconfig var | ||||||||||||||||||||||||||||
| Resets the configuration variable var to
its default value. |
|||||||||||||||||||||||||||||
| rehash | /msg operserv rehash [server] | ||||||||||||||||||||||||||||
| Causes the server to reload its configuration files. |
|||||||||||||||||||||||||||||
| server | /msg operserv server nick | ||||||||||||||||||||||||||||
| Displays which server a particular user is logged in through. |
|||||||||||||||||||||||||||||
| stats | /msg operserv stats server | ||||||||||||||||||||||||||||
| Displays stats about the server (uptime, bytes send/recv'd, etc). |
|||||||||||||||||||||||||||||
| userflags | /msg operserv userflags Nick FLAG | ||||||||||||||||||||||||||||
| Change userflags of a user. Flags can be Friend or None. |
|||||||||||||||||||||||||||||
| usermode | /msg operserv usermode [mode [mode ...]] | ||||||||||||||||||||||||||||
Toggles the various server messages. Each message the server sends to
mods+ is given a type so that if you don't want to see a particular
type of message, you can simply turn it off and still see the other messages.
To stop messages of a particular type, simply prefix the mode with a minus-sign (-). If you wish to only see a particular subset of messages, specify the ones you want with no prefix. You can also use the keyword ALL in conjunction with -<MODE> if you want "all but..." |
|||||||||||||||||||||||||||||
| whowas | /msg operserv whowas nick | ||||||||||||||||||||||||||||
| Displays information about a user that has recently logged out. Information is kept cached for who_was_time seconds. |
| Level | Num. | Description |
| Leech | 0 | Leech is a term for someone who is a freeloader.
This is the lowest user level of Opennap NG and is given to those users
which are misbehaving in some way. Leeches can't do the following
things:
|
| User | 1 |
A user is a plain-old-joe. This is what the vast majority of users are. Users may do the following:
|
| Moderator | 2 | A moderator, or "mod" for short, has the ability to execute some
of the administrative functions on the server. Moderators are especially
responsible for keeping the order in chat channels and remove disturbing
or otherwise misbheaving users. Moderators are assigned by Admins and Elites.
A moderator can:
|
| Admin | 3 | An admin is a special user level which allows
you to execute all of the moderator functions, plus the
following:
|
| Elite | 4 | An elite user is generally a server owner (the person who actually runs the OpenNap-NG software on their computer). They can basically do whatever they want. Don't step on their toes, these are the people providing you the service! |
watch -n 5 cat opennap-state.txt \| head -n 47You may use head and tail commands with varying numbers to adjust excerpts of the stats file you're particularly interested in. This only works on Unix shells. For Windows there is currently no equivalent for auto-updating the stats from the stats dump file available.
time: --- Server state dump --- delta: 5 seconds ----------------------------------- time: current time: Wed May 18 19:26:31 2005 (1116437191) time: server start time: Wed May 18 09:24:44 2005 (1116401084) time: server uptime: 0 days, 10 hours, 1 minutes, 47 seconds (36107 seconds) user: local users: 1055 d: -3 (100%) user: global users: 1055 d: +0 Avg. clones: 0.06 user: users uploading: 88 d: +2 (8%) user: total connects: 67542 d: +11 2 / sec. user: successful logins: 21299 d: +4 0 / sec. registered: 1122 user: total disconnects: 70046 d: +14 2 / sec. IP addr. 999 user: number of ban entries: 4406 d: +0 IBL: 274 d: +0 user: client portscans: 3556 d: +0 0%% current: 1 user: firewalled clients: 548 d: +1 51%% user: entries in flood list: 0 d: +0 Whowas list: 1246 d: +0 file: local files count: 1078100 d: +1262 +252 / sec. (100%) file: global files count: 1078100 d: +1262 +252 / sec. file: local library in MB: 27252648 d: +23777 (100%) file: global library in MB: 27252648 d: +23 file: files shared: 7857418 d: +2273 454 / sec file: files unshared: 6042634 d: +743 148 / sec file: files blocked: 640106 d: +258 (8%) file: avg. files / user: 1020 d: +4 MB/file: 25885 d: -7 file: download requests: 99263 d: +20 4 /sec file: downloads committed: 160562 d: +31 6 /sec (161%) file: entries in file table: 283092 mallocs per file: 9.1 mem : VmSize reported by OS: 405972 KB d: +0 wasted RAM: 30% mem : currently allocated: 283128 KB d: +255 KB MemOps/sec: 5584 mem : current allocations: 9849224 d: +8822 average chunk size: 29 bytes mem : total allocations: 65619730 d: +18373 total frees: 55770506 d: +9551 mem : average KB per user: 268 bytes/file: 268 load: CPU load factor: 0.87 d: +0.01 freezes: 0 delta: +0 load: tags processed: 6380128 d: +1866 373 / sec. load: I/O syscalls: 19201397 d: +4731 946 / sec. traf: total KB incoming: 969310 d: +309 B/sec: 63447 traf: total KB outgoing: 110215 d: +23 B/sec: 4772 ratio: 1:8.8 traf: avg. user throughput: 46601 bytes in 5298 bytes out traf: server based browses: 4208 KB 27422 files 41 browses srch: searches processed: 185211 d: +26 Search/sec: 5 srch: results delivered: 339995 d: +107 avg. results/search: 1.8 srch: kilobytes delivered: 55433 b/result: 166 b/search: 306 srch: filtered searches 52 d: +0 0% srch: filtered keywords 838 not found: 0 srch: searches pending: 0 expired: 0 cancelled: 0 chat: public messages: 0 d: +0 channels: 4 chat: private messages: 119 d: +0 ignored: 1 (0%) chat: winmx wantqueue waste: 92 d: +0 (77%) dcon: disconnect reason 1: 1899 d: +1 (2%) no more data dcon: disconnect reason 2: 12469 d: +2 (17%) login rejected dcon: disconnect reason 3: 564 d: +0 (0%) ghost kills dcon: disconnect reason 4: 711 d: +0 (1%) server rules dcon: disconnect reason 5: 0 d: +0 (0%) can't send to dcon: disconnect reason 6: 93 d: +0 (0%) login timeout dcon: disconnect reason 7: 437 d: +0 (0%) ul port closed dcon: disconnect reason 8: 1506 d: +1 (2%) connection resets dcon: disconnect reason 9: 1861 d: +0 (2%) timeouts rejc: login reject reason 1: 0 server is full 51 connecting too fast rejc: login reject reason 2: 38 too many clones 8646 user is banned rejc: login reject reason 3: 0 already logged in 33 already registered rejc: login reject reason 4: 1568 invalid nick 2 invalid client rejc: login reject reason 5: 2166 invalid password 0 admin connect only rejc: login reject reason 6: 0 invalid line speed 0 invalid port rejc: login reject reason 7: 0 restricted server 0 auto-register off rejc: login reject reason 8: 0 wrong parms client 0 wrong parms server |
| Name | Delta | Description |
| section: time | ||
| current time | - | The current time (time when this output was created) in a verbose plain text format, including day of week, date, time and the Unix time number (seconds since midnight 1970.1.1) |
| server start time | - | The time when the server was started, also in a verbose plain text format, including day of week, date, time and the Unix time number (seconds since midnight 1970.1.1) |
| server uptime | - | Time this server is running without any restart, given in days, hours, minutes, seconds and total number of seconds. |
| section: user | ||
| local users | Yes | The number of users currently being connected to this server. Followed by a percentage value which indicates how many percent of users of the entire network are on this server. |
| global users | Yes | The number of users currently being connected to all linked servers of this network. |
| avg. clones | - | The average number of clones connected to this server. This is simply the number of locally connected users divided by the number of different IP addresses used by clients, minus 1. For instance, if you have 240 users connected but only 200 different IP addresses are used by them, the average number of clones would be 0.2. |
| users uploading | Yes | The number of users who are currently flagged as uploading file lists, i.e. pumping data into your server. This number isn't quite precise. It's usually higher (by 5% - 20%) than the actual number of users uploading, since this flag is only reset if clients start doing anything else (searching, requesting downloads, chatting) after uploading their list. If a client just uploads a list and remains inactive after that, the flag isn't reset for that one. The percentage value indicates how many percent of locally connected users are currently flagged uploading. |
| total connects | Yes | This is the number of total connect attempts to this server by all clients. This includes both rejected connecvtions and successful logins. Also shown is the number of connect attempts per second. |
| successful logins | Yes | This is the number of connect attempts to this server which succeeded (weren't rejected). |
| registered | - | The number of registered users (entries in file opennap-users.txt). |
| total disconnects | Yes | This is the total number of disconnects from this server. It includes both rejected logins and connections from successful logins which ended. Also shown is the number of disconnects per second. |
| IP addr | - | The number of different IP addresses from which clients are currently being connected to this server. This number is usually a bit smaller than number of local users, indicating that from some IP addresses multiple clients are connected to the server. |
| number of ban entries | Yes | This is the number of user entries which are currently banned from this server. |
| IBL | Yes | This is the number of users which are currently listed in the IBL of this server. |
| client portscans | Yes | The total number of portscans (TCP connect attempts to the ports being announced open by clients). |
| current | - | The current number of pending TCP connect attempts to clients, accompanied by a percentage value, indicating how many percent of connected clients are currently being portscanned. |
| firewalled clients | Yes | The current number of locally connected clients which are configured being in firewalled (port 0) mode. Those clients will never be portscanned as this setting is rather failsafe in terms of enabling others to download from them. Also shown is the percentage of locally connected clients in firewalled mode. |
| entries in flood list | Yes | The current number of clients which are under observation due to flooding events. Searaches and download requests by users being in the flood list are ignored. |
| whowas list | Yes | The number of entries in whowas list. These are clients which disconnected recently. Infos about them can be queried by the whowas command for some time. |
| section: files | ||
| local files count | Yes | The number of file infos this server is serving currently. Also shown are the number of files which have been shared or unshared per second and the percentage value which indicates how many percent of all files of the network are hosted by this server. |
| global files count | Yes | The number of file infos currently being available in the network of all linked servers. Also shown is the number of files which have been shared oir unshared per second network-wide. |
| local library in MB | Yes | The number of Megabytes all listed files on this server sum up to. Also shown is the percentage value which indicates how many percent of MB of the network are hosted by this server. |
| global library in MB | Yes | the number of Megabytes all listed files in the entire network sum up to. |
| avg. files / user | Yes | The average number of files each user shares |
| files shared | Yes | The total number of all files ever being (or being attempted to be) shared on the server. Also shown is the average rate of incoming file share requests per second. |
| files unshared | Yes | The total number of all previously shared files ever being unshared (removed from the server). Also shown is the average rate of incoming file unshare requests per second. |
| files blocked | Yes | The total number of files that clients were attempting to share but which were blocked by the server due to one of the various rules. Also shown is how many percent of all files being attempted to be shared were blocked. |
| avg. files / user | Yes | The average number of files each user shares.on this server |
| MB/file | Yes | The average size of files shared on this server in MB |
| downloads requested | Yes | The total number of download requests issued by clients on this server. Also shown is the number of requests per second. |
| downloads committed | Yes | The total number of committed uploads by clients (in response to download requests of others). Also shown is the number of committed transfers per second and the percentage value which indicates how many percent of requests were committed. |
| entries in file table | - | How many different file entries the server currently maintains. |
| mallocs per file | - | The average number of distinct malloc calls (memory objects) each shared file consumes. This is mainly affected by the average length of file names (including paths) and the number of tokens into which those filenames are to be split. |
| section: mem | ||
| VmSize reported by OS | Yes | The total amount of accessable RAM space the OS has currently assigned to Opennap NG. Due to overhead of the OS memory management this value is usually signifcantly higher than the actual amount of memory requested by Opennap NG. This value is available only on certain Unix systems. |
| wasted RAM | - | The percentage of currently wasted RAM. That is RAM the OS has assigned to Opennap NG which actually isn't used (wasn't requested) by Opennap NG. Reason for this waste is overhead / inefficency of memory management by the respective OS. Commonly this value is between 25% and 35%. On a server with more users disconnecting than connecting it is even higher. The value doesn't seem to ever fall below 20%. This value is available only on certain Unix systems. |
| currently allocated | Yes | The actual amount of RAM being allocated by Opennap NG, by calls to malloc () or similar functions. |
| MemOps/sec | - | The average rate of both memory allocation and deallocation function calls per second. |
| current allocations | Yes | The number of currently allocated memory objects of all sorts by Opennap NG. |
| average chunk size | - | The average size in bytes of allocated memory objects. |
| total allocations | Yes | The total number of calls to malloc () and similar functions by the server while it has been running |
| total frees | Yes | The total number of calls to free () by the server to release memory objects while it has been running |
| average KB per user | - | The average amount of RAM in KB each connected user consumes |
| bytes/file | - | The average amount of RAM in bytes each listed file consumes |
| section: load | ||
| CPU load factor | Yes | The CPU load factor as traditionally calculated by the OS. 0.00 means the CPU is idle and 1.00 (in theory) means the CPU is busy. However, this is a very imprecise value. It doesn't reflect the CPU utilization of Opennap NG but of all running processes of a system. It may well raise (far) above 1.00 with neither Opennap NG starting to lag noteworthy nor the CPU being actually utilized 100%. This value is available on some Unuix systems only. |
| freezes | Yes | The total number of times the server was very busy in the depths of its subroutines, hence not responding and lagging. This value will be maintained only if the server was compiled in Debug mode. |
| tags processed | Yes | The total number of tags (client requests or commands of all sorts) the server has been processing since start. Also shown is the average rate of tags per second the server is currently processing. A good rule of thumb to calculate system load by this value is that there should be one MHz of clock speed for every tag per second. I.e., a server frequently processing 500 tags per second should run on at least a 500 MHz machine. However, peaks of limited duration above this margin are harmless. |
| I/O syscalls | Yes | The total number of core input / output syscalls the server has been issuing. This refers to calls to read() / receive(),. write() / send() and poll() / select(). Also shown is the current average rate of syscalls per second. A good rule of thumb to calculate system load by this value is that there should be one MHz of clock speed for every three system calls per second, i.e. a server frequently processîng 1500 system calls per second should run on at least a 500 MHz machine. However, peaks of limited duration above this margin are harmless. |
| section: traf | ||
| total KB incoming | Yes | The total number of KB the server has received from the internet via all of its connections. Also shown is the current average rate of incoming data in bytes per second. |
| total KB outgoing | Yes | The total number of KB the server has sent to various internet connections. Also shown is the current average rate of outgoing data in bytes per second. Note that Opennap NG reports net values only, that is, just the amount of all byte sequences being sent via write() / send() syscalls. If you check these values via an independent facility, i.e. a firewall or external traffic monitor, you may be reported significantly higher values. This is because external traffic measurements usually refer to gross values only. The difference is the overhead of TCP and IP packaging of data being sent by Opennap NG. There is no way for the server to correctly determine this overhed and show correct gross values. |
| avg. user throughput | - | The average number of bytes each user has sent to and received from the server while he was or is connected. usually the server receives much more data from users than it sends back. |
| server based browses | - | The total amount of file data in KB which has been sent to clients in response to server browse requests. |
| files | - | The total number of file informations which have been sent to clients in response to server browse requests. |
| browses | - | The total number of server browses being processed by the server |
| section: search | ||
| searches processed | Yes | The total number of client file search requests this server has been processing since its start. Also shown is the current average rate of processed searches per second. |
| results delivered | Yes | The total number of file entries being returned to clients in response to search requests. |
| avg. results / search | - | The average number of file results a search yields on this server. |
| kilobytes delivered | Yes | The total amount of KB sent to clients containing file information of search results |
| b/result | - | The average number of bytes being sent to clients per file search result |
| b/search | - | The average number of bytes being sent to clients per file search |
| filtered searches | Yes | The number of searches which weren't processed because they contained no valid keywords |
| filtered keywords | - | The number of keywords the search filter list currently contains. |
| not found | - | The number of searches which produced no results |
| searches pending | - | The number of pending searches being issued on remote servers |
| expired | The number of searches which didn't yield results from remote servers in time | |
| cancelled | The number of searches which were cancelled whiole being processed by remote servers | |
| section: chat | ||
| public messages | Yes | The total number of public messages being sent by any client in any chat channels since server start |
| channels | - | The current number of existing chat channels |
| private messages | Yes | The total number of private messages being sent by any client to any other client since server start. |
| ignored | - | Total number and percentage of private messages being ignored by recipient. |
| winmx wantqueue waste | Yes | Number and percentage of those private messages which are actually no user to user communication but being sent by the WinMX client while excercising its custom protocol violation to privilege other WinMX clients. In other words: those messages are a nuisance. They (and the privileges) can be suppressed b the break_mx_queue variable. |
| section: dscon (disconnect reasons) | ||
| 1: no more data | Yes | Connection failure. The OS signaled the connection to be readable but a read() call didn't yield any data. |
| 2: login rejected | Yes | A connection was established and a client was about to login but it was rejected for any reason. |
| 3: ghost kills | Yes | A client connection has been killed because another client using the same nick (and optionally correct password) is just logging in. |
| 4: server rules | Yes | Client ejection due to violation of server rules |
| 5: can't send to | Yes | Connection failure. The client queue was full but data couldn't be delivered to the client. |
| 6: login timeout | Yes | A connection was established but no proper login occurred in time. This may indicate portscans by non-clients. |
| 7: ul port closed | Yes | On being portscanned the announced upload port of a client has been found not reachable (closed). |
| 8: connection resets | Yes | The client just terminated the connection. (Available in poll() mode only) |
| 9: timeouts | Yes | Connection failure. A TCP timeout occurredand rendered the connection invalid. (Available in poll() mode only) |
The following is a list of known clients to support the Opennap NG server. Part
of the administration of Opennap NG is carried out via clients. The bold
entries are recommended clients, as they are
| Operating system | Client | Remark |
| Amiga | Amster | |
| Apple Macintosh | Drumbeat | |
| Xnap | Best featured platform-independent client (Java) | |
| BeOS | BeNapster | |
| Linux | AutoNap | Perl |
| BitchX | IRC napster plugin | |
| Gnap | Project closed | |
| Gnapster | ||
| Gnome-Napster | Project closed, use Lopster instead | |
| GTK Napster | Project closed, use Lopster instead | |
| Knapster | Project closed | |
| Lopster | Best featured and supported Linux GUI client (GTK+) | |
| Nap | Command line client | |
| TekNap | Formerly called BWap, standalone console Unix client based on bx-nap plugin for BitchX | |
| Xnap | Best featured platform-independent client (Java) | |
| iNapster | WWW interface | |
| OS/2 | Napster/2 | |
| PMNapster | Project closed | |
| Warpster | ||
| QNX | Phaster | |
| RiscOS | Riscster | |
| Windows | AudioGnome | |
| CQ_EX | ||
| Dagsta | ||
| Duskster | Perl | |
| FileNavigator | ||
| Hackster | ||
| Lopster (WinLop) | Windows port of the famous Lopster Linux client | |
| Lopster Ramadev | Italian Windows port of Lopster | |
| NapAmp | Napster plugin for WinAmp | |
| Napster | Historical, meanwhile uses different protocol and software and has revived as a pay per transfer service | |
| Napster Fast Search | ||
| Rapigator | ||
| Shuban | ||
| Spotlight | ||
| SunshineUN | ||
| Swaptor | ||
| WinLop | Windows port of the famous Lopster Linux client | |
| WinMX | ||
| Xnap | Best featured platform-independent client (Java) | |
| Platform-independent: | Jnapster | Java |
| Jnap | Java | |
| MyNapster Webclient | ||
| WebNap | PHP | |
| Xnap | Best featured platform-independent client (Java) | |
| Xnapster | Java |
| Admin | A privileged user level, usually assigned to members
of network staff only. |
|
| Bitmap (variables) | Bitmap variables are essentially integer variables. Their values are numbers.
However, these values are interpreted in a binary fashion by the server.
Usually each single bit of a bitmapped value enables or disables a particular
item. Hence, a bitmap variable can be thought of multiple boolean
variables (on/off-switches) in one variable. Calculating the correct
value to represent a given bitmap pattern requires some mathematical skills
and knowledge about binary numbers representation. People lacking these
should use the Opennap NG GUI config tool to adjust bitmap
variables, as it offers a much more convenient interface to calculate bitmap
values. Here is just a short example of how to set them: bitmap variables
always have pairs of numbers and items listed in their description. For
instance, a bitmap variable may feature the four items A, B, C and D, to
be independantly enabled or disabled. The associated numbers would be 1,
2, 4 and 8. (For each item the numbers are doubled.) To enable B and D just
add the associated numbers, i.e. 2 + 8. The result (10) enables B and D
and disables A and C. |
|
| Boolean (variables) | Booleans are variables that can take only two values: on or off.
Hence they can be thought of as simple switches. In the config file, the
values can be written as either "1", "on", "yes"
(for on) and "0", "off", "no" (for
off). Bitmap variables are a more complex variation
of boolean variables, combining multiple related boolean switches into one
variable. |
|
| Bot | Bots are scripts (programs), mainly being used in the context of chat
channels. They appear like normal users but usually run autonomous. Their
complexity and purpose is highly variable. Some useful bots perform housekeeping
duties, like detecting and ejecting channel flooders, greeting other users,
attempt to start or manipulate discussions, offer helpful services like
emitting server or channel statistics, acting as a chat gateway between
different networks or provide some world news on request. Those bots are
usually authorized or put in place by Mods+. However,
there exist also evil bots, which are usually not authorized. Their most
common intentions are either flood attacks of some
sort or annoying people in chatrooms or via PM. Technically,
bots are implemented via clients with scripting capabilities. For the Napster
protocol this is mainly the TekNap client. |
|
| Channel operator | A channel operator, also known as a chanop or just op, is
a user that is allowed to administer a chat channel. See ChanServ for a list of available commands. Channel operators
have no special privileges outside of the channel they are opped in. Channel
operator status is given either when a user is the first user to join a
chat channel, or another channel operator makes a user a channel operator
using the op command. All channel operators are equivalent, meaning
that if you op a user, they can immediately deop you (remove your channel
operator privilege). Note that being a channel operator is not a user
level. Most channel operators are only normal users. |
|
| Client browse |
Synonym for direct browse, opposite of server
browse. |
|
| Clones | Usually each user who connects to a server has its own, distinct IP address.
If multiple users with the same IP address connect to a server they are
referred to as clones. A great number of clones from the same IP address
can often be regarded a simple form of DoS attack, as
each clone consumes one of the limited connections. With the max_clones
setting Opennap NG offers to limit this sort of abuse. However, some users
and especially Mods+ may wish to use at least one other
clone without hostile intentions, maybe to test a secondary client, run
a bot or because they have much more than max_shares
files to offer and hence want to use two connections to offer separate collections
of them. So accepting at least one clone (setting the variable to 2!) usually
isn't a bad idea. If only higher user levels like Mods+
should be granted clones then the setting clones_allow_level
should be used. |
|
| CVS | Concurrent Version System, a software system to allow multiple developers
to work on a software packages, concurrently submit changes and track version
history. Ordinary users are able to obtain any version of a software package
from the entire version history tree via CVS. CVS is used by SourceForge
for version controlling of and access to various software packages, including
Opennap NG. |
|
| (Server) desync | If two or more servers are linked together to form a network they need
to maintain a consistent state, that is, know which users are connected,
what files are listed etc. It is possible that occasionally this consistency
is lost for some reasons, i.e. server splits, floods,
freezes or software bugs. If this happens, the results
may be confusing for some users. For instance, a user may appear connected
(visible) from one server but not connected (invisible) from another server
of the same network. This is especially irritating
when userswho want to chat in channels are affected. Similar inconsistencies
apply to file lists. Servers can be resynced by manually unlinking and relinking
them. Opennap NG versions prior to 0.49 are known to have contained a software
bug which effectuated desync inconsistencies. |
|
| Direct browse | Opposite of server browse, also referred
to as client bowse. A client who wants to retrieve
the entire filelist of another user directly connects to that other user's
client and receives the filelist from it. The server only mediates the request
but isn't involved in the actual list data transfer, hence, no server bandwidth
is consumed. Direct browses allow to retrieve the entire fileset of other
users, even blocked files which were not accepted and aren't listed by the
server. Direct browses are an advanced feature of the protocol which isn't
supported by all clients. Both clients being involved have to support direct
browse, otherwise server browse is used automatically. Since they save server
resources, are faster and uncensored, direct browses are preferred over
server browses. |
|
| DoS | Denial of Service, a common result of flood attacks
against internet servers of all kinds. A large number of requests is sent
to the server with the intention to overload it, cause it to freeze or crash.
Opennap NG contains various settings to control possible flood attacks and
limit their effects. No harmful large scale DoS attacks against Opennap
NG servers have been reported so far. |
|
| Elite | Highest user level supported by Opennap NG. Usually
only assigned to server owners. |
|
| Flood / flooding | If a client issues a large number of requests of any kind to the server,
this is referred to as flooding. This isn't necessarily a hostile act. Some
users simply issue a lot of searches or request a great number of file downloads,
or even accept a great number of file uploads. In case of ghost
kill deadlock floods the corresponding clients are usually misconfigured.
If, however, a client starts to issue senseless, random or even disturbing
requests in large numbers, intending to provoke a DoS,
this is to be regarded a flood attack. Flood attacks, as well as
non-hostile floodings, can cause the server to freeze (hang) or even crash.
For this reason Opennap NG supports a number of settings to detect and deal
with floods. It's generally up to the server owner to decide, how many requests
in a given period are to be considered unblamable and from which number
of requests on flooding is to be assumed. |
|
| Freeloader | A user who intends to download a significant number of files without offering
own files in return. In other words: they take but refuse to give. Freeloaders
share either very little or nothing or crap only when connecting to a server,
or they block uploads to other users who request files from them. Freeloaders
are often leeches as well, so these two terms are commonly
used interchangably. Most server owners won't want to have freeloaders on
their system. Freeloaders of the first sort can automatically be dealt with
by settings like eject_when_full, eject_limit_files,
eject_limit_libsize, min_file_size
and the opennap-block.txt file. |
|
| Freeze | A server which is not responding to any requests, often because it's overloaded
and still processing previous requests or experiences internet connection
trouble. Freezes can last from a few seconds to several minutes. In most
cases the server CPU will be utilized to 100% for these periods. Most freezes
are of temporary nature, i.e. the server doesn't crash and will return to
business. However, for the time the server freezes especially chatting users
experience a severe lag. |
|
| Friend | A Friend is a user that can join the network at any
time, even when the server is full and normally wouldn't accept any more
logins by users. Friends are assigned by Mods+. With
/msg operserv userflags USERNAME Friend you can give this status
to any user. Important: For the Friend Flag the user must be a registered
user at your network. For Mods+ the Friends flag has no meaning as they
are allowed to login any time anyway. |
|
| Ghost | A ghost is a user whose connection to the server is lost without the server
getting to know about this. Normally, when a user disconnects intentionally,
the server receives a corresponding disconnect message from that client
and immediately knows the user has left. It's a common symptom of dial-up
or DSL internet connections of clients or unreliable or faulty network connection
of the server that sometimes connections may break without the server getting
informed about it. As a result, the server still believes the user is connected,
while he is actually not. Those users are referred to as ghosts. Ghosts
always stay silent and the actual user doesn't get anything of what is written
to him in either public channels or via PM. Since becoming
a ghost is almost always an involuntary and unexpected event, the actual
user will most likely be trying to reconnect to the server. The user normally
won't succeed, because the server believes the user is already and still
being connected. Without ghost kill enabled the
user would have to wait something between 10 and 30 minutes to be able to
reconnect, until the server eventually realizes the connection is dead.
This can be very annoying for users and confuse others, especially if the
user was chatting when he became a ghost or when others are requesting files
from a ghost. Those requests will stay unanswered on ghosts. Ghost kill
turned on enables the user to immediately reconnect, despite the server
believes he is already being connected. The existing, actually dead, connection
will be removed and the user will be allowed to reconnect. Also, turning
on ghost kill can save a tiny amount of server resources. Without ghost
kill enabled the user will be trying to reconnect again and again, producing
quite a bit of wasted incoming traffic and processing power of the server.
This can be conserved if the user will be able to immediately reconnect.
Most but not all ghost kills come along with a change of the IP address
of the user. See also: ghost kill deadlock. |
|
| Ghost kill deadlock | Users who keep connecting and getting (ghost)killed
by the server rather frequently, about once or twice per minute, are experiencing
a ghost kill deadlock. All of them can only happen if ghost_kill
is enabled. There are three possible reasons for this: 1. misconfigured
clients (most common), 2. nick collisions,
3. flood attacks. Misconfigured client here refers
to outdated server lists or server lists filled with wrong data. Only clients
which support concurrent connections to multiple different networks
are affected by this. Any given nick may connect only
once to a network. It is possible that in the client's server list two servers
appear as belonging to different networks while they actually belong to
the same network. This may happen since servers sometimes change their network
affiliations indeed. So the client believes it is attempting to connect
to two different networks concurrently (which would be okay) while it is
actually attempting to connect to two servers of the same network all the
time. If both connection attempts use the same nick then the second successful
connect will always eject the first successful connect. Usually the first
one will immediately start to reconnect again, then ejecting the second
one, and so on. Countermeasures: true nick collisions can be avoided
/ stopped if the affected nick gets registered by one of its users or a
Mod+. Misconfigured clients and flood attacks are to
be put down by banning their related nicks for some time. Disabling ghost
kill at all is not recommended, since the number of harmless ghosts seeking
a single, immediate reconnect uses to outweigh deadlocks by far. |
|
| GotNap | An internet service (http://www.gotnap.com)
which can be used by public networks to advertise
themselves. Clients may get network / server addresses to connect to from
GotNap. New servers and networks who want to attract a large number of users
have to advertise in GotNap. This service is up since summer 2004. It's
the inofficial successor to Napigator, which provided
similar services until early 2004. |
|
| IM / Instant Message | Basically a private message to another user. However,
nowadays the term instant message is mostly used in context of instant
messenger programs. Most of those programs feature buffering of messages,
to be able to message other users even when they're offline. This isn't
supported by Opennap NG. Other users being messaged must be connected to
the same network at the time of the message being
sent. |
|
| Lag | In public channels, each message sent by a user gets distributed by the
server to all other users in the chat. If the server is mostly idle, this
happens almost instantaneously. However, If a server is temporary overloaded
or freezes, it either can't process any client requests
at all or it takes some seconds for each.. This results in a notable delay
between a message being sent by a user and that message becoming available
to the other users in a channel. If this delay gets so long that it starts
disturbing conversations (more than roughly 10 seconds) the server is said
to experience lag or be laggy. |
|
| Leech | In Opennap NG, leech is a user level. In general,
leeches are users who download an enormous amount of files, often from just
a few other users, while sharing and / or uploading very little or nothing.
Hence they resemble freeloaders and are generally
not welcome on servers. |
|
| Moderator | An advanced user level. |
|
| Mods+ | All users with a level of Moderator or higher. Generally this refers to
the staff of a server or network. |
|
| MOTD | Message Of The Day. This is the text the server sends to your client
when you log in. In Opennap NG the MOTD is contained in file opennap-motd.txt
and may be edited using any ASCII text editor. MOTDs may be coloured, which
is to be controlled by escape codes. However, this is a feature being supported
by few clients only. |
|
| Napigator | Formerly an internet service with its own website (http://www.napigator.com)
and support software, where networks could be publicly
advertised and clients got server addresses to connect to from. New servers
and networks who want to attract a large number of users had to advertise
in Napigator. Napigator has ceased its service in early 2004. Meanwhile
GotNap provides a nearly identical and compatible
network advertisment service. Technical references to Napigator in this
manual are historic and can be regarded as applying to GotNap nowadays. |
|
| Net(work) | In Opennap NG context, a network is a pool of Opennap NG servers which
are linked together to bundle their capacities, especially user and file
counts. Servers of a network communicate with each other to maintain a consistent
and synchronized state. This means, that all servers of a network should
know whether and to which server particular users are connected, what files
are searchable and what users are joined in what chat channels. If his client
supports it, a user may be connected to several networks concurrently, but
only to one server of a given network. Two users must be connected to the
same network to be able to chat (publicly or privately) or exchange files
via Opennap NG. Networks can be composed of a basically arbitrary number
of servers. However, the more servers are linked together, the greater the
internal synchronization overhead gets and more internet bandwidth is consumed.
Note that in Opennap NG context even single servers, which aren't linked
to any others, may be referred to as networks. |
|
| Nick | The name a user chose for his or her appearance in a network.
Opennap NG connections are nick-based, that is, every connection to a server
is associated with a nick. Users can choose and change their nicks nearly
at will between sessions. However, most users rarely change their nicks,
especially if they intend to chat with others. If a server allows clones,
one user may connect to a server or network multiple times (up to max_clones
times) concurrently, using a different nick for every connection. Nicks
should commonly be between 2 and 20 characters long If alnum_nicks
is enabled then nicks consisting of upper- and lowercase english letters,
digits and characters "-" and "_" only are accepted. |
|
| Nick collision | Two or more unrelated users may chose the same nick,
possibly a common one, and attempt to connect to a network concurrently.
If ghost kill is disabled only the first one will
succeed, followers will be rejected until the connection of the first one
terminates. If ghost kill is enabled then a ghost
kill deadlock may occur, where user A connects, gets ghost killed by
user B, user B then gets ghost killed by user A, and so on. This can be
avoided or stopped if one of the users registers himself with a private
password. The other one(s) then won't be able to use the same nick any more
as they don't know the password required to use that nick. Nick collisions
are a pretty rare event. |
|
| Ping | Not to be confused with common IP (internet protocol) ping command and
action, although the purpose is similar. In the Napster protocol, ping is
a special command to test whether other clients are still alive and reachable
and responding. The ping command is sent to the server which relays it to
the target client. The target client should respond with an automatic pong
then, which will be relayed back through the server to the pinging client.
Although they appear to be present, other clients may actually not be reachable,
for instance, because they have become ghosts or servers
are desynced. Usually pings are emitted on manual
request only. It's a good idea to precede especially PM
conversations with a ping to confirm the other user can receive your messages
and isn't ignoring you. In Napster protocol, incoming pings are to be answered
automatically with a pong. Unfortunately some clients either don't
support or ignore this feature. Hence, a missing pong doesn't always mean
the peer is not reachable, while a successful pong always means it is. |
|
| PM / Private Message | Private Message, a text message which is sent from one user to
another, not to be seen by others. Similar in meaning with instant
messages Along with public chats and file exchange, PMs are a core feature
of the Napster protocol on which Opennap NG bases. To be reachable via PM
a user must be connected to the same server or network.
Contrary to other server software, in the original (unmodified) Opennap
NG server software private messages are really kept private, that is, they
aren't stored or made visible to anyone else but the intended recipient.
This also means, there is no buffering (as in instant messengers) if the
recipient of the PM is currently offline. However, since Opennap NG is open
source software, anyone with adequate programming skills would be able to
change this fine behaviour. In fact, it is known that some server owners
expressed a strong and sick desire to spy on private messages of their users.
So users must not be absolutely sure their privacy is kept when communicating
via PMs in this sort of network. In Opennap NG, the runtime server administration
is mostly done via special PMs to the server. |
|
| Server browse | The opposite of direct browse. A server browse
is initiated if a client wants to retrieve the entire filelist of another
user, but either of their clients (or both) doesn't support direct browses.
In this case the two clients don't contact each other to transmit the filelist.
Instead, the stored copy of the requested filelist is sent from the server
to the requestor. This may consume a lot of outgoing server bandwidth. Even
more if the requestor and the requested user are connected to different
servers (of the same network). Therefore, most servers limit the amount
of file data being browsable via server browses. The max_browse_result
setting is used to control this. Since they save server resources and are
faster, direct browses are usually preferred by both server owners and users.
Unfortunately only a few clients support direct browsing as yet. |
|
| (Server) split | Term used to describe when two linked servers become disconnected from
one another (you can generally tell when this happens because if you are
in a chat channel you will see a bunch of users leave at the same time). |
|
| Sping | A term meaning server ping, or how long it takes a server to see
your data and respond. |