-/* doc/reference.conf - charybdis Example configuration file
+/* doc/reference.conf - shadowircd Example configuration file
*
* Copyright (C) 2000-2002 Hybrid Development Team
* Copyright (C) 2002-2005 ircd-ratbox development team
* that matches a user will be used. So place spoofs first, then specials,
* then general access, then restricted.
*
+ * privset {} blocks MUST be specified before anything that uses them. That
+ * means they must be defined before operator {}.
+ *
* Both shell style (#) and C style comments are supported.
*
* Files may be included by either:
/* Extensions:
*
- * Charybdis contains several extensions that are not enabled by default.
- * To use them, uncomment the lines below.
+ * ShadowIRCd contains several extensions that are not enabled by default.
+ * To use them, uncomment the lines below. More information on each extension
+ * can be found in extensions/README
*
+ * Channel mode +-A (admin only) -- chm_adminonly.so
+ * Channel mode +-O (oper only) -- chm_operonly.so
+ * Channel mode +-S (ssl only) -- chm_sslonly.so
* Emulates channel mode +-O (oper only) (+-iI $o) -- chm_operonly_compat.so
* Emulates channel mode +-R (quiet unreg) (+-q $~a) -- chm_quietunreg_compat.so
* Emulates channel mode +-S (ssl only) (+-b $~z) -- chm_sslonly_compat.so
* Server bans (+b $s:mask) -- extb_server.so
* SSL bans (+b $z) -- extb_ssl.so
* HURT system -- hurt.so
- * Host mangling (umode +h) -- ip_cloaking.so
+ * New host mangling (umode +x) -- ip_cloaking.so
* Find channel forwards -- m_findforwards.so
* /identify support -- m_identify.so
+ * /mkpassword support -- m_mkpasswd.so
+ * WEBIRC support -- m_webirc.so
+ * Server-side /CYCLE -- m_cycle.so
+ * /oaccept - add to target's accept list, oper only -- m_oaccept.so
+ * /opme - op self in opless channels, admin only -- m_opme.so
+ * /ojoin - join despite restrictions, admin only -- m_ojoin.so
+ * /omode - force modes in channels, admin only -- m_omode.so
+ * /olist - see all channels in /list, oper only -- m_olist.so
+ * /okick - kick users without having ops, oper only -- m_okick.so
+ * /forcejoin - force join users, admin only -- m_force.so
* Opers cannot be invisible (umode +i) -- no_oper_invis.so
* Far connection notices (snomask +F) -- sno_farconnect.so
* Remote k/d/x line active notices -- sno_globalkline.so
* Remote oper up notices -- sno_globaloper.so
* /whois notifications (snomask +W) -- sno_whois.so
*/
+#loadmodule "extensions/chm_adminonly.so";
+loadmodule "extensions/chm_operonly.so";
+#loadmodule "extensions/chm_sslonly.so";
#loadmodule "extensions/chm_operonly_compat.so";
#loadmodule "extensions/chm_quietunreg_compat.so";
#loadmodule "extensions/chm_sslonly_compat.so";
#loadmodule "extensions/createauthonly.so";
-#loadmodule "extensions/extb_account.so";
-#loadmodule "extensions/extb_canjoin.so";
-#loadmodule "extensions/extb_channel.so";
-#loadmodule "extensions/extb_extgecos.so";
-#loadmodule "extensions/extb_oper.so";
-#loadmodule "extensions/extb_realname.so";
+loadmodule "extensions/extb_account.so";
+loadmodule "extensions/extb_canjoin.so";
+loadmodule "extensions/extb_channel.so";
+loadmodule "extensions/extb_extgecos.so";
+loadmodule "extensions/extb_oper.so";
+loadmodule "extensions/extb_realname.so";
#loadmodule "extensions/extb_server.so";
#loadmodule "extensions/extb_ssl.so";
#loadmodule "extensions/hurt.so";
-#loadmodule "extensions/ip_cloaking.so";
+loadmodule "extensions/ip_cloaking.so";
#loadmodule "extensions/m_findforwards.so";
-#loadmodule "extensions/m_identify.so";
+loadmodule "extensions/m_identify.so";
+loadmodule "extensions/m_mkpasswd.so";
+loadmodule "extensions/m_webirc.so";
+#loadmodule "extensions/m_cycle.so";
+#loadmodule "extensions/m_oaccept.so";
+#loadmodule "extensions/m_opme.so";
+#loadmodule "extensions/m_ojoin.so";
+#loadmodule "extensions/m_omode.so";
+#loadmodule "extensions/m_olist.so";
+#loadmodule "extensions/m_okick.so";
+#loadmodule "extensions/m_force.so";
#loadmodule "extensions/no_oper_invis.so";
-#loadmodule "extensions/sno_farconnect.so";
-#loadmodule "extensions/sno_globalkline.so";
-#loadmodule "extensions/sno_globaloper.so";
+loadmodule "extensions/sno_farconnect.so";
+loadmodule "extensions/sno_globalkline.so";
+loadmodule "extensions/sno_globaloper.so";
#loadmodule "extensions/sno_whois.so";
+
+/* modesets: Modesets are modules that enable various user and channel
+ * modes. When enabled, they enable usermodes and channel modes equivalent
+ * to the named ircd. This is useful for linking to other TS6 IRCds.
+ * If you do not know what this does or do not know if you need it
+ * then you should just load modes/shadowircd.so for full functionality.
+ * Without any modeset loaded, you will only have the modes that are included
+ * in ircd-ratbox. Unloading a modeset while the ircd is running is possible,
+ * but will be confusing for users, as it will leave all existent unloaded
+ * modes in place without users being able to remove them. Said modes will,
+ * however, not function. You should be able to load a module that provides
+ * more modes than your current (say, going from charybdis to shadowircd)
+ * on the fly without any problems. The slight exception to this is unloading
+ * a module that provides quiets (cmode +q). Users affected by quiets will
+ * have to part and rejoin the channel before the quiet will cease affecting
+ * them. In addition, unloaded modes will remain in the IRCd's VERSION reply
+ * until restart. For these reasons, it is highly recommended to restart if you wish
+ * to change modeset.
+ * Modesets currently only affect cmodes.
+ * You should only load one of these at a time.
+ * Modules are listed in order of highest functionality to least,
+ * while no module provides the least functionality of all. */
+
+loadmodule "modes/shadowircd.so";
+#loadmodule "modes/charybdis.so";
+
/* serverinfo {}: Contains information about the server. (OLD M:) */
serverinfo {
/* description: the description of our server. '[' and ']' may not
* be used here for compatibility with older servers.
*/
- description = "charybdis test server";
+ description = "shadowircd test server";
/* network info: the name and description of the network this server
* is on. Shown in the 005 reply and used with serverhiding.
network_name = "MyNet";
network_desc = "This is My Network";
+ /* helpchan/helpurl: These 2 items are shown when a user does
+ * /quote help with no additional parameters to direct them
+ * to a channel/URL where they can get more or network-specific help.
+ * They can be commented out and will not show to users if they are.
+ */
+ helpchan = "#help";
+ helpurl = "http://www.mynet.net/help";
+
/* hub: allow this server to act as a hub and have multiple servers
* connected to it.
*/
/* ssl_dh_params: DH parameters, generate with openssl dhparam -out dh.pem 1024 */
ssl_dh_params = "etc/dh.pem";
- /* ssld_count: number of ssld processes you want to start, if you have a really busy
- * server, using N-1 where N is the number of cpu/cpu cores you have might be useful
+ /* ssld_count: number of ssld processes you want to start, if you
+ * have a really busy server, using N-1 where N is the number of
+ * cpu/cpu cores you have might be useful. A number greater than one
+ * can also be useful in case of bugs in ssld and because ssld needs
+ * two file descriptors per SSL connection.
*/
ssld_count = 1;
*/
number_per_ip_global = 5;
- /* cidr_bitlen: Limits numbers of connections from a subnet size
+ /* cidr_ipv4_bitlen: Limits numbers of connections from a subnet size
+ */
+ cidr_ipv4_bitlen = 24;
+
+ /* cidr_ipv6_bitlen: Limits numbers of connections from a subnet size
* the following example makes the subnet /64 this is useful
* for IPv6 connections in particular
- * Also note that the way charybdis is written if you have
- * compiled support for IPv6, IPv4 cidr bitlens need to be modified
- * Basically to get the approriate length add 96 to the IPv4 length
- * For example for a /24 do 96+24 = 120
- *
*/
- cidr_bitlen = 64;
+ cidr_ipv6_bitlen = 64;
/* number_per_cidr: Number of connections to allow from a subnet of the
- * size given in cidr_bitlen. 4 seems to be a good default to me.
+ * size given in cidr_ipv4_bitlen/cidr_ipv6_bitlen.
+ * 4 seems to be a good default to me.
*/
number_per_cidr = 4;
*/
spoof = "I.still.hate.packets";
+ /* autojoin: Channel (or channels, comma-seperated) to join users
+ * in this auth block to on connect. Note that this won't join
+ * the user through any bans or otherwise restrictive chmodes.
+ */
+ autojoin = "#shadowircd,#test";
+
+ /* autojoin_opers : Channel (or channels, comma-seperated) to join
+ * opers to on oper-up.
+ */
+ autojoin_opers = "#opers,#help";
+
/* Possible flags in auth:
*
* encrypted | password is encrypted with mkpasswd
* USE WITH CAUTION.
* no_tilde (old - flag) | don't prefix ~ to username if no ident
* need_ident (old + flag) | require ident for user in this class
+ * need_ssl | require SSL/TLS for user in this class
* need_sasl | require SASL id for user in this class
*/
flags = kline_exempt, exceed_limit;
class = "opers";
};
+/* Example WEBIRC authblock */
+auth {
+ /* user: webirc@IP.OF.YOUR.WEBIRC . the webirc@ part is required */
+ user = "webirc@192.168.1.1";
+
+ /* password: password the webirc client sends in the WEBIRC command.
+ * You can use a encrypted password here (see above auth block).
+ */
+ password = "<password>";
+
+ /* spoof: This is required to keep it what it is currently if you
+ * want the webirc client to show the users' real host as their
+ * host on IRC.
+ */
+ spoof = "webirc.";
+ class = "users";
+};
+
auth {
/* redirect: the server and port to redirect a user to. A user does
* not have to obey the redirection, the ircd just suggests to them
flags = need_ident;
};
-/* operator {}: defines ircd operators. (OLD O:)
- * charybdis no longer supports local operators, privileges are
- * controlled via flags.
- */
+/* privset{}: defines operator privilege sets. */
+privset "local_op" {
+ /* privs: controls the activities and commands an oper is
+ * allowed to do on the server
+ *
+ * Available options:
+ *
+ * oper:local_kill: allows local users to be /KILL'd
+ * oper:global_kill: allows local and remote users to be /KILL'd
+ * oper:routing: allows remote SQUIT and CONNECT
+ * oper:kline: allows KLINE and DLINE
+ * oper:unkline: allows UNKLINE and UNDLINE
+ * snomask:nick_changes: allows oper to see nickchanges via snomask +n
+ * oper:rehash: allows oper to REHASH config
+ * oper:die: allows DIE and RESTART
+ * oper:admin: gives admin privileges. admins
+ * may (un)load modules and see various
+ * additional information.
+ * oper:hidden_admin: gives admin privileges except
+ * will not have the admin lines in
+ * whois.
+ * oper:xline: allows use of /quote xline/unxline
+ * oper:resv: allows /quote resv/unresv and cmode +LP
+ * oper:operwall: allows the oper to send/receive operwalls
+ * oper:override: allows the oper to set umode +p on themself
+ which grants the ability to have implicit
+ operator access in all channels.
+ * oper:spy: allows 'operspy' features to see through +s
+ * channels etc. see /quote help operspy
+ * oper:hidden: hides the oper from /stats p
+ * oper:remoteban: allows remote kline etc
+ * oper:mass_notice: allows sending wallops and mass notices
+ */
+ privs = oper:local_kill, oper:operwall;
+};
+
+privset "server_bot" {
+ /* extends: a privset to inherit in this privset */
+ extends = "local_op";
+ privs = oper:kline, oper:remoteban, snomask:nick_changes;
+};
+
+privset "global_op" {
+ extends = "local_op";
+ privs = oper:global_kill, oper:routing, oper:kline, oper:unkline, oper:xline,
+ oper:resv, oper:mass_notice, oper:remoteban;
+};
+
+privset "admin" {
+ extends = "global_op";
+ privs = oper:admin, oper:die, oper:rehash, oper:spy, oper:override;
+};
+
+/* operator {}: defines ircd operators. (OLD O:) */
operator "god" {
/* name: the name of the oper must go above */
*/
#rsa_public_key_file = "/usr/local/ircd/etc/oper.pub";
+ /* fingerprint: if specified, the oper's client certificate
+ * fingerprint will be checked against the specified fingerprint
+ * below.
+ */
+ #fingerprint = "c77106576abf7f9f90cca0f63874a60f2e40a64b";
+
/* umodes: the specific umodes this oper gets when they oper.
* If this is specified an oper will not be given oper_umodes
* These are described above oper_only_umodes in general {};
/* snomask: specific server notice mask on oper up.
* If this is specified an oper will not be given oper_snomask.
*/
- snomask = "+Zbfkrsuy";
+ snomask = "+FZbcfkrsuy";
- /* privileges: controls the activities and commands an oper is
- * allowed to do on the server. You may prefix an option with ~ to
- * disable it, ie ~operwall
+ /* vhost: defines the vhost that this oper will get on oper up.
+ * this must be a valid hostmask. If this is specified the oper
+ * will not be given default_operhost.
+ */
+ vhost = "is.an.oper";
+
+ /* swhois: defines an additional line that will be displayed
+ * whenever someone does /whois on the oper in question.
+ */
+ swhois = "is wearing pants.";
+
+ /* operstring: defines a custom operstring for this oper,
+ * which will be shown in whois instead of default_operstring
+ * or default_adminstring.
+ */
+ operstring = "is a lazy IRC Operator";
+
+ /* flags: misc options for the operator. You may prefix an option
+ * with ~ to disable it, e.g. ~encrypted.
*
- * Default flags are operwall, remoteban and encrypted.
+ * Default flags are encrypted.
*
* Available options:
*
* encrypted: the password above is encrypted [DEFAULT]
- * local_kill: allows local users to be /KILL'd
- * global_kill: allows local and remote users to be
- * /KILL'd (OLD 'O' flag)
- * remote: allows remote SQUIT and CONNECT (OLD 'R' flag)
- * kline: allows KLINE and DLINE (OLD 'K' flag)
- * unkline: allows UNKLINE and UNDLINE (OLD 'U' flag)
- * nick_changes: allows oper to see nickchanges (OLD 'N' flag)
- * via snomask +n
- * rehash: allows oper to REHASH config (OLD 'H' flag)
- * die: allows DIE and RESTART (OLD 'D' flag)
- * admin: gives admin privileges. admins
- * may (un)load modules and see the
- * real IPs of servers.
- * hidden_admin: gives admin privileges except
- * will not have the admin lines in
- * stats p and whois.
- * xline: allows use of /quote xline/unxline
- * resv: allows /quote resv/unresv and cmode +LP [DEFAULT]
- * operwall: allows the oper to send/receive operwalls [DEFAULT]
- * oper_spy: allows 'operspy' features to see through +s
- * channels etc. see /quote help operspy
- * hidden_oper: hides the oper from /stats p (OLD UMODE +p)
- * remoteban: allows remote kline etc [DEFAULT]
- * mass_notice: allows sending wallops and mass notices [DEFAULT]
+ * need_ssl: must be using SSL/TLS to oper up
*/
- flags = global_kill, remote, kline, unkline,
- die, rehash, admin, xline, operwall;
+ flags = encrypted;
+
+ /* privset: privileges set to grant */
+ privset = "admin";
};
/* connect {}: controls servers we connect to (OLD C:, N:, H:, L:) */
* resv - allow setting perm/temp resvs
* tresv - allow setting temp resvs
* unresv - allow removing xlines
+ * rehash - allow rehashing
* all - allow oper/server to do all of above.
* locops - allow locops - only used for servers who cluster
- * rehash - allow rehashing
+ * die - allow restarting/dying of servers
+ * modules - allow loading/unloading/reloading of modules
* dline - allow setting perm/temp dlines
* tdline - allow setting temp dlines
* undline - allow removing dlines
/* The channel block contains options pertaining to channels */
channel {
+ /* autochanmodes: Modes that will be set on a unregistered channel
+ * when the first user joins it.
+ */
+ autochanmodes = "nt";
+
+ /* admin_on_channel_create: If set to yes, users joining new channels
+ * will be given +ao instead of just +o. Requires use_admin.
+ */
+ admin_on_channel_create = no;
+
+ /* exemptchanops: Channel modes that any form of channel ops (+aoh)
+ * will be exempt from. Even if the mode is set, it will not apply to the
+ * channel ops if it is listed in this option. Valid modes are cCDTNGK.
+ */
+ exemptchanops = "NT";
+
+ /* halfop: Enable/disable channel mode +h, which adds halfop,
+ * a channel status below op that has op powers (kick, ban, mode, etc.)
+ * halfops can only kick/devoice/etc people who are +v or
+ * do not have any channel status. Disabling this via rehash will
+ * cause things which are rather confusing to occur, it is highly
+ * recommended to restart if you wish to disable this option, though
+ * it may be enabled by rehash with no problems.
+ */
+ use_halfop = yes;
+
+ /* admin: Enable/disable channel mode +a, which adds admin,
+ * a channel status above op that has op powers (kick, ban, mode, etc.)
+ * admins can only be kicked/deadmined by other admins, and may kick
+ * or deop anyone. Disabling this via rehash will cause things which
+ * are rather confusing to occur, it is highly recommended to restart
+ * if you wish to disable this option, though it may be enabled
+ * by rehash with no problems.
+ */
+ use_admin = yes;
+
/* invex: Enable/disable channel mode +I, a n!u@h list of masks
- * that can join a +i channel without an invite.
+ * that can join a +i channel without an invite. Disabling this option
+ * via rehash will leave all previously set invexes hanging around,
+ * though they will not do anything. For this reason, you may want to
+ * restart to disable this option.
*/
use_invex = yes;
/* except: Enable/disable channel mode +e, a n!u@h list of masks
- * that can join a channel through a ban (+b).
+ * that can join a channel through a ban (+b). Disabling this option
+ * via rehash will leave all previously set excepts hanging around,
+ * though they will not do anything. For this reason, you may want to
+ * restart to disable this option.
*/
use_except = yes;
- /* forward: Enable/disable channel mode +f, a channel to forward
- * users to if they can't join because of +i etc.
- */
- use_forward = yes;
-
/* knock: Allows users to request an invite to a channel that
* is locked somehow (+ikl). If the channel is +p or you are banned
* the knock will not be sent.
*/
use_knock = yes;
+ /* local channels: &Channel - a channel that exists only on one server
+ * people on other servers will not be able to see or join local channels
+ * from another server.
+ */
+ use_local_channels = yes;
+
/* knock delay: The amount of time a user must wait between issuing
* the knock command.
*/
* ratbox-services does.
*/
kick_on_split_riding = no;
+
+ /* only ascii channels: disable local users joining channels
+ * containing characters outside the range 33-126 (non-printable
+ * or non-ASCII).
+ */
+ only_ascii_channels = no;
+
+ /* cycle_host_change: Should a user be cycled in the channels
+ * they're in when their host changes. If set to no, this may
+ * cause client desyncs.
+ */
+ cycle_host_change = yes;
+
+ /* host_in_topic: Defines whether or not the topicsetter's
+ * host is shown when users request the TOPIC. If this option
+ * is set to no, it will only show the nick of the topicsetter.
+ */
+ host_in_topic = yes;
+
+ /* resv_forcepart: force any local users to part a channel
+ * when a RESV is issued.
+ */
+ resv_forcepart = yes;
+
+ /* channel target change: restrict how many channels users can
+ * message per unit of time. IRC operators, channel operators and
+ * voiced users are exempt.
+ */
+ channel_target_change = yes;
};
/* These are the blacklist settings.
* You can have multiple combinations of host and rejection reasons.
- * They are used in pairs of one host/rejection reason, or multiple hosts/rejection reason.
+ * They are used in pairs of one host/rejection reason.
*
* These settings should be adequate for most networks, and are (presently)
* required for use on AthemeNet.
* See <http://www.ahbl.org/services.php> for more information.
*/
blacklist {
+ host = "rbl.efnetrbl.org";
+ reject_reason = "${nick}, your IP (${ip}) is listed in EFnet's RBL. For assistance, see http://efnetrbl.org/?i=${ip}";
+
host = "dnsbl.dronebl.org";
reject_reason = "${nick}, your IP (${ip}) is listed in DroneBL. For assistance, see http://dronebl.org/lookup_branded.do?ip=${ip}&network=${network-name}";
target = "MemoServ";
};
+alias "HostServ" {
+ target = "HostServ";
+};
+
+alias "BotServ" {
+ target = "BotServ";
+};
+
+alias "InfoServ" {
+ target = "InfoServ";
+};
+
+alias "GroupServ" {
+ target = "GroupServ";
+};
+
alias "NS" {
target = "NickServ";
};
target = "MemoServ";
};
+alias "HS" {
+ target = "HostServ";
+};
+
+alias "BS" {
+ target = "BotServ";
+};
+
+alias "IS" {
+ target = "InfoServ";
+};
+
+alias "GS" {
+ target = "GroupServ";
+};
+
/* 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.
*/
/* default umodes: umodes to set upon connection
* If you have enabled the ip_cloaking extension, and you wish for
- * incoming clients to be set +h upon connection, add +h to the umode
- * string below.
+ * incoming clients to be cloaked upon connection, +x must be in
+ * the umode string below.
*/
- default_umodes = "+i";
+ default_umodes = "+ix";
/* default operstring: defines the default oper response
* in /whois queries, eg "is an IRC Operator".
*/
default_adminstring = "is a Server Administrator";
+ /* default operhost: defines the default virtual host that
+ * operators will receiving upon opering up. Can be overriden
+ * by the vhost option in individual operator blocks. This
+ * must be a valid hostmask.
+ */
+ default_operhost = "staff.testnet.net";
+
+ /* static quit: Quit message to display for all users (not opers)
+ * on QUIT.
+ */
+ #static_quit = "I like turtles!";
+
/* servicestring: defines the response for opered services (+S)
* in /whois queries, eg "is a Network Service".
* This is updated on rehash.
*/
disable_fake_channels = no;
+ /* hide_channel_below_users: Amount of users a channel must have in it
+ * before it is shown in a standard LIST. This can be overridden by
+ * invoking LIST like: /LIST <3
+ */
+ hide_channel_below_users = 3;
+
/* tkline_expire_notices: give a notice to opers when a tkline
* expires
*/
*/
min_nonwildcard_simple = 3;
- /* max accept: maximum allowed /accept's for +g usermode */
+ /* max accept: maximum allowed /accept's for +gGR usermodes */
max_accept = 20;
/* max monitor: the maximum amount of nicknames a client may have in
max_nick_time = 20 seconds;
max_nick_changes = 5;
- /* anti spam time: the minimum time a user must be connected before
+ /* anti spam time: the minimum time a user must be connected before
* custom quit messages are allowed.
*/
- anti_spam_exit_message_time = 5 minutes;
+ anti_spam_exit_message_time = 5 minutes;
+
+ /* use part messages: This option controls whether users should be
+ * allowed to send PART messages to channels. It should probably
+ * be set to no if static_quit is set.
+ */
+ use_part_messages = yes;
/* ts delta: the time delta allowed between server clocks before
* a warning is given, or before the link is dropped. all servers
/* kline reason: make the users quit message on channels this
* reason instead of the oper's reason.
*/
- kline_reason = "Connection closed";
+ kline_reason = "K-Lined";
/* identify to services via server password
* if auth{} block had no password but the user specified a
*/
warn_no_nline = yes;
+ /* use propagated bans: KLINE, XLINE and RESV set fully propagated bans.
+ * That means the bans are part of the netburst and restarted/split
+ * servers will get them, but they will not apply to 3.2 and older
+ * servers at all.
+ */
+ use_propagated_bans = yes;
+
/* stats e disabled: disable stats e. useful if server ips are
* exempted and you dont want them listing on irc.
*/
* protected. */
operspy_dont_care_user_info = no;
+ /* secret channels in whois: display secret channels in /whois
+ * even if operspy was not used, as long as the oper doing the
+ * whois has the oper:spy priv. this will not send any kind of
+ * server notice. */
+ secret_channels_in_whois = no;
+
/* caller id wait: time between notifying a +g user that somebody
* is messaging them.
*/
*/
connect_timeout = 30 seconds;
+ /* ident timeout: Amount of time (in seconds) that the IRCd will
+ * wait for a user to respond to an ident request.
+ */
+ default_ident_timeout = 5;
+
/* disable auth: disables identd checking */
disable_auth = no;
- /* no oper flood: increase flood limits for opers. */
+ /* no oper flood: increase flood limits for opers.
+ * This option quadruples the user command flood limits, it
+ * DOES NOT affect PRIVMSG/NOTICE usage.
+ */
no_oper_flood = yes;
+ /* true no oper flood: Allow opers to NEVER hit flood limits.
+ * With the above setting, flood limits are set to 4x what they
+ * are for normal users. With this setting, they're removed entirely.
+ * For this setting to work, you need to have no_oper_flood enabled as well.
+ * This option DOES allow PRIVMSG/NOTICE flooding.
+ * ENABLE THIS SETTING WITH CAUTION.
+ */
+ true_no_oper_flood = no;
+
/* REMOVE ME. The following line checks you've been reading. */
havent_read_conf = yes;
* +s - servnotice - See server notices
* +w - wallop - See oper and server generated WALLOPS
* +z - operwall - See operwalls
+ * +C - noctcp - Block CTCPs to user.
+ * +V - noinvite - Block INVITE to user.
+ * +B - bot - Marks as a bot.
+ * +p - override - Implicit operator access in all channels.
+ * This is oper-only and requires the oper:override priv.
*/
/* oper only umodes: usermodes only opers may set */
* provided they have umode +s set */
oper_snomask = "+s";
- /* 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";
-
/* 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
/* reject duration: the amount of time to cache the rejection */
reject_duration = 5 minutes;
- /* max_unknown_ip: maximum number of pending connections to the server
- * that are allowed per IP address
+ /* throttle_duration: Amount of time that throttling will be applied to an IP
+ * address.
+ */
+ throttle_duration = 60;
+
+ /* throttle_count: Number of connections within throttle_duration that it takes
+ * for throttling to take effect */
+ throttle_count = 4;
+
+ /* expire_override_time: User mode +p will be automatically unset
+ * this long after it is set. 0 disables this. Default is 5 minutes.
*/
- max_unknown_ip = 2;
+ expire_override_time = 5 minutes;
};
modules {