Server configuration fields
===========================
This file gives a list of all the allowed fields in the main server config
file and what they do. For actual examples see the config files supplied
which is called "default.n4c".
For time periods times default to seconds but the modifiers "days", "hours"
and "minutes" can be used too:
eg
"idle timeout" = 5 - 5 seconds
"idle timeout" = 5,minutes - means 5 minutes (300 seconds)
Where a variable has "chars" in its name this means that its describing the
length of a portion of edited multiline text, eg a profile. When the variable
has "length" in its name its describing the length of a short 1 line piece of
text such as a subject line.
Name Function
---------------------- -----------------------------------------------------
"working dir" Specifies the servers working directory where it
will look for all its expected sub directories.
"bind interface" Specific IP interface to listen on. Eg 127.0.0.1
If set to ALL then it listens on all interfaces.
"user port" TCP port where users log in
"server port" TCP port where other servers connect
"server port listening" If NO then the server port will not be opened.
"server name" Sets the name of the server
"connect key" Connection key for remote servers. This is a very
basic security measure. No connection can occur
without the currect key which is a 32 bit int.
"soft max servers" The hard max server number is 15 hence this can be
set to between 0 and 15. Note that this is the
maximum number of servers allowed in the server list,
NOT the maximum number of live connections.
"ansi terminals" A list of terminals which are ANSI code compatable.
"max local users" Maximum number of local users allowed on server. If
a users level is > max_user_ign_level then they can
still log in. A value of 0 = unlimited.
"max remote users" Maximum number of remote users allowed on.
"max user ignore level" This is the user level (and higher) at which the user
login code ignores the max user value.
"max name length" Maximum user name length.
"max desc length" Maximum user description length
"max subject length" Maximum message subject length.
"linkdead timeout" Time a user can remain linkdead before being timeout.
"login timeout" Time a user can idle at the login prompt.
"idle timeout" Time a user can idle once logged in.
"idle timeout ignore level" Level from and above which the idle timeout does
not apply.
"board msg expire" Maximum age of a board message in a public group
before it expires.
"board renumber" If set to YES then board messages will be
automatically renumbered if any messages have been
expired.
"min pwd length" Minimum user password length.
"max hop" Maximum remote user hop count. Max = 255.
"max profile chars" Maximum characters in user profile. 0 = unlimited.
"max mail chars" Maximum characters in a mail. 0 = unlimited.
"max board chars" Maximum characters in a board message. 0 = unlimited.
"max group desc chars" Maximum characters in a group description.
"max group name length" Maximum length of a group name
"max broadcast chars" Maximum number of characters allowed in a broadcast
or net broadcast. 0 = unlimited.
"max include lines" Maximum number of lines included on a mail or board
reply when the user uses the "inc" option.
"ping interval" Time in seconds between sending a ping signal (a NIVN
ping, not ICMP) to a remote server.
"server timeout" Server link disconnected if nothing received from
server in this time period. This is only used when
connected to servers with NIVN < 3 as they do not
send their ping interval when connecting.
"connect timeout" Time to wait for a server to respond after issuing a
connect.
"max tx errors" Maximum number of transmission errors allowed before
server connection is terminated.
"max rx errors" Maximum number of receive errors allowed before server
connection is terminated.
"max packet rate" Maximum number of packets a second a remote server is
allowed to send. If this is exceeded an automatic
disconnect occurs. This is an attempt to prevent DOS
attacks. Setting this value to zero switches the
feature off.
"random remote ids" If YES then we give a remote user a new random id if
their id based on their remote id would be the same as
a user already on.
"allow loopback" If YES then a remote user can "loopback" to a server
already on their hop chain.
"default desc" Sets default description of new users.
"default pwd" Sets the default password for use with the
"user create" command.
"group invite expire" Length of time that group invites last for.
"group modify level" Minimum level of user than can modify a group.
"group gatecrash level" Minimum level of user that can gatecrash a private
group or not be evicted from.
"lockout level" Minimum level of user than can log in to the talker.
"remote user max level" Maximum level remote users can be (unless promoted
manually). If a user with a greater original level
comes over to the server their level is reduced to
this else it is set to their original level. **
"go invis level" Minimum level at which a user can go invisible.
"review lines" Number of lines in group and tell review buffers.
"signal ignore" Signals that the server will ignore. Ignoring a
SIGPIPE is hardcoded in and cannot be changed (since
sometimes this signal is generated by a socket
closed remotely)
"max login batch lines" Maximum number of lines allowed in a login batch.
"max logout batch lines" Maximum number of lines allowed in a logout batch.
"max session batch lines" Maximum number of lines allowed in a session batch
(ie a batch not run automatically but has to be
called using "batch run" by the user during a
session)
"prisoners ret home" If YES then prisoners are automatically returned to
their home group on release from prison.
"autosave interval" Time period at which all user data is saved in case
of a crash.
"log net broadcasts" If YES then net broadcasts from other servers will be
logged.
"recv net bcast level" Sets the minimum level of user who will receive
network broadcasts.
"hexdump packets" If YES then ALL packets received and sent will have
their details and contents dumped out to the log file.
WARNING: This produces a LOT of output and can
seriously slow down network operations. Only use for
debugging purposes.
"strip printcodes" If YES then all string printcodes in user input that
could mess up other user sessions are stripped out.
"allow who at login" If YES then anyone at the login prompt can see who
is on just by typing "who"
"allow remote batch runs" If YES then a user who is remote can run a batch on
his home server. Since the batch is treated just like
ordinary commands entered at the command line it will
execute on the REMOTE server which could make you
very unpopular.
"allow new accounts" If YES then new accounts can be created at the login
prompt.
"delete disconnected incoming" If YES then any incoming connections that have
been disconnected will be deleted from the server
list (this happens anyway with failed incoming
connections) to keep it tidy and allow reuse of local
server ids. This is only important if you have lots
of remote servers connecting to yours and need as
many free id's as possible.
"log unexpected packets" If YES then log any unexpected packets from servers.
"incoming encryption policy"
Options: ALWAYS - Server will refuse connect if
unencrypted link requested.
NEVER - Server will force link to
unencrypted.
EITHER - Don't care.
"outgoing encryption enforce"
This is for OUTGOING connections only. If YES then
the server will disconnect from a remote server if
it refuses to have encryption on the link. If NO then
a warning is given but the connection is retained.
"resolve ip name internally"
If YES then the server will attempt to resolve ip
names internally first by looking through the
current lists of users before spawning a resolve
thread.
"max local user data rate"
Max incoming data rate from local users. Zero is
unlimited.
"max server data rate" Max incoming data rate from remote servers. Zero is
unlimited.
"save novice accounts" If NO then any NOVICE account is deleted once they
log out.
"really delete accounts" If YES then user directories get deleted when the user
exits , else they get renamed to <uid>.delN
"log groups" If YES then save everything spoken, shouted &
emoted in all groups in a log file in the group or
users (if a user group) directory.
server Sets up connection details to a remote server.
Server line format:
server = <name>,<IP address>,[<port>],[<local port>],[<connect key>],[encrypt]
The optional argumenst can be left out , just leave the space between the
commas empty. eg: server = n4b,localhost,1416,,666,encrypt
server = n4c,abc.co.uk,1418,12345
server = n4d,def.co.uk,,,,encrypt
All the fields above have default values except for "server name" which MUST
be set and "server" which do not need to be in the config if you do not wish
to connect to any remote servers.
Hopefully this list will be up to date but for 100% guaranteed accuracy
look at the #define lines in globals.h! :)
** Original level is the level the user has on their local server. This level
is passed to every remote server they connect to and the level on any given
remote server is based on this.
Defaults are listed below:
Name Default value
--------------------------- -------------
"working dir" "."
"bind interface" ALL
"user port" 1413
"server port" 1414
"server port listening" YES
"connect key" 0
"ansi terminals" <none>
"max local users" 0 (unlimited)
"max remote users" 100
"max user ign level" ADMIN
"max name length" 15 chars
"max desc length" 30 chars
"max subject length" 40 chars
"linkdead timeout" 2 minutes
"login timeout" 1 minute
"idle timeout" 5 minutes
"idle timeout ignore level" MONITOR
"board msg expire" 5 days
"board renumber" NO
"min pwd length" 4 chars
"max hop" 255
"max profile chars" 800 chars (10 lines)
"max mail chars" 1600 (20 lines)
"max board chars" 800 chars
"max group desc chars" 800 "
"max group name length" 20 chars
"max broadcast chars" 400 chars
"max include lines" 5
"ping interval" 1 minute
"server timeout" 2 minutes
"connect timeout" 30 seconds
"max tx errors" 1
"max rx errors" 5
"max packet rate" 100 per second
"random remote ids" NO
"allow loopback" NO
"default desc" "the novice."
"default pwd" "changeme"
"group invite expire" 5 minutes
"group modify level" ADMIN
"group gatecrash level" ADMIN
"lockout level" NOVICE
"remote user max level" USER
"go invis level" ADMIN
"review lines" 20
"max login batch lines" 5
"max logout batch lines" 5
"max session batch lines" 5
"prisoners ret home" YES
"signal ignore" PIPE (Can't be removed)
"autosave interval" 15 minutes
"log net broadcasts" YES
"recv net bcast level" ADMIN
"hexdump packets" NO
"strip printcodes" YES
"allow who at login" YES
"allow remote batch runs" NO
"allow new accounts" YES
"delete disconnected incoming" NO
"log unexpected packets" YES
"incoming encryption policy" EITHER
"outgoing encryption enforce" YES
"resolve ip name internally" YES
"max local user data rate" 10000 bytes/sec
"max server data rate" 50000 bytes/sec
"save novice accounts" YES
"really delete accounts" NO
"log groups" NO