/* The channel block contains options pertaining to channels */
channel {
        use_invex = yes;
        use_except = yes;
        use_knock = yes;
        knock_delay = 1 minute;
        knock_delay_channel = 1 minute;
        max_chans_per_user = 25;
        quiet_on_ban = yes;
        max_bans = 100;
        default_split_user_count = 15000;
        default_split_server_count = 25;
        no_create_on_split = yes;
        no_join_on_split = no;
        invite_ops_only = yes;
        burst_topicwho = yes;
};

/* The serverhide block contains the options regarding serverhiding */
serverhide {
        /* flatten links: this option will show all servers in /links appear
         * that they are linked to this current server
         *
         * EFnet Note:  While this is not a requirement on EFnet, it
         *              may be a good idea. Except, its useless
         *              unless the entire net runs it.
         */
        flatten_links = no;

        /* links delay: how often to update the links file when it is
         * flattened.
         */
        links_delay = 5 minutes;

        /* hidden: hide this server from a /links output on servers that
         * support it.  this allows hub servers to be hidden etc.
         */
        hidden = no;

        /* disable hidden: prevent servers hiding themselves from a
         * /links ouput.
         */
        disable_hidden = no;
};

/* The general block contains many of the options that were once compiled
 * in options in config.h.  The general block is read at start time.
 */
