# first section is usage
# second section is that config maker will put into config
# third section is full help

module ircd
:%*
:
:This module provides RFC2810...RFC2813 compatible IRC daemon with\
 multi-charset support extension (if it's enabled in config) and with\
 cyclic network scheme possibility (if it's enabled in config).
 
 Server name for the network is taken from %^nick%^ variable on the start.
 
 Available flags for %_network%_ subrecords on clients:
    k  - means this is a KILL record or quarantined server;
    a  - means this is an exemption from KILL record;
    d  - means this is a restricted class;
    o  - means this is an Operator;
    h  - means this is a Local Operator;
    s  - means this is a local service;
    u  - means this is a known server on that network;
    *  - means this is a hub where we have an autoconnect to.
 Flags e, v, f, m, i, q are reserved for future usage.
 The %_network%_ subrecord on client that is a KILL record may contain an\
 optional KILL comment which will be sent to client. Note that KILL comment\
 should not contain any colon ('%^:%^'), otherwise part before first colon\
 will be skipped.
 
 Field "hub" on server record contains mask(s) for servers that server can\
 introduce. Mask "!some.server" means wrong path (L:line analog).

function ircd
:ircd ["-"encoding] [host"/"]<1024-65535>["%%"flags]
:
:Opens listening port for IRC protocol connections. Optional %_encoding%_\
 is starting charset for client connections. Optional %_host%_ is hostname\
 on which port is listening and if omitted then listening is opened on\
 every IPv4 local address. Optional %_flags%_ are chars for mandatory\
 connection chain first links (see technical documentation for more details\
 about connection chain).

function ircd-set-channel-topic
:ircd-set-channel-topic network channel [time who] topic
:
:

set ircd-default-class
:%* <string>
:Default class parameters string.
:This variable defines parameters for connections which are not match to\
 any other private or global client mask. It is a string which consists of\
 five numbers: maximum number of links from this [user@]host on the server,\
 maximum number of links from this [user@]host in this network, maximum\
 number of connections in this default class, ping frequency in seconds,\
 and sendQ for each client.
 Default: "2 2 100 90 1000".

set ircd-serverclass-pingf
:%* <seconds>
:Ping frequency for server links.
:This variable defines as often idle neighbour servers will be pinged to\
 check if they are alive.
 Default: 30.

set ircd-flags-first
:%* <string>
:Raw stream handling server flags.
:This variable defines which flags will be probed to apply to raw stream\
 on server link (i.e. before text parser/splitter to lines). You have to\
 include here any filter that requires raw stream - zip compression for\
 example.
 Default: "Z".

set ircd-flags-post
:%* <string>
:Text stream handling server flags.
:This variable defines which flags from %gPASS%n handshake will be probed to\
 apply to each line of IRC protocol. You have to include here any filter\
 that makes some network-specific protocol conversions to make difference\
 and compatibility with other servers in network.
 Default: "IPU".

set ircd-description-string
:%* <string>
:Server common description.
:This variable presents definition of the server which will be visible\
 across network. It should contain some geographic information.
 Default: "".

set ircd-admin-info
:%* <string>
:Server administrative info.
:This variable presents details of the institution and/or network which\
 this server belongs to.
 Default: "Not configured.".

set ircd-admin-email
:%* <string>
:Server administration e-mail.
:This variable defines electronic contact to server administration and\
 it is imperative to have it valid so users can find you in case of any\
 troubles.
 Default: "lame@lame.org".

set ircd-hold-period
:%* <seconds>
:Period of keeping nicks on hold due to network splits.
:This variable defines how long nicks will be kept unavailable after some\
 server was disconnected from network. Such unavailability is required to\
 prevent nick collisions after the server reconnect.
 Default: 900.

set ircd-motd-file
:%* /path/to/file
:Path to MOTD file.
:This variable defines where file containing MOTD for the server lies. It\
 can contain full path to the file or path relative to starting config.
 Default: "ircd.motd".

set ircd-max-matches
:%* <number>
:Max number of replies on LIST or NAMES.
:This variable defines how many replies will be sent to requestor on %gLIST%n or\
 %gNAMES%n query. When number of replies exceeds this value, %gERR_TOOMANYMATCHES%n\
 will be sent to the client.
 Default: 500.

