/* 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
* Opers cannot be invisible (umode +i) -- no_oper_invis.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
+ * Force join users to channels -- m_force.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/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";
+#loadmodule "extensions/m_force.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.
/* 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
*
* oper:local_kill: allows local users to be /KILL'd
* oper:global_kill: allows local and remote users to be /KILL'd
- * oper:remote: allows remote SQUIT and CONNECT
+ * 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
privset "server_bot" {
/* extends: a privset to inherit in this privset */
extends = "local_op";
- privs = oper:global_kill, oper:kline, oper:remoteban, snomask:nick_changes;
+ privs = oper:kline, oper:remoteban, snomask:nick_changes;
};
privset "global_op" {
*/
#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 {};
/* 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";
+
/* invex: Enable/disable channel mode +I, a n!u@h list of masks
* that can join a +i channel without an invite.
*/
* 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;
};
/* 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.
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".
* 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 (override) will be automatically unset
+ * this long after it is set. 0 disables this (not recommended). Default is
+ * 5 minutes.
+ */
+ expire_override_time = 5 minutes;
};
modules {