LAN Over IP

How to write a configuration file

Based on version 0.1

Summary

I Format of the file
II Options and syntaxes
III Ban file

I Format of the file

The configuration file is a plain text file constituted of lines. Each line can be a blank line, a comment line or an option line, the lines that do not belong to these categories are erroneous and will be ignored.

Blank lines:
A blank line is an empty line or a line composed of white characters (space, tabulation) and does not represent anything.

Comment lines:
In a comment line, the first non-white character must be either a sharp character '#' or two slashes '//'. The following text will not be interpreted by the server but is useful to leave comments or explain the configuration.

Option lines:
An option line must respect the following syntax:
key = value
key represents the option name and value the option value. Any white character before or after key or value will be ignored. The option name is case insensitive and must belong to the options presented below to be correctly interpreted. The value of the option must respect the syntax corresponding to the option.

II Options and syntaxes

1 Server configuration

Server port (serverport)
Sets the Tcp server port for client connection.
Syntax:
serverport = port
port is an integer, which represents a valid tcp port.
The default value is 3434.

Status port (statusport)
Sets the Udp port used to query the server about its status (connected clients, room names...).
Syntax:
statusport = port
port is an integer, which represents a valid udp port.
The default value is 42169.

Administration port (adminport)
Sets the Tcp port used to administrate the running server.
Syntax:
adminport = port
port is an integer, which represents a valid tcp port.
The default value is 42069.

Server language (language)
Sets the language of the server, mainly used when sending messages to the clients.
Syntax:
language = code
code should be the language short code (e.g. en, fr) but it actually represents the code specified in the translation file to use. For example, the file name must be 'serveur_??.qm' where the question marks represents the language code to use in the option value. If the option is 'language=en', the file 'serveur_en.qm is required, if not present the default language (French) will be used, that is why no file is required for French language.
The default value is fr (French).

Status query activation (udpstatus)
Enables or disables the query of the server by Udp.
Syntax:
udpstatus = state
state must be 'on' or 'off' to respectively enable or disable this feature.
The default value is on.

Banned IP file (banfile)
Specifies the file that contains the IP banned addresses. See the section concerning for more details.
Syntax:
banfile = file
file is the name of the file. It can be a relative or absolute path but the server needs to be able to locate it in order to load the data.
The default value is ban.conf.

2 Room configuration

Room list (room)
Each option specifies one server room with its type.
Syntax:
room = name,type
name is the name of the room, it must not use comma ',' because it is used as separator.
type must be either 'game' or 'chat'. The 'game' type enables the forwarding of LAN packets to the client in the room while 'chat' only enables chat messages.

Default room (defaultroom)
Sets the name of the room in which a new client will join.
Syntax:
defaultroom = name
name is the name of the room.
The default value is Defaut.

3 Remote administration

Administration mode (adminmode)
Specifies the accessibility of the remote administration interface.
Syntax:
adminmode = mode
mode must be 'none', 'local' or 'all'. 'none' disables the feature, while the others enable it. 'local' only allows connection from the computer hosting the server, while 'all' allows connection from everywhere.
The default value is none.

Administration interface password (adminpass)
Specifies the password of the administration interface.
Syntax:
adminpass = password
password is the password used to log in the interface, if the field is empty, password is disabled.
The default value is empty and is insecure if the interface is enabled.

Number of allowed password attempts (maxpass)
Sets the number of tries allowed to the client to log in.
Syntax:
maxpass = attempts
attempts must be a strictly positive integer to be correctly interpreted.
The default value is 3.

4 Chat flooding control

Activation of warnings (warnchatflood)
Enables or disables the sending of warnings to the client when it is flooding the chat rooms. It is the first level of control, so it enables or disables all the control system.
Syntax:
warnchatflood = state
state must be 'on' or 'off' to respectively enable or disable this feature.
The default value is on.

Number of messages allowed before a warning (msgchatwarn)
Sets the allowed number of messages that the client can send in a period of time, if more massages are sent during this period, it will send a warning.
Syntax:
msgchatwarn = number
number must be a strictly positive integer to be correctly interpreted.
The default value is 5.

Period for warnings (timechatwarn)
Sets the number of seconds before the message counter is reset to zero.
Syntax:
timechatwarn = number
number must be a strictly positive integer in seconds to be correctly interpreted.
The default value is 5.

Activation of kick (kickchatflood)
Enables or disables the disconnection of the client when it is flooding the chat rooms and it has been warned multiple times.
Syntax:
kickchatflood = state
state must be 'on' or 'off' to respectively enable or disable this feature.
The default value is on.

Number of warnings allowed before disconnecting the client (msgchatkick)
Sets the number of warnings sent to the client before disconnecting it.
Syntax:
msgchatkick = number
number must be a positive integer to be correctly interpreted.
The default value is 3.

Period for kick (timechatkick)
Sets the number of seconds before the warning counter is reset to zero.
Syntax:
timechatkick = number
number must be a strictly positive integer in seconds to be correctly interpreted.
The default value is 60.

5 Logging

Event logging level (loglevel)
Specifies the level of the logging system.
Syntax:
loglevel = level
level' must be one of these possible values: 'none', 'info', 'error and 'debug'. If the value is incorrect the option will be ignored and the default one used.
The default value is 'error'.

Chat logging (chatlog)
Enables or disables the chat logging.
Syntax:
chatlog = state
state' must be 'on' or 'off to respectively enable or disable this feature.
The default values is 'on'

Protocol message logging (msglog)
Enables or disables the logging of the protocol messages sent by the clients.
Syntax:
msglog = state
state' must be 'on' or 'off to respectively enable or disable this feature.
The default values is 'on'

Administration logging (adminlog)
Enables or disables the logging of the remote administration interface.
Syntax:
adminlog = state
state' must be 'on' or 'off to respectively enable or disable this feature.
The default values is 'on'

Log directory (logdir)
Specifies the directory for the log files.
Syntax:
logdir = directory
directory can be an absolute or relative path.
The default value is empty.

Server event log file (logfile)
Specifies the name of the server log file.
Syntax:
logfile = file
file is the filename. Actually, the filename is appended to the log directory path and must correspond to a (existing or not) file with write access.
The default value is serveur.log

Protocol message log file (msgfile)
Specifies the name of the protocol log file.
Syntax:
msgfile = file
file is the filename. Actually, the filename is appended to the log directory path and must correspond to a (existing or not) file with write access.
The default value is messages.log

Administration log file (adminfile)
Specifies the name of the remote administration log file.
Syntax:
adminfile = file
file is the filename. Actually, the filename is appended to the log directory path and must correspond to a (existing or not) file with write access.
The default value is admin.log

III Ban file

The ban file has the same format as the configuration file except the option lines which are specific. The syntax of these lines is:
ip[/mask]=[timestamp|]reason
The brackets represent optional fields while the vertical bar the real character '|' used as separator.
ip is the the IP address to ban, or an address which belongs to the range (when '/mask' is set).
mask (optional) is the number of bits used to mask the address in order to ban a range of addresses. The range is 0 (every addresses will be banned) to 32 bits (only one address). For example 192.168.1.0/24 will ban addresses from 192.168.1.0 to 192.168.1.255 because the mask is 24 bits long so the all the addresses which have the same 24 first bits as 192.168.1.0 (in that case addresses which begins by 192.168.1 ) will be banned.
timestamp (optional) is used to specify the date when the client will be unbanned. The date format is 'dd/mm/yyyy hh:mm:ss' where letters represent the different part of the date in digits with leading zeros in 24 hour format.
reason is the reason which will be given to the client.

SourceForge: Downloads - Bug report - Forums