/* 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
* 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
+ * Send message to all admins network-wide -- m_adminwall.so
+ * /oaccept - add to target's accept list, oper only -- m_oaccepet.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
+ * /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
* /whois notifications (snomask +W) -- sno_whois.so
*/
#loadmodule "extensions/chm_adminonly.so";
-#loadmodule "extensions/chm_operonly.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_adminwall.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_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";
+
/* 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.
*/
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
* 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
privset "admin" {
extends = "global_op";
- privs = oper:admin, oper:die, oper:rehash, oper:spy;
+ privs = oper:admin, oper:die, oper:rehash, oper:spy, oper:override;
};
/* operator {}: defines ircd operators. (OLD O:) */
*/
snomask = "+Zbfkrsuy";
+ /* 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.
*
/* 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";
+
+ /* 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;
+
+ /* owner: Enable/disable channel mode +a, which adds owner,
+ * a channel status above op that has op powers (kick, ban, mode, etc.)
+ * owners can only be kicked/deownered by other owners, and may kick
+ * or deop ops and halfops. 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_owner = 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;
*/
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.
*/
* 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;
+
+ /* kick_no_rejoin_time: the amount of time that a user cannot
+ * rejoin for after being kicked out of a +J channel.
+ */
+ kick_no_rejoin_time = 30 seconds;
};
target = "MemoServ";
};
+alias "HostServ" {
+ target = "HostServ";
+};
+
+alias "BotServ" {
+ target = "BotServ";
+};
+
alias "NS" {
target = "NickServ";
};
target = "MemoServ";
};
+alias "HS" {
+ target = "HostServ";
+};
+
+alias "BS" {
+ target = "BotServ";
+};
+
/* 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";
+
/* servicestring: defines the response for opered services (+S)
* in /whois queries, eg "is a Network Service".
* This is updated on rehash.
* 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.
*/
* +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.
*/
/* oper only umodes: usermodes only opers may set */
/* 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.
+ */
+ expire_override_time = 5 minutes;
};
modules {