Next: , Previous: , Up: Existing servers   [Contents][Index]


3.4.2 IRC Server

3.4.2.1 General description

Internet Relay Chat. The mother of all chat systems. The integrated IRC server is intended to be compatible with the EFNet. There are no good possibilities to test this in real life, so it is still under heavy construction. But it can be used as a standalone server anyway.

IRC itself is a teleconferencing system, which (through the use of the client-server model) is well-suited for running on many machines in a distributed fashion. A typical setup involves a single process (the server) forming a central point for clients (or other servers) to connect to, performing the required message delivery/multiplexing and other functions.

The server forms the backbone of IRC, providing a point for clients and servers to connect to. Clients connect to talk to each other. Servers connect to build up a network of servers. IRC server connections have to build up a spanning tree. Loops are not allowed. Each server acts as a central node for the rest of the network it sees.

3.4.2.2 Configuration

The following table shows the configuration keys provided. Most of the configuration items are similar to those of an Hybrid IRC server. They seem archaic at first sight but IRC operators are used to it. Refer to the Hybrid documentation for further information. It can be found on the EFNet web page.

MOTD-file (string, default: ../data/irc-MOTD.txt)

When a user initially joins it will get this file’s content as the message of the day comment. When changing on disk the server will notice that and reload the file automatically.

INFO-file (string, default: no file)

The INFO-files content gets displayed when the user issues the /INFO command.

tsdelta (integer, default: 0)

This value is the timestamp delta value to UTC (Coordinated Universal Time) in seconds.

channels-per-user (integer, default: 10)

Configures the maximum number of channels a single local user can join.

admininfo (string, no default)

Some administrative information delivered on the /ADMIN command.

M-line (string, no default, mandatory)

The TCP level configuration of this IRC server. The server info field is sometimes given to the client for informational use. The server will croak about if the settings do not correspond with the actual bindings. The format of this line is:

":" virtual hostname
":" optional bind address (real hostname)
":" server info: "World's best IRC server"
":" port
A-line (string, no default, mandatory)

The administrative info, printed by the /ADMIN command.

":" administrative info (department, university)
":" the server's geographical location
":" email address for a person responsible for the IRC server
Y-lines (string array, no default, suggested)

The connection classes. They are used in other parameters (e.g., I-lines). A Y-line describes a group of connections. You usually have at least two Y-lines: One for server connections and one for client connections. Format of each line is:

":" class number (higher numbers refer to a higher priority)
":" ping frequency (in seconds)
":" connect frequency in seconds for servers, 0 for
    client classes
":" maximum number of links in this class
":" send queue size
I-lines (string array, no default, mandatory)

Authorization of clients, wildcards permitted, a valid client is matched user@ip OR user@host.

":" user@ip, you can specify ‘NOMATCH’ here to force
    matching user@host
":" password (optional)
":" user@host
":" password (optional)
":" connection class number (YLine)
O-lines (string array, no default, optional)

Authorize operator, wildcards allowed.

":" user@host, user@ forces checking ident
":" password
":" nick
o-lines (string array, no default, optional)

Authorize local operator.

":" user@host, user@ forces checking ident
":" password
":" nick
C-lines (string array, no default, networked)

List of servers to connect to. Note: C and N lines can also use the user@ combination in order to check specific users (ident) starting servers. C and N lines are usually given in pairs.

":" host name
":" password
":" server name (virtual)
":" port (if not given we will not connect)
":" connection class number (YLine)
N-lines (string array, no default, networked)

Servers which may connect.

":" host name
":" password
":" server name (virtual host name)
":" password
":" how many components of your own server's name to strip
    off the front and be replaced with a ‘*’.
":" connection class number (YLine)
K-lines (string array, no default, optional)

Kill user, wildcards allowed.

":" host
":" time of day
":" user

Next: Control Protocol Server, Previous: HTTP Server, Up: Existing servers   [Contents][Index]