set ircd-max-whois
:%* <number>
:Max targets to show on WHOIS.
:This variable defines how many replies can be requested with %gWHOIS%n query. If\
 there are too many matches then %gERR_TOOMANYTARGETS%n will be sent to requestor.
 Default: 3.

set ircd-squit-youngest
:%* <yes|no>
:Send SQUIT to youngest link on duplicate SERVER rather than to announcer.
:This variable defines behavior when duplicate SERVER is introduced and that\
 introduce involves server which does not support cyclic network scheme. If\
 this variable is sent to %^yes%^ then youngest link will be disconnected on\
 such issue. If set to %^no%^ then server that introduces duplicate will be\
 disconnected instead.
 Default: yes.

set ircd-statm-empty-too
:%* <yes|no>
:Show commands never used on stat m reply.
:If this variable is set to %^yes%^ then command that were never used will\
 be shown in %gSTATS m%n reply.
 Default: no.

set ircd-trace-users
:%* <yes|no>
:Want opers see all users in TRACE reply.
:If this variable is set to %^yes%^ then %gTRACE%n reply will include all local\
 users on last iteration if request was made by IRC operator.
 Default: yes.

set ircd-public-topic
:%* <yes|no>
:
:Set to %^yes%^ to grant access to topic outside of channel which have neither\
 mode +n nor +t. Note: topic is still partially accessible with LIST command.
 Default: yes.

set ircd-idle-from-msg
:%* <yes|no>
:Only PRIVMSG can reset idle time.
:If this variable is set to %^yes%^ then idle time is reset only when client\
 sends %gPRIVMSG%n to server. If it is set to %^no%^ then any message except\
 for %gPING%n/%gPONG%n pair will also reset idle time on client.
 Default: no.

set ircd-default-invisible
:%* <yes|no>
:Users will be automatically attributed with user mode "i".
:If this variable is set to %^yes%^ then local user after succesful registering\
 will be attributed with user mode %c+i%n.
 Default: yes.

set ircd-wallop-only-opers
:%* <yes|no>
:Only OPERs can get WALLOP messages.
:If set to %^yes%^ then non-opers will not get WALLOP messages despite of\
 "w" user mode.
 Default: no.

set ircd-no-spare-invites
:%* <yes|no>
:Don't allow setting +I for channels without +i.
:If this variable is set to %^yes%^ then any %gMODE%n %c<channel>%n %g+I%n\
 request for channel without %c+i%n will be ignored.
 Default: no.

set ircd-strict-modecmd
:%* <yes|no>
:Users should always use '+' or '-' for MODE changing.
:If set to %^yes%^ then message such as %gMODE%n %c<channel>%n %gt%n will result\
 in usage error. If set to %^no%^ then such message will be treaten as %gMODE%n\
 %c<channel>%n %g+t%n instead.
 Default: yes.

set ircd-ignore-mkey-arg
:%* <yes|no>
:Don't check argument of MODE #chan -k with key for #chan.
:If this variable is set to %^no%^ then %gMODE%n %c<channel>%n %g-k xxx%n on a\
 channel with key %cyyy%n will result in %gERR_KEYSET%n. If set to %^yes%^ then\
 such request will be considered valid.
 Default: no.

set ircd-max-bans
:%* <number>
:Max targets in each list (bans, exempts, invites).
:This variable defines how big list of bans each channel can hold. Each attempt\
 over this limit will result in %gERR_BANLISTFULL%n. The same variable defines\
 the same behavior for exempts list and invites list, separately.
 Default: 30.

set ircd-max-channels
:%* <number>
:Max channels an user can join.
:This variable defines how many channels user allowed to join. When this limit\
 is reached, user attempt to join will be refused.
 Default: 20.

+hub
:%* server mask
:
:Allows %_server%_ to introduce other servers to us. The %_mask%_ is simple\
 pattern to filter introduced servers: if the %_server%_ introduces some\
 server that matches none of added masks then it will be unlinked for such\
 behavior.

flood-type ircd-errors
:
:
:If set then each corrected error on server link will be checked against this\
 and if too many errors happened then link will be SQUITed in that reason. Note\
 that you should keep this value the same on all servers in your network.
