]> jfr.im git - solanum.git/blobdiff - doc/reference.conf
remove MONITOR for now pending a complete rewrite
[solanum.git] / doc / reference.conf
index bce1ea33fc0ff8d2a41cf5604600926c8f09baf4..b98e6b052e9a3fec0dfbc36aa90b2e0297f57c8b 100755 (executable)
@@ -70,6 +70,7 @@
  * Remote oper up notices                            -- sno_globaloper.so
  * /whois notifications (snomask +W)                 -- sno_whois.so
  * Oper-override (modehacking only)                  -- override.so
+ * Stop services kills                               -- no_kill_services.so
  */
 #loadmodule "extensions/chm_adminonly.so";
 #loadmodule "extensions/chm_operonly.so";
@@ -97,7 +98,8 @@
 #loadmodule "extensions/sno_globaloper.so";
 #loadmodule "extensions/sno_whois.so";
 #loadmodule "extensions/override.so";
+#loadmodule "extensions/no_kill_services.so";
+
 /* serverinfo {}:  Contains information about the server. (OLD M:) */
 serverinfo {
        /* name: the name of our server */
@@ -120,7 +122,6 @@ serverinfo {
         * is on.  Shown in the 005 reply and used with serverhiding.
         */
        network_name = "MyNet";
-       network_desc = "This is My Network";
 
        /* hub: allow this server to act as a hub and have multiple servers
         * connected to it.  
@@ -130,18 +131,18 @@ serverinfo {
        /* vhost: the IP to bind to when we connect outward to ipv4 servers.
         * This should be an ipv4 IP only.
         */
-       #vhost = "192.169.0.1";
+       #vhost = "192.0.2.6";
 
        /* vhost6: the IP to bind to when we connect outward to ipv6 servers.
         * This should be an ipv6 IP only.
         */
-       #vhost6 = "3ffe:80e8:546::2";
+       #vhost6 = "2001:db7:2::6";
        
        /* ssl_private_key: our ssl private key */
        ssl_private_key = "etc/ssl.key";
 
        /* ssl_cert: certificate for our ssl server */
-       ssl_cert = "etc/ssl.cert";
+       ssl_cert = "etc/ssl.pem";
 
        /* ssl_dh_params: DH parameters, generate with openssl dhparam -out dh.pem 1024 */
        ssl_dh_params = "etc/dh.pem";
@@ -272,7 +273,13 @@ class "server" {
         */
        connectfreq = 5 minutes;
 
-       /* max number: the amount of servers to autoconnect to */
+       /* max number: the amount of servers to autoconnect to.  if the number
+        * of servers in the class is or exceeds this, no more servers in the
+        * class are autoconnected.  oper initiated connects are unaffected.
+        * this should usually be set to either 0 or 1.  (autoconnecting from
+        * hubs to leaves may cause leaves to function as hubs by having
+        * multiple servers connected to them.)
+        */
        max_number = 1;
 
        /* sendq: servers need a higher sendq as they are sent more data */
@@ -281,6 +288,13 @@ class "server" {
 
 /* listen {}: contain information about the ports ircd listens on (OLD P:) */
 listen {
+       /* defer_accept: wait for clients to send IRC handshake data before
+        * accepting them.  if you intend to use software which depends on the
+        * server replying first, such as BOPM, you should disable this feature.
+        * otherwise, you probably want to leave it on.
+        */
+       defer_accept = yes;
+
        /* port: the specific port to listen on.  if no host is specified
         * before, it will listen on all available IPs.
         *
@@ -299,11 +313,11 @@ listen {
        /* host: set a specific IP/host the ports after the line will listen 
         * on.  This may be ipv4 or ipv6.
         */
-       host = "1.2.3.4";
+       host = "192.0.2.6";
        port = 7000, 7001;
        sslport = 9000, 9001;
 
-       host = "3ffe:1234:a:b:c::d";
+       host = "2001:db8:2::6";
        port = 7002;
        sslport = 9002;
 };
@@ -316,8 +330,14 @@ auth {
         * prepending a 0 if it starts with a colon) and can also use CIDR
         * masks.
         */
-       user = "*@172.16.0.0/12";
-       user = "*test@123D:B567:*";
+       user = "*@198.51.100.0/24";
+       user = "*test@2001:db8:1:*";
+
+       /* auth_user: This allows specifying a username:password instead of
+        * just a password in PASS, so that a fixed user@host is not
+        * necessary for a specific auth{} block.
+        */
+       #auth_user = "SomeUser";
 
        /* password: an optional password that is required to use this block.
         * By default this is not encrypted, specify the flag "encrypted" in
@@ -361,10 +381,10 @@ auth {
         * not have to obey the redirection, the ircd just suggests to them
         * an alternative server.
         */
-       redirserv = "irc.some.domain";
+       redirserv = "irc.example.net";
        redirport = 6667;
        
-       user = "*.some.domain";
+       user = "*.example.com";
 
        /* class: a class is required even though it is not used */
        class = "users";
@@ -373,8 +393,6 @@ auth {
 auth {
        user = "*@*";
        class = "users";
-       
-       flags = need_ident;
 };
 
 /* privset{}: defines operator privilege sets. */
@@ -490,12 +508,12 @@ connect "irc.uplink.com" {
        /* host: the host or IP to connect to.  If a hostname is used it
         * must match the reverse dns of the server.
         */
-       host = "192.168.0.1";
+       host = "203.0.113.3";
 
        /* vhost: the host or IP to bind to for this connection.  If this
         * is not specified, the default vhost (in serverinfo {}) is used.
         */
-       #vhost = "192.168.0.50";
+       #vhost = "192.0.2.131";
 
        /* passwords: the passwords we send (OLD C:) and accept (OLD N:).
         * The remote server will have these passwords reversed.
@@ -540,7 +558,7 @@ connect "ipv6.some.server" {
         * if applicable.  Addresses starting with a colon get an extra
         * zero prepended, for example: 0::1
         */
-       host = "3ffd:dead:beef::1";
+       host = "2001:db8:3::8";
        send_password = "password";
        accept_password = "password";
        port = 6666;
@@ -556,7 +574,7 @@ connect "ssl.uplink.com" {
        /* Example of ssl server-to-server connection, ssl flag doesn't need
         * compressed flag, 'cause it uses own compression
         */
-       host = "192.168.0.1";
+       host = "203.0.113.129";
        send_password = "password";
        accept_password = "anotherpassword";
        port = 9999;
@@ -665,11 +683,10 @@ shared {
 
 /* exempt {}: IPs that are exempt from Dlines and rejectcache. (OLD d:) */
 exempt {
-       ip = "192.168.0.0/16";
+       ip = "192.0.2.0/24";
 
        /* these may be stacked */
        ip = "127.0.0.1";
-       ip = "10.0.0.0/8";
 };
 
 /* The channel block contains options pertaining to channels */
@@ -824,25 +841,24 @@ serverhide {
  * IPv4 is currently the default as few blacklists support IPv6 operation
  * as of this writing.
  *
- * Note: AHBL (the providers of the below *.ahbl.org BLs) request that they be
- * contacted, via email, at admins@2mbit.com before using these BLs.
- * See <http://www.ahbl.org/services.php> for more information.
+ * As of charybdis 3.5, a matches parameter is allowed; if omitted, any result
+ * is considered a match. If included, a comma-separated list of *quoted*
+ * strings is allowed to match queries. They may be of the format "0" to "255"
+ * to match the final octet (e.g. 127.0.0.1) or "127.x.y.z" to explicitly match
+ * an A record. The blacklist is only applied if it matches anything in the
+ * list. You may freely mix full IP's and final octets.
+ * 
+ * Consult your blacklist provider for the meaning of these parameters; they
+ * are usually used to denote different ban types.
  */
 blacklist {
        host = "rbl.efnetrbl.org";
        type = ipv4;
        reject_reason = "${nick}, your IP (${ip}) is listed in EFnet's RBL. For assistance, see http://efnetrbl.org/?i=${ip}";
 
-#      host = "ircbl.ahbl.org";
-#      type = ipv4;
-#      reject_reason = "${nick}, your IP (${ip}) is listed in ${dnsbl-host} for having an open proxy. In order to protect ${network-name} from abuse, we are not allowing connections with open proxies to connect.";
-#
-#      host = "tor.ahbl.org";
-#      type = ipv4;
-#      reject_reason = "${nick}, your IP (${ip}) is listed as a TOR exit node. In order to protect ${network-name} from tor-based abuse, we are not allowing TOR exit nodes to connect to our network.";
-#
-       /* Example of a blacklist that supports both IPv4 and IPv6 */
+       /* Example of a blacklist that supports both IPv4 and IPv6 and using matches */
 #      host = "foobl.blacklist.invalid";
+#      matches = "4", "6", "127.0.0.10";
 #      type = ipv4, ipv6;
 #      reject_reason = "${nick}, your IP (${ip}) is listed in ${dnsbl-host} for some reason. In order to protect ${network-name} from abuse, we are not allowing connections listed in ${dnsbl-host} to connect";
 };
@@ -910,8 +926,6 @@ general {
         * If disabled, local opers can see them.
         * Dynamic spoofs (e.g. set by services) are unaffected by this;
         * any oper (local and remote) can see the real ip.
-        * Warning: for whowas, this is checked when the client exits,
-        * not when the IP is shown.
         */
        hide_spoof_ips = yes;
 
@@ -940,6 +954,14 @@ general {
         */
        servicestring = "is a Network Service";
 
+       /*
+        * Nick of the network's SASL agent. Used to check whether services are here,
+        * SASL credentials are only sent to its server. Needs to be a service.
+        *
+        * Defaults to SaslServ if unspecified.
+        */
+       sasl_service = "SaslServ";
+
        /* disable fake channels: disable local users joining fake versions
         * of channels, eg #foo^B^B.  Disables bold, mirc colour, reverse,
         * underline and hard space.  (ASCII 2, 3, 22, 31, 160 respectively).
@@ -982,11 +1004,6 @@ general {
        /* max accept: maximum allowed /accept's for +g usermode */
        max_accept = 20;
 
-       /* max monitor: the maximum amount of nicknames a client may have in
-        * their monitor (server-side notify) list.
-        */
-       max_monitor = 100;
-
        /* nick flood: enable the nickflood control code */
        anti_nick_flood = yes;
 
@@ -1006,7 +1023,7 @@ general {
        ts_warn_delta = 30 seconds;
        ts_max_delta = 5 minutes;
 
-       /* client exit: prepend a users quit message with "Client exit: " */
+       /* client exit: prepend a user's quit message with "Quit: " */
        client_exit = yes;
 
        /* collision fnc: change user's nick to their UID instead of
@@ -1017,6 +1034,13 @@ general {
         */
        collision_fnc = yes;
 
+       /* resv fnc: change a user's nick to a nick they have recently used
+        * (or their UID, if no such nick can be found) when a resv matching
+        * them is set by services. Only enable this if all servers on the
+        * network allow remote nicks to start with a digit.
+        */
+       resv_fnc = yes;
+
        /* global snotices: send out certain snotices (most +b, +f, +y,
         * some +s) to other servers via ENCAP SNOTE. Received SNOTEs are
         * displayed unconditionally.
@@ -1195,18 +1219,6 @@ general {
         * provided they have umode +s set */
        oper_snomask = "+s";
 
-       /* 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.  
         *
@@ -1271,6 +1283,12 @@ general {
         * you're doing.
         */
        max_ratelimit_tokens = 30;
+
+       /* away_interval: the minimum interval between AWAY commands. One
+        * additional AWAY command is allowed, and only marking as away
+        * counts.
+        */
+       away_interval = 30;
 };
 
 modules {