general {
        /* floodcount: the default value of floodcount that is configurable
         * via /quote set floodcount.  This is the amount of lines a user
         * may send to any other user/channel in one second.
         */
        default_floodcount = 25;

        /* failed oper notice: send a notice to all opers on the server when
         * someone tries to OPER and uses the wrong password, host or ident.
         */
        failed_oper_notice = yes;

        /* dots in ident: the amount of '.' characters permitted in an ident
         * reply before the user is rejected.
         */
        dots_in_ident=2;

        /* dot in ipv6: ircd-hybrid-6.0 and earlier will disallow hosts
         * without a '.' in them.  this will add one to the end.  only needed
         * for older servers.
         */
        dot_in_ip6_addr = no;

        /* min nonwildcard: the minimum non wildcard characters in k/d/g lines
         * placed via the server.  klines hand placed are exempt from limits.
         * wildcard chars: '.' '*' '?' '@'
         */
        min_nonwildcard = 3;

        /* max accept: maximum allowed /accept's for +g usermode */
        max_accept = 20;

        /* nick flood: enable the nickflood control code */
        anti_nick_flood = yes;

        /* nick flood: the nick changes allowed in the specified period */
        max_nick_time = 20 seconds;
        max_nick_changes = 5;

        /* anti spam time: the minimum time a user must be connected before
         * custom quit messages are allowed.
         */
        anti_spam_exit_message_time = 5 minutes;

        /* ts delta: the time delta allowed between server clocks before
         * a warning is given, or before the link is dropped.  all servers
         * should run ntpdate/rdate to keep clocks in sync
         */
        ts_warn_delta = 30 seconds;
        ts_max_delta = 5 minutes;

        /* client exit: prepend a users quit message with "Client exit: " */
        client_exit = yes;

        /* kline reason: show the user the reason why they are k/d/glined
         * on exit.  may give away who set k/dline when set via tcm.
         */
        kline_with_reason = yes;

        /* kline connection closed: make the users quit message on channels
         * to be "Connection closed", instead of the kline reason.
         */
        kline_reason = "Connection closed";

        /* non redundant klines: flag and ignore redundant klines */
        non_redundant_klines = yes;

        /* warn no nline: warn opers about servers that try to connect but
         * we dont have a connect {} block for.  Twits with misconfigured
         * servers can get really annoying with this enabled.
         */
        warn_no_nline = yes;

        /* stats o oper only: make stats o (opers) oper only */
        stats_o_oper_only=yes;

        /* stats P oper only: make stats P (ports) oper only */
        stats_P_oper_only=yes;

        /* stats i oper only: make stats i (auth {}) oper only. set to:
         *     yes:    show users no auth blocks, made oper only.
         *     masked: show users first matching auth block
         *     no:     show users all auth blocks.
         */
        stats_i_oper_only=yes;

        /* stats k/K oper only: make stats k/K (klines) oper only.  set to:
         *     yes:    show users no auth blocks, made oper only
         *     masked: show users first matching auth block
         *     no:     show users all auth blocks.
         */
        stats_k_oper_only=yes;

        /* caller id wait: time between notifying a +g user that somebody
         * is messaging them.
         */
        caller_id_wait = 1 minute;

        /* pace wait simple: time between use of less intensive commands
         * (HELP, remote WHOIS, WHOWAS)
         */
        pace_wait_simple = 1 second;

        /* pace wait: time between more intensive commands
         * (ADMIN, INFO, LIST, LUSERS, MOTD, STATS, VERSION)
         */
        pace_wait = 10 seconds;

        /* short motd: send clients a notice telling them to read the motd
         * instead of forcing a motd to clients who may simply ignore it.
         */
        short_motd = no;

        /* ping cookies: require clients to respond exactly to a ping command,
         * can help block certain types of drones and FTP PASV mode spoofing.
         */
        ping_cookie = no;

        /* no oper flood: increase flood limits for opers. */
        no_oper_flood = yes;


        /* glines: enable glines, network wide temp klines
         *
         * EFnet Note: This feature is required for European EFnet servers
         *             and is used by several North American servers.  As
         *             such, it has been left on by default.  If you
         *             do not want your server to participate in G:Lines
         *             you should disable this.
         */
        glines = yes;

        /* gline time: the amount of time a gline will remain before expiring */
        gline_time = 2 day;

        gline_min_cidr = 20;

        /* idletime: the maximum amount of time a user may idle before
         * they are disconnected
         */
        idletime = 0;

        /* maximum links: the maximum amount of servers to connect to for
         * connect blocks without a valid class.
         */
        /*maximum_links = 1;*/


        /* logfiles: the logfiles to use for user connects, /oper uses,
         * and failed /oper.  These files must exist for logging to be used.
         */

        /* max targets: the maximum amount of targets in a single
         * PRIVMSG/NOTICE.  set to 999 NOT 0 for unlimited.
         */
        max_targets = 4;

        /* client flood: maximum number of lines in a clients queue before
         * they are dropped for flooding.
         */
        client_flood = 100;

        /* usermodes configurable: a list of usermodes for the options below
         *
         * +b - bots       - See bot and drone flooding notices
         * +c - cconn      - Client connection/quit notices
         * +d - debug      - See debugging notices
         * +f - full       - See I: line full notices
         * +g - callerid   - Server Side Ignore (for privmsgs etc)
         * +i - invisible  - Not shown in NAMES or WHO unless you share a
         *                   a channel
         * +k - skill      - See server generated KILL messages
         * +l - locops     - See LOCOPS messages
         * +n - nchange    - See client nick changes
         * +r - rej        - See rejected client notices
         * +s - servnotice - See general server notices
         * +u - unauth     - See unauthorized client notices
         * +w - wallop     - See server generated WALLOPS
         * +x - external   - See remote server connection and split notices
         * +y - spy        - See LINKS, STATS, TRACE notices etc.
         * +z - operwall   - See oper generated WALLOPS
         */

        /* oper only umodes: usermodes only opers may set */
        oper_only_umodes = bots, cconn, debug, full, skill, nchange,
                     rej, spy, external, operwall, locops, unauth;

        /* oper umodes: default usermodes opers get when they /oper */
        oper_umodes = locops, servnotice, operwall, wallop, cconn, spy,
                external;

        /* servlink path: path to 'servlink' program used by ircd to handle
         * encrypted/compressed server <-> server links.
         *
         * only define if servlink is not in same directory as ircd itself.
         */
        #servlink_path = "/usr/local/ircd/bin/servlink";

        /* default cipher: default cipher to use for cryptlink when none is
         * specified in connect block.
         */
        #default_cipher_preference = "BF/256";

        /* use egd: if your system does not have *random devices yet you
         * want to use OpenSSL and encrypted links, enable this.  Beware -
         * EGD is *very* CPU intensive when gathering data for its pool
         */
        #use_egd = yes;

        /* egdpool path: path to EGD pool. Not necessary for OpenSSL >= 0.9.7
         * which automatically finds the path.
         */
        #egdpool_path = "/var/run/egd-pool";


        /* compression level: level of compression for compressed links between
         * servers.
         *
         * values are between: 1 (least compression, fastest)
         *                and: 9 (most compression, slowest).
         */
        compression_level = 9;
        
        burst_away = no;
        reject_ban_time = 1 minute;
        reject_after_count = 3;
        reject_duration = 15 minutes;
        kline_delay = 5;
        hide_spoof_ips = yes;
};

modules {
        /* module path: paths to search for modules specified below and
         * in /modload.
         */
        path = "/home/ircd/ircd/modules";
        path = "/home/ircd/ircd/modules/autoload";

        /* module: the name of a module to load on startup/rehash */
        #module = "some_module.so";
};
shared {
        oper = "*@*.efnet.nl", "irc.efnet.nl";
        flags = xline, unxline, kline, unkline, resv, unresv;  
        oper = "*@*", "*";
        flags = tkline, unkline, txline, unxline, tresv, unresv;
};