"Fossies" - the Fresh Open Source Software Archive

Member "bahamut-2.1.5/doc/reference.conf" (28 May 2020, 29713 Bytes) of package /linux/privat/bahamut-2.1.5.tar.gz:


As a special service "Fossies" has tried to format the requested source page into HTML format using (guessed) Generic config files source code syntax highlighting (style: standard) with prefixed line numbers. Alternatively you can here view or download the uninterpreted source code file. See also the latest Fossies "Diffs" side-by-side code changes report for "reference.conf": 2.1.4_vs_2.1.5.

    1 /*
    2  * Bahamut IRCd, doc/reference.conf
    3  *
    4  * Originally written by Trevor Talbot (Quension) in April 2004.
    5  * 
    6  * The configuration format consists of blocks, each containing name-value
    7  * pairs, tags, or string data.  It is designed to be easily readable by
    8  * both human and ircd.
    9  * 
   10  * A block consists of a block name, an opening '{' brace, statements, a
   11  * closing '}' brace, and a ';' semicolon.  A statement consists of a
   12  * name, possibly followed by a value, and ending with a semicolon.
   13  * Strings that contain special characters or whitespace can be surrounded
   14  * by '"' double quotes.  All elements of the configuration are separated
   15  * by whitespace, and can be packed on one line, or broken up over several
   16  * lines.
   17  *
   18  */
   19 
   20 # Comments are supported in three forms:
   21     /* C style
   22        multi-line */
   23     # shell style single-line
   24     // C++ style single-line
   25 
   26 /*
   27  * A sample block:
   28  * 
   29  *     block {
   30  *         name value;            # A statement with a name value
   31  *         name 123;              # A statement with a number value
   32  *         name "hello world";    # A statement with a string value
   33  *         tag;                   # A simple tag
   34  *         "will code for food";  # A simple string
   35  *     };
   36  * 
   37  * The parser also understands a special include directive outside of a
   38  * block context:
   39  * 
   40  *     include path/to/file.conf;
   41  */
   42 
   43 
   44 ###########################################################################
   45 # Global [REQUIRED]
   46 # The Global block defines information about the server itself.
   47 # This block is required for the server to start.
   48 # 
   49 # Old conf format equivalents:
   50 #     M:name::info
   51 #     X:dpass:rpass
   52 
   53 global {
   54     // required tokens
   55     name    not.configured;     # The IRC name of the server
   56     info    "located on earth"; # A short info line
   57 
   58     // optional tokens
   59     dpass   secret;             # Password for DIE command
   60     rpass   secret;             # Password for RESTART command
   61 
   62     // the optional Admin block may also be specified here
   63 };
   64 
   65 # The DIE and RESTART commands can optionally require passwords to be
   66 # supplied, to help prevent accidents.  If the dpass and rpass tokens are
   67 # not specified, no passwords are needed.
   68 # 
   69 # The Admin block may be nested here.  (This is currently a purely
   70 # organizational/astetic option.  This will probably change in future
   71 # releases.  -epi)
   72 # 
   73 # The server name may only be changed by a server restart.  The info line
   74 # can be changed on rehash, but will not propagate to other linked servers.
   75 # 
   76 # There must be exactly one Global block.
   77 ###########################################################################
   78 
   79 
   80 ###########################################################################
   81 # Admin [SUGGESTED]
   82 # The Admin block defines up to 3 information lines for the ADMIN command.
   83 # It may also exist inside the Global block.
   84 # 
   85 # Old conf format equivalents:
   86 #     A:line 1:line 2:line 3
   87 
   88 admin {
   89     // optional tokens
   90     "An unconfigured server";   # Info line #1
   91     "An unknown administrator"; # Info line #2
   92     "email@somewhere.earth";    # Info line #3
   93 };
   94 
   95 # Not all lines are required.  There may be only one Admin block.
   96 ###########################################################################
   97 
   98 
   99 ###########################################################################
  100 # Options [OPTIONAL]
  101 # The Options block configures various options for the server itself.
  102 # This block is recommended for networks other than DALnet.
  103 # 
  104 # Old conf format equivalents:
  105 #     T:wgmonhost:wgmonurl
  106 
  107 options {
  108     // optional tokens
  109     network_name    unconfigured;   # Name of the network
  110     services_name   services.name;  # IRC name of services server
  111     stats_name      stats.name;     # IRC name of stats server
  112     staff_address   staff.net;      # Opermask hostname
  113     nshelpurl       "http://foo";   # URL for nick registration help
  114     spamfilterurl   "http://foo";   # URL for spamfilter help
  115     wgmonhost       wgmon.host;     # Wingate monitor scan host
  116     wgmonurl        "http://foo";   # URL for wingate monitor info
  117     network_kline   "kline@net";    # Contact email for network bans
  118     local_kline     "kline@server"; # Contact email for server bans
  119     servtype        client;         # Set server type:
  120                                     #     CLIENT, HUB, SERVICESHUB
  121     maxchannels     10;             # Max chans user can join
  122     ts_max_delta    300;            # Maximum timestamp delta
  123     ts_warn_delta   30;             # Warn for TS deltas larger than this
  124     local_clones    1:15;           # Default maximum local IP:site clones
  125     global_clones   3:30;           # Default maximum global IP:site clones
  126     crypt_oper_pass;                # Encrypted passwords in Oper blocks
  127     short_motd;                     # Use ircd.smotd
  128     show_links;                     # Show real LINKS output
  129     allow_split_ops;                # Op in empty channels while unlinked
  130     allow_remote_rehash;            # Accept rehash sent from remote server
  131 };
  132 
  133 # The services and stats IRC server names are used for the shortform
  134 # commands, which are transformed into targeted name@server messages for
  135 # security.  The services server name is used by SERVICES, IDENTIFY,
  136 # NICKSERV, CHANSERV, MEMOSERV, ROOTSERV, NS, CS, MS, and RS.  The stats
  137 # server name is used by OPERSERV, STATSERV, HELPSERV, OS, SS, and HS.
  138 # >> defaults: services.dal.net, stats.dal.net
  139 # 
  140 # The staff_address token is used for operator hostmasking, as described
  141 # in the Allow block documentation.
  142 # >> default: staff.dalnet
  143 # 
  144 # The nshelpurl token is used to supply a URL for nick registration help.
  145 # It is sent to clients in the rejection numeric when they encounter a +R
  146 # channel and are not registered.
  147 # >> default: http://docs.dal.net/docs/nsemail.html
  148 # 
  149 # The maxchannels token limits the number of channels a user may join at
  150 # one time.  The limit for server operators is 3x this one.
  151 # >> default: 10
  152 # 
  153 # The server type changes some behavior to be appropriate to the role.
  154 # CLIENT servers can only link to one other server (their uplink hub).
  155 # HUB servers link several servers together, but are not intended to hold
  156 # general users.
  157 # >> default: CLIENT
  158 # 
  159 # The server is capable of sending a set of notices to users on connect,
  160 # providing some information about a proxy bot that scans them.  The
  161 # wgmonhost token is the host the bot will be connecting from (for users
  162 # with firewalls or other connection monitoring), and wgmonurl is a web
  163 # page containing additional information about the bot.  If neither token
  164 # is specified, the notices will not be sent.
  165 # 
  166 # Proper clock synchronization is required among connected servers.  This
  167 # requirement can be relaxed by using the ts_warn_delta and ts_max_delta
  168 # tokens.  The TS delta is the difference (in seconds) between the clocks
  169 # of this server and the one it is linked to.  These options should only
  170 # be used as a last resort; the correct fix for TS delta problems is to
  171 # synchronize the clocks on both server computers, such as with the ntpdate
  172 # tool.  Unsynchronized clocks may cause unpredictable network problems.
  173 # >> defaults: 15, 120
  174 # 
  175 # The local_clones and global_clones tokens control the maximum number of
  176 # connections the server will allow from the same place by default.  The
  177 # first number refers connections from the same IP (10.0.0.5).  This number
  178 # may optionally be followed by a colon ':' and a second number, which
  179 # refers to connections from the same site (10.0.0.*).  The local_clones
  180 # token sets the default limits for connections on this server only, and
  181 # may be overridden by the maxclones token in a Class block.  The
  182 # global_clones token sets the default limits for connections as seen on
  183 # the entire network, and may be overridden by network services.
  184 # >> defaults: 10:60, 25:150
  185 # 
  186 # The crypt_oper_pass token configures the server to use hashed passwords
  187 # in the Oper blocks, to avoid password discovery by someone reading the
  188 # conf file.  If this token is specified, passwords in the Oper blocks
  189 # must be generated by the tools/mkpasswd utility.
  190 # 
  191 # The short_motd token enables use of the ircd.smotd file, which is sent
  192 # to clients on connect instead of ircd.motd.  The MOTD command still sends
  193 # the contents of ircd.motd as normal.  This option is intended to reduce
  194 # traffic on connect, but still convince users to read the full motd when
  195 # appropriate.
  196 # 
  197 # The show_links token causes the LINKS command to display real server
  198 # links (though Super servers are still hidden).  If this token is not
  199 # specified, LINKS will display the list given to it by services.
  200 # 
  201 # The allow_split_ops token causes the server to always give chanop status
  202 # to users who join empty channels, even when no other servers are linked.
  203 # Normally op status will not be given when this server is alone, to help
  204 # prevent channel abuse during netsplits.  This token should be used if
  205 # your server is not part of a network.  Opers are always given op status
  206 # in empty channels regardless of this setting.
  207 # 
  208 # All of these tokens are optional, and can be specified at different times
  209 # in multiple Options blocks.  If a token is specified twice, the second
  210 # value overrides the first.
  211 ###########################################################################
  212 
  213 
  214 ###########################################################################
  215 # Port [REQUIRED]
  216 # The Port blocks define where the server will accept connections.  At
  217 # least one Port block is required to start.
  218 # 
  219 # Old conf format equivalents:
  220 #     M::bind::port
  221 #     P:ipmask:bind::port
  222 
  223 port {
  224     // required tokens
  225     port    6667;       # Port to listen on
  226 
  227     // optional tokens
  228     bind    127.0.0.1;  # IP address to listen on
  229     ipmask  127.0.*.*;  # Mask to accept connections from
  230     flags   S;      # Allow SSL connections on this port
  231 };
  232 
  233 # If a bind address is not specified, the server listens on all available
  234 # interfaces.
  235 #
  236 # Flags available inside port blocks:
  237 #   S  - allow SSL connections on this port
  238 #   n  - do not perform DNS lookups on incoming connections on this port
  239 #   i  - do not perform ident checks on incoming connections on this port
  240 # 
  241 # The ipmask token is used to limit the port to connections from the
  242 # specified IP mask.  Only a simple mask is supported, consisting of a *
  243 # where one component of the address is (e.g. "192.168.*.*").
  244 # 
  245 # There may be multiple Port blocks.
  246 ###########################################################################
  247 
  248 
  249 ###########################################################################
  250 # Class [RECOMMENDED]
  251 # The Class blocks define the connection classes used by the Allow, Oper,
  252 # and Connect blocks.  While the server will start without a Class block,
  253 # it will not be usable.
  254 # 
  255 # Old conf format equivalents:
  256 #     Y:name:pingfreq::maxusers:maxsendq            (for clients)
  257 #     Y:name:pingfreq:connfreq:maxlinks:maxsendq    (for servers)
  258 
  259 class {
  260     // required tokens
  261     name        users;      # Name of the class
  262     pingfreq    90;         # PING idle connection every N seconds
  263     maxsendq    100000;     # Send buffer limit
  264 
  265     // optional, for Allow classes only:
  266     maxusers    100;        # Maximum number of clients
  267     maxclones   2:20;       # Maximum IP:site clones
  268     maxrecvq    2560;       # client excess flood threshold
  269 
  270     // optional, for Connect classes only:
  271     connfreq    300;        # Try autoconnect every N seconds
  272     maxlinks    1;          # Autoconnect if less than N links in class
  273 };
  274 
  275 # Idle connections are polled with the PING command every pingfreq seconds.
  276 # 
  277 # The maxsendq token controls the size of the internal send buffer, used
  278 # when a connection cannot accept large amounts of data at once.  Certain
  279 # server commands emit such large amounts of data.  As an example metric,
  280 # a 100KB user send queue can support a WHO <channel> query for a channel
  281 # with approximately 700 users.  Large amounts of data are also generated
  282 # when two servers link and synchronize network state.  If the send queue
  283 # limit is exceeded, the connection is terminated.
  284 # 
  285 # For classes used in the Allow blocks, the maxusers token limits the
  286 # number of clients that may exist in this class.  This is the most common
  287 # general user limit for the server.  If this limit is reached, additional
  288 # clients will be rejected with a "server busy" message.  This token must
  289 # not be specified for classes used in the Connect blocks.
  290 # 
  291 # For classes used in the Allow blocks, the maxclones token limits the
  292 # number of clients that may connect from the same place in this class.
  293 # The first number refers to connections from the same IP (10.0.0.5); it
  294 # may be optionally followed by a colon ':' and a second number, which
  295 # refers to connections from the same site (10.0.0.*).  If this limit is
  296 # reached, clients will be rejected with a "too many connections from your
  297 # host/site" message.  Limits defined here override the defaults as
  298 # configured in the Options block.  If a site limit is not supplied here,
  299 # clients in this class will effectively have no site limit; the default
  300 # limit will not be used.  This token must not be specified for classes
  301 # used in the Connect blocks.
  302 # 
  303 # For classes used in the Connect blocks, the connfreq token specifies the
  304 # frequency at which autoconnections are tried.  This token works together
  305 # with maxlinks, which specifies the maximum number of servers in this
  306 # class to autoconnect to.  For an autoconnection to take place, the
  307 # Connect block must have a valid port token, and there must be less than
  308 # maxlinks connected servers in this class.  The connfreq and maxlinks
  309 # tokens must not be specified for classes used in the Allow or Oper
  310 # blocks.
  311 # 
  312 # A "default" class is created internally using definitions in config.h.
  313 # This class is used when no other class is specified, but its settings are
  314 # not useful for most situations.  Custom classes are strongly suggested.
  315 # 
  316 # There may be multiple Class blocks; at least one is recommended.
  317 ###########################################################################
  318 
  319 
  320 ###########################################################################
  321 # Allow [RECOMMENDED]
  322 # The Allow blocks define the hosts connections are allowed from, and
  323 # places them into classes.  While the server will start without an Allow
  324 # block, it will not be usable.
  325 # 
  326 # Old conf format equivalents:
  327 #     I:ipmask:passwd:host:port:class
  328 
  329 allow {
  330     // required tokens
  331     host        *;          # Resolved host mask (optional if using ipmask)
  332     ipmask      *;          # Unresolved IP mask (optional if using host)
  333     
  334     // optional tokens
  335     port        6667;       # Apply block to this port only
  336     passwd      secret;     # Require password for connection
  337     flags       mCFT;       # Special flags for this connection
  338     class       users;      # Place connections in this class
  339 };
  340 
  341 # The server uses a default-deny policy for incoming connections; at least
  342 # one Allow block must be supplied if you wish to use your server.
  343 # 
  344 # The host and ipmask tokens specify which connections this block matches.
  345 # The server always performs DNS and ident lookups for connections.  If DNS
  346 # cannot find a hostname, the IP is used instead.  If ident cannot get a
  347 # valid response, "unknown" is used during this stage.  The client's
  348 # resolved hostname, IP address, ident reply, and username (from the USER
  349 # line) are used according to the results of the matches described below.
  350 # 
  351 # The host token attempts to match first against the resolved hostname if
  352 # available, then against the IP address.  To include the connection's
  353 # ident response in the match, use a mask in the form "ident@host".  If a
  354 # client matches this token, it appears on IRC using its resolved hostname.
  355 # 
  356 # The ipmask token attempts to match against the IP address only.  To
  357 # include the connection's ident response in the match, use a mask in the
  358 # form "ident@host".  If a client matches this token, it appears on IRC
  359 # using its IP address, even if its hostname was resolved.
  360 # 
  361 # If the matching mask used ident ("ident@host" instead of "host"), and no
  362 # ident response was received from the client, it appears on IRC with its
  363 # username prefixed with '~'.  If the matching mask used only the "host"
  364 # form, the client's username is not prefixed.  If a valid ident response
  365 # was received, it is always used (without prefix), regardless of the mask
  366 # form.
  367 # 
  368 # Only one of the host and ipmask tokens is needed; if both are used, host
  369 # is matched first.  For typical configurations, using only the host token
  370 # with a "*@host" or "ident@host" mask is recommended.
  371 # 
  372 # Examples:
  373 #     // client with username "user", ident "ident", hostname "name"
  374 #     host ident@*;     # appears as ident@name
  375 #     ipmask *;         # appears as ident@10.0.0.1
  376 # 
  377 #     // same client without ident response
  378 #     host *;           # appears as user@name
  379 #     host *@*;         # appears as ~user@name
  380 #     ipmask unknown@*; # appears as ~user@10.0.0.1
  381 # 
  382 # The port token limits this block to match connections to the specified
  383 # port only.
  384 # 
  385 # The passwd token requires that matching connections supply a password to
  386 # use the server.  Clients can send a password string in multiple forms,
  387 # depending on which passwords need to be used.  The basic format is:
  388 # 
  389 #     [passwd][:][opername:operpass][:][nickpass]
  390 # 
  391 # If the Allow block requires a password, it must be supplied at the front
  392 # of the string.  If operator hostmasking is enabled (via the flags token
  393 # described below), the client can mask itself by supplying a "name:passwd"
  394 # string as defined in an Oper block.  When masked, a client appears on IRC
  395 # using the Oper block name for its ident, and the Options block
  396 # staff_address for its hostname.  Any remaining passwords are sent to
  397 # NickServ in an SIDENTIFY command.  All password components must be
  398 # separated from each other by a ':' colon.
  399 # 
  400 # Using the examples in this file, a client could connect with the password
  401 # string "secret:johndoe:secret" and be masked as johndoe@staff.net.
  402 # 
  403 # The flags token allows special behavior to be assigned to this
  404 # connection, using a set of single-letter options.  The available flags
  405 # are:
  406 # 
  407 #     m  Enable operator hostmasking
  408 #     C  Bypass clone limiting
  409 #     F  Force umode +F to bypass message flood checks
  410 #     T  Disable rapid (re)connection throttling
  411 # 
  412 # When operator hostmasking is enabled, a matching client can connect using
  413 # a special password to be masked, as described for the passwd token above.
  414 # 
  415 # Normally all clients are subjected to a clone limit check when they
  416 # connect, as configured in the Options and Class blocks.  The C flag skips
  417 # this check for matching clients, allowing them to have an unrestricted
  418 # number of connections.
  419 # 
  420 # The F flag forces matching clients to always have usermode +F, to avoid
  421 # various message flood checks.  This flag is intended for special bots and
  422 # should not be used for server operators; opers can make use of the F
  423 # access flag as described in the Oper block documentation.
  424 # 
  425 # By default, the server throttles rapid (re)connections from a single IP
  426 # address, to help reduce abuse and load.  The T flag disables this
  427 # mechanism for matching clients.  To qualify, a client must send valid
  428 # NICK and USER messages to register the connection, and stay connected
  429 # long enough to complete the ident and DNS lookups.  However, a correct
  430 # password is not required.
  431 #
  432 # The class token specifies the connection Class to place matching
  433 # connections in.  If not specified, the default class is used; see the
  434 # Class block description for details.
  435 # 
  436 # There may be multiple Allow blocks; they are matched in the order they
  437 # appear.
  438 ###########################################################################
  439 
  440 
  441 ###########################################################################
  442 # Oper [SUGGESTED]
  443 # The Oper blocks define server operators.  One or more of these blocks
  444 # is recommended if you intend to maintain your server.
  445 # 
  446 # Old conf format equivalents:
  447 #     O:host:passwd:name:access:class
  448 
  449 oper {
  450     // required tokens
  451     name    johndoe;        # Account name
  452     passwd  secret;         # Account password (optionally encrypted)
  453     host    ident@hostmask; # Restrict access to this mask
  454     host    *@172.16.4.2;   # Up to 32 masks can be specified here
  455     access  *Aa;            # Access flags
  456 
  457     // optional tokens
  458     class   opers;          # Place authenticated client in this class
  459 };
  460 
  461 # The name and passwd tokens match the parameters of the OPER command.  If
  462 # the crypt_oper_pass token is specified in the Options block, the passwd
  463 # string must be generated by the tools/mkpasswd utility.  The plaintext
  464 # password is still used in the OPER command.
  465 # 
  466 # To authenticate as an operator, a client must match one of the host
  467 # tokens specified in "user@host" mask form.  There can be up to 32 host
  468 # tokens.  The host part is matched against both resolved hostname and IP
  469 # address.
  470 # 
  471 # The access token specifies what access an operator has, using a set of
  472 # single-letter flags.  The available flags are:
  473 # 
  474 #     *  Includes all flags
  475 # 
  476 #     O  Network operator, includes these flags:
  477 #        C  Can route other servers
  478 #        K  Can kill clients on other servers
  479 #        N  Can send global notices
  480 #        and all flags included by 'o' (server operator)
  481 # 
  482 #     a  Can use umode +a (services administrator)
  483 #     F  Can use umode +F (no flood limits)
  484 # 
  485 #     Using any of the flags above will set umode +o (global operator).
  486 #     All other flags set umode +O (local operator) by default.
  487 # 
  488 #     o  Server operator, includes these flags:
  489 #        r  Can use REHASH
  490 #        h  Can use GLOBOPS
  491 #        w  Can use WALLOPS
  492 #        l  Can use LOCOPS
  493 #        b  Can use KLINE
  494 #        B  Can use UNKLINE
  495 #        c  Can route this server
  496 #        k  Can kill clients on this server
  497 #        n  Can send server notices
  498 #        u  Can use umode +c (see client connection notices)
  499 #        f  Can use umode +f (see flood notices)
  500 #        W  Can use umode +b (CHATOPS)
  501 #        d  Can use umode +d (debug)
  502 #        y  Can use umode +y (see /stats, /info, /admin, /trace and /motd requests)
  503 # 
  504 #     D  Can use DIE
  505 #     R  Can use RESTART
  506 #     A  Can use umode +A (server administrator)
  507 # 
  508 # The class token specifies the connection class the operator will be
  509 # placed in.  If not specified, the default class is used; see the Class
  510 # block description for details.
  511 # 
  512 # There may be multiple Oper blocks.
  513 ###########################################################################
  514 
  515 
  516 ###########################################################################
  517 # Connect [OPTIONAL]
  518 # The Connect blocks define links to other servers.
  519 # 
  520 # Old conf format equivalents:
  521 #     C:host:cpasswd:name:port:class:bind
  522 #     N:host:apasswd:name:flags:class
  523 #     H:*::name
  524 
  525 connect {
  526     // required tokens
  527     name    server.name;    # Other server's name
  528     host    server.host;    # Other server's host
  529     apasswd secret;         # Password to accept from other server
  530     cpasswd secret;         # Password to send to other server
  531 
  532     // optional tokens
  533     port    7000;           # Port to autoconnect to other server on
  534     bind    127.0.0.1;      # IP to connect from
  535     flags   ZEH;            # Flags for this link
  536     class   servers;        # Connection class to use for this link
  537 };
  538 
  539 # The name token specifies the IRC name of the other server, and the host
  540 # token specifies its hostname or IP address.  Using an IP address is
  541 # recommended.
  542 # 
  543 # The apasswd token defines the password this server will accept from the
  544 # other one, and cpasswd defines the password to be sent.
  545 # 
  546 # The port token is used to enable autoconnection.  See the Class block
  547 # description for details.
  548 # 
  549 # The bind token specifies the local IP to use when connecting to the
  550 # other server.
  551 # 
  552 # The flags token defines various options for the connection:
  553 # 
  554 #     H   other server is a hub (allowed to link other servers)
  555 #     Z   compress the link traffic
  556 #     E   encrypt the link using RC4 with DH key exchange
  557 # 
  558 # The class token specifies the connection class to use for the server
  559 # link.  If not specified, the default class is used; see the Class block
  560 # description for details.
  561 #
  562 # The uflags token defines various options for U:lined server connections.
  563 # These are typically used to prevent the services hub server from sending
  564 # useless data to services that will just be ignored anyway.  It can help
  565 # with the initial server sync burst on slow connections or older hardware.
  566 #
  567 #     s   Send shortform style services messages (:user NS :message)
  568 #           instead of longform style messages
  569 #           (:user PRIVMSG NickServ@services.host :message)
  570 #     T   Don't send TOPICs on initial burst
  571 #     a   Don't send AWAY messages ever
  572 #     A   Don't send AWAY messages on initial burst
  573 #     c   Don't send channel messages or notices
  574 #     n   Don't send private notices
  575 #     g   Don't send globops
  576 #
  577 # There may be multiple Connect blocks.
  578 ###########################################################################
  579 
  580 
  581 ###########################################################################
  582 # Super [OPTIONAL]
  583 # The Super block defines up to 24 super ("U-lined") servers, allowed to
  584 # to do special network things.  Used for network services.
  585 # 
  586 # Old conf format equivalents:
  587 #     U:name:*:*
  588 
  589 super {
  590     "server1.name";     # Super server #1
  591     "server2.name";     # Super server #2
  592                         # ...
  593 };
  594 
  595 # Super servers are permitted to do things typical network services would
  596 # want to do, such as apply network bans, manage channel modes, etc; the
  597 # details are too numerous and complex to provide here.  This block is a
  598 # simple list of up to 24 such servers, using their IRC names.
  599 # 
  600 # Super servers may be changed by a rehash, but will not take effect until
  601 # all existing server links have been broken and reconnected.
  602 # 
  603 # There may be multiple Super blocks; all blocks are combined into one
  604 # list.  There is a global limit of 24 super servers.
  605 ###########################################################################
  606 
  607 
  608 ###########################################################################
  609 # Restrict [OPTIONAL]
  610 # The Restrict blocks disallow nicknames, channelnames, or clients with
  611 # specific GCOS (real name) fields.
  612 # 
  613 # Old conf format equivalents:
  614 #     Q::reason:mask    (NICK, CHAN)
  615 #     G::reason:mask    (GCOS)
  616 
  617 restrict {
  618     // required tokens
  619     type    chan;           # Type of restriction: NICK, CHAN, GCOS
  620     mask    "#botworld";    # Disallowed mask
  621     
  622     // optional tokens
  623     reason  "evil bots";    # Reason for restriction
  624 };
  625 
  626 # Setting the type token to "nick" will create a nickname restriction,
  627 # using the specified wildcard mask.  Restricted nicknames cannot be used
  628 # by normal clients, but network operators may use them.
  629 # 
  630 # Setting the type token to "chan" will create a channel restriction,
  631 # using the specified wildcard mask.  Restricted channels cannot be used
  632 # by normal clients, but network operators may join them.
  633 # 
  634 # Setting the type token to "gcos" will create a real name field ban,
  635 # using the specified wildcard mask.  Clients with a matching real name
  636 # field will not be permitted to connect.
  637 # 
  638 # The reason token provides a single-line reason for the restriction, and
  639 # is sent to clients along with the rejection notice.
  640 # 
  641 # There may be multiple Restrict blocks.
  642 ###########################################################################
  643 
  644 
  645 ###########################################################################
  646 # Kill [OPTIONAL]
  647 # The Kill blocks disallow connections from clients based on specific
  648 # ident and host masks.
  649 # 
  650 # Old conf format equivalents:
  651 #     K:host:reason:username    (mask was split)
  652 
  653 kill {
  654     // required tokens
  655     mask    "*@192.168.0.0/24";     # Disallowed mask (wildcard or CIDR)
  656     
  657     // optional tokens
  658     reason  "tourists only!";       # Reason for ban
  659 };
  660 
  661 # Kill blocks are a flexible general client ban mechanism.  The mask token
  662 # can be specified in several formats:
  663 # 
  664 #     mask *.bot.world;       # Wildcard hostname
  665 #     mask user@*.isp;        # Wildcard user@hostname
  666 #     mask 192.168.0.0/16;    # CIDR IP (all 4 parts needed)
  667 #     mask user@10.4.2.2/30;  # CIDR user@IP
  668 # 
  669 # CIDR format is the most efficient, and should be used when possible.  The
  670 # server will attempt to convert wildcard IP masks to CIDR form internally.
  671 # 
  672 # Clients that match a Kill block will be rejected from the server.
  673 # Existing clients will be scanned for possible matches when new blocks are
  674 # loaded during rehash.
  675 # 
  676 # There may be multiple Kill blocks.
  677 ###########################################################################
  678 
  679 
  680 ###########################################################################
  681 # Modules [OPTIONAL]
  682 # The Modules block configures dynamic module loading.
  683 # 
  684 # Old conf format equivalents:
  685 #     modules.ini
  686 
  687 modules {
  688     // optional tokens
  689     path        mods;   # Directory to look for modules in
  690     autoload    mod1;   # Module to load at startup
  691     autoload    mod2;   # Up to 128 modules can be specified here
  692 };
  693 
  694 # The path token specifies the directory to search for modules in, relative
  695 # to the ircd directory.  There can only be one path, and the default is
  696 # "modules".
  697 # 
  698 # The autoload token specifies the name of a module (without file
  699 # extension) to load automatically at startup.  There can be up to 128
  700 # autoload tokens.
  701 # 
  702 # There may be only one Modules block.
  703 ###########################################################################