ViewVC Help
View File | Revision Log | Show Annotations | View Changeset | Root Listing
root/svn/ircd-hybrid/branches/8.2.x/doc/reference.conf
(Generate patch)

Comparing:
ircd-hybrid-7.2/etc/example.conf.in (file contents), Revision 959 by michael, Fri Jul 31 14:42:09 2009 UTC vs.
ircd-hybrid/branches/8.2.x/doc/reference.conf (file contents), Revision 7667 by michael, Wed Jul 20 17:09:36 2016 UTC

# Line 1 | Line 1
1 < /* doc/example.conf - ircd-hybrid-7 Example configuration file
2 < * Copyright (C) 2000-2009 Hybrid Development Team
1 > /*
2 > * This is an example configuration file for ircd-hybrid
3   *
4 < * Written by ejb, wcampbel, db, leeh and others
5 < * Other example configurations can be found in the source dir under
6 < * etc/.
4 > * Copyright (c) 1997-2016 ircd-hybrid development team
5   *
6   * $Id$
7   */
8  
9 < /* IMPORTANT NOTES:
9 > /*
10 > * ########################################################################
11 > * IMPORTANT NOTE:
12   *
13 < * auth {} blocks MUST be specified in order of precedence.  The first one
14 < * that matches a user will be used.  So place spoofs first, then specials,
13 > * auth {} blocks MUST be specified in order of precedence. The first one
14 > * that matches a user will be used. So place spoofs first, then specials,
15   * then general access.
16 + * ########################################################################
17   *
18   * Shell style (#), C++ style (//) and C style comments are supported.
19   *
# Line 22 | Line 23
23   *
24   * Times/durations are written as:
25   *        12 hours 30 minutes 1 second
26 < *        
26 > *
27   * Valid units of time:
28 < *        month, week, day, hour, minute, second
28 > *        year, month, week, day, hour, minute, second
29   *
30   * Valid units of size:
31   *        megabyte/mbyte/mb, kilobyte/kbyte/kb, byte
32   *
33 < * Sizes and times may be singular or plural.  
33 < */
34 <
35 < /* EFNET NOTE:
36 < *
37 < * This config file is NOT suitable for EFNet.  EFNet admins should use
38 < * example.efnet.conf
33 > * Sizes and times may be singular or plural.
34   */
35 <
35 >
36 >
37   /*
38 < * serverinfo {}:  contains information about the server. (OLD M:)
38 > * serverinfo {}:  contains information about the server
39   */
40   serverinfo {
41          /*
42 <         * name: the name of our server.  This cannot be changed at runtime.
42 >         * name: the name of this server. This cannot be changed at runtime.
43           */
44 <        name = "hades.arpa";
44 >        name = "server.example.net";
45  
46          /*
47 <         * sid: a server's unique ID.  This is three characters long and must
48 <         * be in the form [0-9][A-Z0-9][A-Z0-9].  The first character must be
47 >         * sid: a server's unique ID. This is three characters long and must
48 >         * be in the form [0-9][A-Z0-9][A-Z0-9]. The first character must be
49           * a digit, followed by 2 alpha-numerical letters.
50 <         * NOTE: The letters must be capitalized.  This cannot be changed at runtime.
50 >         *
51 >         * NOTE: The letters must be capitalized. This cannot be changed at runtime.
52 >         *
53 >         * A sid is automatically generated at runtime, if you want to configure
54 >         * a specific sid, uncomment the following line.
55           */
56 <        sid = "_CHANGE_ME_";
56 > #       sid = "0HY";
57  
58          /*
59 <         * description: the description of the server.  '[' and ']' may not
60 <         * be used here for compatibility with older servers.
59 >         * description: the description of the server.
60           */
61 <        description = "hybrid-7 test server";
61 >        description = "ircd-hybrid test server";
62  
63          /*
64 <         * network info: the name and description of the network this server
65 <         * is on.  Shown in the 005 reply and used with serverhiding.
64 >         * network_name, network_desc: the name and description of the network this
65 >         * server is on. Shown in the 005 reply and used with serverhiding.
66           */
67          network_name = "MyNet";
68          network_desc = "This is My Network";
# Line 75 | Line 74 | serverinfo {
74          hub = no;
75  
76          /*
77 <         * vhost: the IP to bind to when we connect outward to ipv4 servers.
78 <         * This should be an ipv4 IP only, or "*" for INADDR_ANY.
77 >         * vhost: the IP address to bind to when connecting outward to IPv4 servers.
78 >         * This should be an IPv4 address, or "*" for INADDR_ANY.
79 >         */
80 > #       vhost = "192.0.2.1";
81 >
82 >        /*
83 >         * vhost6: the IP address to bind to when connecting outward to IPv6 servers.
84 >         * This should be an IPv6 address, or "*" for in6addr_any.
85 >         */
86 > #       vhost6 = "2001:DB8::1";
87 >
88 >        /*
89 >         * default_max_clients: the default maximum number of clients allowed
90 >         * to connect. This can be changed from within IRC via /QUOTE SET MAX.
91 >         */
92 >        default_max_clients = 512;
93 >
94 >        /*
95 >         * max_nick_length: only applies to local clients. Must be in the
96 >         * range of 9 to 30. Default is 9 if nothing else is specified.
97 >         */
98 >        max_nick_length = 9;
99 >
100 >        /*
101 >         * max_topic_length: only applies to topics set by local clients.
102 >         * Must be in the range of 80 to 300. Default is 80 if nothing
103 >         * else is specified.
104 >         */
105 >        max_topic_length = 160;
106 >
107 >        /*
108 >         * libgeoip_database_options: used to control the libGeoIP database handling.
109 >         *
110 >         * Available options:
111 >         *
112 >         * standard     - Read database from file system. This uses the least memory.
113 >         * memory_cache - Load database into memory. Provides faster performance but
114 >         *                uses more memory.
115 >         * mmap_cache   - Load database into mmap shared memory.
116 >         * check_cache  - Check for updated database. If database has been updated,
117 >         *                reload file handle and/or memory cache.
118           */
119 <        #vhost = "192.169.0.1";
119 > #       libgeoip_database_options = memory_cache, check_cache;
120  
121          /*
122 <         * vhost6: the IP to bind to when we connect outward to ipv6 servers.
85 <         * This should be an ipv6 IP only, or "*" for INADDR_ANY.
122 >         * libgeoip_ipv4_database_file: the path to the GeoIP IPv4 database file.
123           */
124 <        #vhost6 = "3ffe:80e8:546::2";
124 > #       libgeoip_ipv4_database_file = "etc/GeoIP.dat";
125  
126 <        /* max_clients: the maximum number of clients allowed to connect */
127 <        max_clients = 512;
126 >        /*
127 >         * libgeoip_ipv6_database_file: the path to the GeoIP IPv6 database file.
128 >         */
129 > #       libgeoip_ipv6_database_file = "etc/GeoIPv6.dat";
130  
131          /*
132 <         * rsa_private_key_file: the path to the file containing our
94 <         * rsa key for cryptlink.
132 >         * rsa_private_key_file: the path to the file containing the RSA key.
133           *
134 <         * Example command to store a 2048 bit RSA keypair in
135 <         * rsa.key, and the public key in rsa.pub:
136 <         *
137 <         *      openssl genrsa -out rsa.key 2048
138 <         *      openssl rsa -in rsa.key -pubout -out rsa.pub
139 <         *      chown <ircd-user>.<ircd.group> rsa.key rsa.pub
140 <         *      chmod 0600 rsa.key
141 <         *      chmod 0644 rsa.pub
134 >         * Example commands to store a 2048 bit RSA key in rsa.key:
135 >         *
136 >         * OpenSSL/LibreSSL:
137 >         *    openssl genrsa -out rsa.key 2048
138 >         *
139 >         * GnuTLS:
140 >         *    certtool --generate-privkey --sec-param=medium --outfile rsa.key
141 >         *
142 >         * Once the RSA key is generated, it is highly recommended to lock down
143 >         * its file permissions:
144 >         *
145 >         *    chown <ircd-user>.<ircd.group> rsa.key
146 >         *    chmod 0600 rsa.key
147           */
148 <        #rsa_private_key_file = "/usr/local/ircd/etc/rsa.key";
148 > #       rsa_private_key_file = "etc/rsa.key";
149  
150          /*
151           * ssl_certificate_file: the path to the file containing our
152 <         * ssl certificate
110 <         * for encrypted client connection.
152 >         * SSL certificate for encrypted client connection.
153           *
154           * This assumes your private RSA key is stored in rsa.key. You
155 <         * MUST have an RSA key in order to generate the certificate
114 <         *
115 <         *      openssl req -new -days 365 -x509 -key rsa.key -out cert.pem
155 >         * MUST have an RSA key in order to generate the certificate.
156           *
157 <         * See http://www.openssl.org/docs/HOWTO/certificates.txt
157 >         * Example command:
158           *
159 <         * Please use the following values when generating the cert
159 >         * OpenSSL/LibreSSL:
160 >         *    openssl req -new -days 365 -x509 -key rsa.key -out cert.pem
161           *
162 <         *      Organization Name: Network Name
163 <         *      Organization Unit Name: changme.someirc.net
123 <         *      Common Name: irc.someirc.net
124 <         *      E-mail: you@domain.com
162 >         * GnuTLS:
163 >         *    certtool --generate-self-signed --load-privkey rsa.key --outfile cert.pem
164           */
165 <        #ssl_certificate_file = "/usr/local/ircd/etc/cert.pem";
127 < };
165 > #       ssl_certificate_file = "etc/cert.pem";
166  
167 < /*
168 < * admin {}:  contains admin information about the server. (OLD A:)
169 < */
170 < admin {
171 <        name = "Smurf target";
172 <        description = "Main Server Administrator";
173 <        email = "<syn@packets.r.us>";
174 < };
167 >        /*
168 >         * ssl_dh_param_file: the path to the PEM encoded Diffie-Hellman
169 >         * parameter file. DH parameters are required when using
170 >         * ciphers with EDH (ephemeral Diffie-Hellman) key exchange.
171 >         *
172 >         * A DH parameter file can be created by running:
173 >         *
174 >         * OpenSSL/LibreSSL:
175 >         *    openssl dhparam -out dhparam.pem 2048
176 >         *
177 >         * GnuTLS:
178 >         *    certtool --generate-dh-params --sec-param=medium --outfile dhparam.pem
179 >         */
180 > #       ssl_dh_param_file = "etc/dhparam.pem";
181  
182 < /*
183 < * log {}:  contains information about logfiles.
184 < */
185 < log {
186 <        /* Do you want to enable logging to ircd.log? */
187 <        use_logging = yes;
182 >        /*
183 >         * ssl_dh_elliptic_curve: defines the curve to use for the
184 >         * Elliptic Curve Diffie-Hellman (ECDH) algorithm.
185 >         * Default is ANSI X9.62 prime256v1/secp256r1 if nothing else is specified.
186 >         *
187 >         * A list of curves supported by OpenSSL can be obtained by running:
188 >         *
189 >         *    openssl ecparam -list_curves
190 >         *
191 >         * This directive currently doesn't do anything with GnuTLS support.
192 >         */
193 > #       ssl_dh_elliptic_curve = "secp521r1";
194  
195          /*
196 <         * logfiles: the logfiles to use for user connects, /oper uses,
197 <         * and failed /oper.  These files must exist for logging to be used.
196 >         * ssl_cipher_list: list of ciphers to support on _this_ server.
197 >         * Can be used to enforce specific ciphers for incoming SSL/TLS
198 >         * connections. If a client (which also includes incoming server
199 >         * connections) is not capable of using any of the ciphers listed
200 >         * here, the connection will simply be rejected.
201 >         *
202 >         * A list of supported ciphers can be obtained by running:
203 >         *
204 >         * OpenSSL/LibreSSL:
205 >         *    openssl ciphers -tls1 -v
206 >         *
207 >         * GnuTLS:
208 >         *    gnutls-cli --list
209 >         *
210 >         * Multiple ciphers are separated by colons. The order of preference is
211 >         * from left to right.
212           */
213 <        fname_userlog = "logs/userlog";
150 <        fname_operlog = "logs/operlog";
151 <        fname_killlog = "logs/kill";
152 <        fname_klinelog = "logs/kline";
153 <        fname_glinelog = "logs/gline";
213 > #       ssl_cipher_list = "ECDHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES256-SHA:AES256-SHA";
214  
215          /*
216 <         * log_level: the amount of detail to log in ircd.log.  The
217 <         * higher, the more information is logged.  May be changed
218 <         * once the server is running via /quote SET LOG.  Either:
219 <         * L_CRIT, L_ERROR, L_WARN, L_NOTICE, L_TRACE, L_INFO or L_DEBUG
216 >         * ssl_message_digest_algorithm: defines which cryptographic hash function
217 >         * to use for generating fingerprint hashes of X.509 certificates.
218 >         * Default is SHA-256 if nothing else is specified.
219 >         *
220 >         * A list of supported message digest algorithms can be obtained by running:
221 >         *
222 >         * OpenSSL/LibreSSL:
223 >         *    openssl list-message-digest-algorithms
224 >         *
225 >         * GnuTLS:
226 >         *    gnutls-cli --list
227           */
228 <        log_level = L_INFO;
228 > #       ssl_message_digest_algorithm = "sha256";
229 > };
230 >
231 > /*
232 > * admin {}:  contains administrative information about the server
233 > */
234 > admin {
235 >        name = "Smurf target";
236 >        description = "Main Server Administrator";
237 >        email = "<admin@server.example.net>";
238   };
239  
240   /*
241 < * class {}:  contains information about classes for users (OLD Y:)
241 > * class {}:  contains information about classes for users
242   */
243   class {
244 <        /* name: the name of the class.  classes are text now */
244 >        /* name: the name of the class. */
245          name = "users";
246  
247          /*
# Line 176 | Line 252 | class {
252  
253          /*
254           * number_per_ip: how many local users are allowed to connect
255 <         * from one IP  (optional)
255 >         * from a single IP address (optional)
256           */
257          number_per_ip = 2;
258  
259          /*
260           * max_local: how many local users are allowed to connect
261 <         * from one ident@host  (optional)
261 >         * from a single ident@host (optional)
262           */
263          max_local = 2;
264  
265          /*
266 <         * max_global: network-wide limit of users per ident@host  (optional)
266 >         * max_global: network-wide limit of users per ident@host (optional)
267           */
268          max_global = 10;
269  
# Line 197 | Line 273 | class {
273          max_number = 100;
274  
275          /*
276 <         * the following lines are optional and allow you to define
277 <         * how many users can connect from one /NN subnet
276 >         * The following lines are optional and allow you to define
277 >         * how many users can connect from one /NN subnet.
278           */
279          cidr_bitlen_ipv4 = 24;
280          cidr_bitlen_ipv6 = 120;
281          number_per_cidr = 16;
282  
283          /*
284 <         * sendq: the amount of data allowed in a clients queue before
284 >         * sendq: the amount of data allowed in a client's send queue before
285           * they are dropped.
286           */
287          sendq = 100 kbytes;
288 +
289 +        /*
290 +         * recvq: the amount of data allowed in a client's receive queue before
291 +         * they are dropped for flooding. Defaults to 2560 if the chosen value
292 +         * isn't within the range of 512 to 8000.
293 +         */
294 +        recvq = 2560 bytes;
295   };
296  
297   class {
# Line 216 | Line 299 | class {
299          ping_time = 90 seconds;
300          number_per_ip = 10;
301          max_number = 100;
302 <        sendq = 100kbytes;
302 >        sendq = 100 kbytes;
303 >
304 >        /*
305 >         * max_channels: maximum number of channels users in this class can join.
306 >         */
307 >        max_channels = 60;
308 >
309 >        /*
310 >         * min_idle: minimum idle time that is shown in WHOIS.
311 >         */
312 >        min_idle = 3 hours;
313 >
314 >        /*
315 >         * max_idle: maximum idle time that is shown in WHOIS.
316 >         */
317 >        max_idle = 8 hours;
318 >
319 >        /*
320 >         * flags:
321 >         *
322 >         * random_idle          - a fake idle time is set randomly between
323 >         *                        min_idle and max_idle
324 >         * hide_idle_from_opers - the fake idle time will also be shown to operators
325 >         */
326 >        flags = random_idle, hide_idle_from_opers;
327   };
328  
329   class {
# Line 224 | Line 331 | class {
331          ping_time = 90 seconds;
332  
333          /*
334 <         * ping_warning: how fast a server must reply to a PING before
228 <         * a warning to opers is generated.
229 <         */
230 <        ping_warning = 15 seconds;
231 <
232 <        /*
233 <         * connectfreq: only used in server classes.  Specifies the delay
334 >         * connectfreq: only used in server classes. Specifies the delay
335           * between autoconnecting to servers.
336           */
337          connectfreq = 5 minutes;
338  
339 <        /* max number: the amount of servers to autoconnect to */
339 >        /* max number: the number of servers to autoconnect to. */
340          max_number = 1;
341  
342 <        /* sendq: servers need a higher sendq as they send more data */
342 >        /* sendq: servers need a higher sendq as they send more data. */
343          sendq = 2 megabytes;
344   };
345  
346   /*
347 < * listen {}:  contains information about the ports ircd listens on (OLD P:)
347 > * motd {}: Allows the display of a different MOTD to a client
348 > * depending on its origin. Applies to local users only.
349 > */
350 > motd {
351 >        /*
352 >         * mask: multiple mask entries are permitted. Mask can either be
353 >         * a class name or a hostname. CIDR is supported.
354 >         */
355 >        mask = "*.at";
356 >        mask = "*.de";
357 >        mask = "*.ch";
358 >
359 >        /*
360 >         * file: path to the motd file.
361 >         */
362 >        file = "etc/german.motd";
363 > };
364 >
365 > /*
366 > * listen {}:  contains information about the ports ircd listens on
367   */
368   listen {
369          /*
370 <         * port: the specific port to listen on.  If no host is specified
371 <         * before, it will listen on all available IPs.
370 >         * port: the port to listen on. If no host is specified earlier in the
371 >         * listen {} block, it will listen on all available IP addresses.
372           *
373 <         * Ports are separated via a comma, a range may be specified using ".."
373 >         * Ports are separated by commas; a range may be specified using ".."
374           */
375 <        
376 <        /* port: listen on all available IPs, ports 6665 to 6669 */
375 >
376 >        /* port: listen on all available IP addresses, ports 6665 to 6669. */
377          port = 6665 .. 6669;
378  
379          /*
380 <         * Listen on 192.168.0.1/6697 with ssl enabled and hidden from STATS P
380 >         * Listen on 192.0.2.2/6697 with SSL enabled and hidden from STATS P
381           * unless you are an administrator.
382           *
383 <         * NOTE: The "flags" directive has to come before "port".  Always!
383 >         * NOTE: The "flags" directive always has to come before "port".
384           *
385           * Currently available flags are:
386           *
387 <         *  ssl    - Port is for SSL client connections only
387 >         *  ssl    - Port may only accept TLS/SSL connections
388           *  server - Only server connections are permitted
389 <         *  hidden - Port is hidden from /stats P
389 >         *  hidden - Port is hidden from /stats P, unless you're an admin
390           */
391          flags = hidden, ssl;
392 <        host = "192.168.0.1";
392 >        host = "192.0.2.2";
393          port = 6697;
394  
395          /*
396 <         * host: set a specific IP/host the ports after the line will listen
397 <         * on.  This may be ipv4 or ipv6.
396 >         * host: set a specific IP address to listen on using the
397 >         * subsequent port definitions. This may be IPv4 or IPv6.
398           */
399 <        host = "1.2.3.4";
399 >        host = "192.0.2.3";
400          port = 7000, 7001;
401  
402 <        host = "3ffe:1234:a:b:c::d";
402 >        host = "2001:DB8::2";
403          port = 7002;
404   };
405  
406   /*
407 < * auth {}:  allow users to connect to the ircd (OLD I:)
407 > * auth {}:  allow users to connect to the ircd
408   */
409   auth {
410          /*
411 <         * user: the user@host allowed to connect.  Multiple IPv4/IPv6 user
412 <         * lines are permitted per auth block.
411 >         * user: the user@host allowed to connect. Multiple user
412 >         * lines are permitted within each auth {} block.
413           */
414 <        user = "*@172.16.0.0/12";
415 <        user = "*test@123D:B567:*";
414 >        user = "*@192.0.2.0/24";
415 >        user = "*test@2001:DB8:*";
416  
417 <        /* password: an optional password that is required to use this block */
417 >        /* password: an optional password that is required to use this block. */
418          password = "letmein";
419  
420          /*
421 <         * encrypted: controls whether the auth password above has been
422 <         * encrypted.
421 >         * encrypted: indicates whether the auth password above has been
422 >         * encrypted. Default is 'no' if nothing else is specified.
423           */
424          encrypted = yes;
425  
426          /*
427 <         * spoof: fake the users host to this.  This is free-form,
428 <         * just do everyone a favor and don't abuse it. ('=' prefix on /stats I)
427 >         * spoof: fake the user's host to this. This is free-form; just do
428 >         * everyone a favor and don't abuse it. ('=' prefix on /stats I)
429           */
430          spoof = "I.still.hate.packets";
431  
432 <        /* class: the class the user is placed in */
432 >        /* class: the class the user is placed in. */
433          class = "opers";
434  
435          /*
436 <         * need_password: don't allow users who haven't supplied the correct
437 <         *                password to connect using another auth{} block
438 <         *                ('&' prefix on /stats I if disabled)
439 <         * need_ident:    require the user to have identd to connect ('+' prefix on /stats I)
440 <         * spoof_notice:  enable spoofing notification to admins
441 <         * exceed_limit:  allow a user to exceed class limits ('>' prefix on /stats I)
442 <         * kline_exempt:  exempt this user from k/glines ('^' prefix on /stats I)
443 <         * gline_exempt:  exempt this user from glines ('_' prefix on /stats I)
444 <         * resv_exempt:   exempt this user from resvs ('$' prefix on /stats I)
445 <         * no_tilde:      remove ~ from a user with no ident ('-' prefix on /stats I)
446 <         * can_flood:     allow this user to exceed flood limits ('|' prefix on /stats I)
447 <         * can_idle:      exempt this user from idle restrictions ('<' prefix on /stats I)
436 >         * need_password - don't allow users who haven't supplied the correct  | ('&' prefix on /stats I if disabled)
437 >         *                 password to connect using another auth {} block
438 >         * need_ident    - require the user to have identd to connect          | ('+' prefix on /stats I)
439 >         * spoof_notice  - enable spoofing notification to admins
440 >         * exceed_limit  - allow a user to exceed class limits                 | ('>' prefix on /stats I)
441 >         * kline_exempt  - exempt this user from k-lines                       | ('^' prefix on /stats I)
442 >         * xline_exempt  - exempt this user from x-lines                       | ('!' prefix on /stats I)
443 >         * resv_exempt   - exempt this user from resvs                         | ('$' prefix on /stats I)
444 >         * no_tilde      - remove ~ from a user with no ident                  | ('-' prefix on /stats I)
445 >         * can_flood     - allow this user to exceed flood limits              | ('|' prefix on /stats I)
446 >         * webirc        - enables WEBIRC authentication for web-based         | ('<' prefix on /stats I)
447 >         *                 clients such as Mibbit
448           */
449          flags = need_password, spoof_notice, exceed_limit, kline_exempt,
450 <                gline_exempt, resv_exempt, no_tilde, can_flood, can_idle;
450 >                xline_exempt, resv_exempt, no_tilde, can_flood;
451   };
452  
453   auth {
454          /*
455 <         * redirect: the server and port to redirect a user to.  A user does
456 <         * not have to obey the redirection, the ircd just suggests an alternative
457 <         * server for them.
455 >         * redirserv, redirport: the server and port to redirect a user to.
456 >         * A user does not have to obey the redirection; the ircd just
457 >         * suggests an alternative server for them.
458           */
459 <        redirserv = "this.is.not.a.real.server";
459 >        redirserv = "server2.example.net";
460          redirport = 6667;
341        
342        user = "*.server";
461  
462 <        /* class: a class is required even though it is not used */
462 >        user = "*@*.ch";
463 >
464 >        /* class: a class is required even though it is not used. */
465          class = "users";
466   };
467  
# Line 352 | Line 472 | auth {
472   };
473  
474   /*
475 < * operator {}:  defines ircd operators. (OLD O:)
356 < *
357 < * ircd-hybrid no longer supports local operators, privileges are
358 < * controlled via flags.
475 > * operator {}:  defines ircd operators
476   */
477   operator {
478 <        /* name: the name of the oper */
479 <        /* NOTE: operator "opername"{} is also supported */
363 <        name = "god";
478 >        /* name: the name of the operator */
479 >        name = "sheep";
480  
481          /*
482 <         * user: the user@host required for this operator.  CIDR is not
483 <         * supported.  Multiple user="" lines are supported.
482 >         * user: the user@host required for this operator. Multiple user
483 >         * lines are permitted within each operator {} block.
484           */
485 <        user = "*god@*";
486 <        user = "*@127.0.0.1";
485 >        user = "*sheep@192.0.2.0/26";
486 >        user = "*@192.0.2.240/28";
487  
488          /*
489 <         * password: the password required to oper.  By default this will
490 <         * need to be encrypted using 'mkpasswd'.  MD5 is supported.
489 >         * password: the password required to oper. By default this will need
490 >         * to be encrypted using the provided mkpasswd tool.
491 >         * The availability of various password hashing algorithms may vary
492 >         * depending on the system's crypt(3) implementation.
493           */
494 <        password = "etcnjl8juSU1E";
494 >        password = "$5$x5zof8qe.Yc7/bPp$5zIg1Le2Lsgd4CvOjaD20pr5PmcfD7ha/9b2.TaUyG4";
495  
496          /*
497 <         * encrypted: controls whether the oper password above has been
498 <         * encrypted.  (OLD CRYPT_OPER_PASSWORD now optional per operator)
497 >         * encrypted: indicates whether the oper password above has been
498 >         * encrypted. Default is 'yes' if nothing else is specified.
499           */
500          encrypted = yes;
501  
502          /*
503 <         * rsa_public_key_file: the public key for this oper when using Challenge.
504 <         * A password should not be defined when this is used, see
505 <         * doc/challenge.txt for more information.
503 >         * ssl_certificate_fingerprint: enhances security by additionally checking
504 >         * the oper's client certificate fingerprint against the specified
505 >         * fingerprint below.
506 >         *
507 >         * Hint: your users can use the following commands to obtain a SHA-256 hash
508 >         * of their ssl certificate:
509 >         *
510 >         * OpenSSL/LibreSSL:
511 >         *    openssl x509 -sha256 -noout -fingerprint -in cert.pem | sed -e 's/^.*=//;s/://g'
512 >         *
513 >         * GnuTLS:
514 >         *    certtool -i < cert.pem | egrep -A 1 'SHA256 fingerprint'
515           */
516 < #       rsa_public_key_file = "/usr/local/ircd/etc/oper.pub";
516 > #       ssl_certificate_fingerprint = "4C62287BA6776A89CD4F8FF10A62FFB35E79319F51AF6C62C674984974FCCB1D";
517  
518 <        /* class: the class the oper joins when they successfully /oper */
518 >        /*
519 >         * ssl_connection_required: client must be connected over SSL/TLS
520 >         * in order to be able to use this operator {} block.
521 >         * Default is 'no' if nothing else is specified.
522 >         */
523 >        ssl_connection_required = no;
524 >
525 >        /* class: the class the oper joins when they successfully OPER. */
526          class = "opers";
527  
528          /*
529 <         * umodes: default usermodes opers get when they /oper.  If defined,
530 <         * it will override oper_umodes settings in general {}.
531 <         * Available usermodes:
529 >         * whois: allows overriding the default RPL_WHOISOPERATOR numeric
530 >         * string shown in WHOIS.
531 >         * This string is propagated to all servers on the network.
532 >         */
533 > #       whois = "is a Smurf Target (IRC Operator)";
534 >
535 >        /*
536 >         * umodes: the default user modes opers get when they successfully OPER.
537 >         * If defined, it will override oper_umodes settings in general {}.
538 >         * Available user modes:
539           *
540           * +b - bots         - See bot and drone flooding notices
541           * +c - cconn        - Client connection/quit notices
401         * +C - cconn_full   - Client connection/quit notices full
542           * +D - deaf         - Don't receive channel messages
543           * +d - debug        - See debugging notices
544 <         * +f - full         - See I: line full notices
544 >         * +e - external     - See remote server connection and split notices
545 >         * +F - farconnect   - Remote client connection/quit notices
546 >         * +f - full         - See auth {} block full notices
547           * +G - softcallerid - Server Side Ignore for users not on your channels
548           * +g - callerid     - Server Side Ignore (for privmsgs etc)
549 <         * +i - invisible    - Not shown in NAMES or WHO unless you share a
550 <         *                     a channel
549 >         * +H - hidden       - Hides IRC operator status to other users
550 >         * +i - invisible    - Not shown in NAMES or WHO unless you share a channel
551 >         * +j - rej          - See rejected client notices
552           * +k - skill        - See server generated KILL messages
553           * +l - locops       - See LOCOPS messages
554           * +n - nchange      - See client nick changes
555 <         * +r - rej          - See rejected client notices
555 >         * +p - hidechans    - Hides channel list in WHOIS
556 >         * +q - hideidle     - Hides idle and signon time in WHOIS
557 >         * +R - nononreg     - Only receive private messages from registered clients
558           * +s - servnotice   - See general server notices
559           * +u - unauth       - See unauthorized client notices
560           * +w - wallop       - See server generated WALLOPS
416         * +x - external     - See remote server connection and split notices
561           * +y - spy          - See LINKS, STATS, TRACE notices etc.
418         * +z - operwall     - See oper generated WALLOPS
562           */
563 < #       umodes = locops, servnotice, operwall, wallop;
563 >        umodes = locops, servnotice, wallop;
564  
565          /*
566 <         * privileges: controls the activities and commands an oper is
567 <         * allowed to do on the server.  All options default to no.
568 <         * Available options:
569 <         *
570 <         * global_kill:  allows remote users to be /KILL'd (OLD 'O' flag)
571 <         * remote:       allows remote SQUIT and CONNECT   (OLD 'R' flag)
572 <         * remoteban:    allows remote KLINE/UNKLINE
573 <         * kline:        allows KILL, KLINE and DLINE      (OLD 'K' flag)
574 <         * unkline:      allows UNKLINE and UNDLINE        (OLD 'U' flag)
575 <         * gline:        allows GLINE                      (OLD 'G' flag)
576 <         * xline:        allows XLINE                      (OLD 'X' flag)
577 <         * operwall:     allows OPERWALL
578 <         * nick_changes: allows oper to see nickchanges    (OLD 'N' flag)
579 <         *               via usermode +n
580 <         * rehash:       allows oper to REHASH config      (OLD 'H' flag)
581 <         * die:          allows DIE and RESTART            (OLD 'D' flag)
582 <         * admin:        gives admin privileges.  admins
583 <         *               may (un)load modules and see the
584 <         *               real IPs of servers.
585 <         * hidden_admin: same as 'admin', but noone can recognize you as
586 <         *               being an admin
587 <         * hidden_oper:  not shown in /stats p (except for other operators)
588 <         */
589 <        /* You can either use
590 <         * die = yes;
591 <         * rehash = yes;
592 <         *
593 <         * or in a flags statement i.e.
594 <         * flags = die, rehash;
595 <         *
596 <         * You can also negate a flag with ~ i.e.
597 <         * flags = ~remote;
598 <         *
566 >         * flags: controls the activities and commands an oper is
567 >         * allowed to do on the server. All flags default to 'no'.
568 >         * Available flags:
569 >         *
570 >         * admin          - gives administrator privileges        | ('A' flag)
571 >         * close          - allows CLOSE                          | ('B' flag)
572 >         * connect        - allows local CONNECT                  | ('C' flag)
573 >         * connect:remote - allows remote CONNECT                 | ('D' flag)
574 >         * die            - allows DIE                            | ('E' flag)
575 >         * dline          - allows DLINE                          | ('F' flag)
576 >         * globops        - allows GLOBOPS                        | ('G' flag)
577 >         * join:resv      - allows to JOIN resv {} channels       | ('H' flag)
578 >         * kill           - allows to KILL local clients          | ('I' flag)
579 >         * kill:remote    - allows remote users to be /KILL'd     | ('J' flag)
580 >         * kline          - allows KLINE                          | ('K' flag)
581 >         * locops         - allows LOCOPS                         | ('L' flag)
582 >         * module         - allows MODULE                         | ('M' flag)
583 >         * nick:resv      - allows to use NICK on resv {} nicks   | ('N' flag)
584 >         * opme           - allows OPME                           | ('O' flag)
585 >         * rehash         - allows oper to REHASH config          | ('P' flag)
586 >         * rehash:remote  - allows oper to remotely REHASH config | ('Q' flag)
587 >         * remoteban      - allows remote KLINE/UNKLINE           | ('R' flag)
588 >         * restart        - allows RESTART                        | ('S' flag)
589 >         * resv           - allows RESV                           | ('T' flag)
590 >         * set            - allows SET                            | ('U' flag)
591 >         * squit          - allows local SQUIT                    | ('V' flag)
592 >         * squit:remote   - allows remote SQUIT                   | ('W' flag)
593 >         * undline        - allows UNDLINE                        | ('X' flag)
594 >         * unkline        - allows UNKLINE                        | ('Y' flag)
595 >         * unresv         - allows UNRESV                         | ('Z' flag)
596 >         * unxline        - allows UNXLINE                        | ('a' flag)
597 >         * wallops        - allows WALLOPS                        | ('b' flag)
598 >         * xline          - allows XLINE                          | ('c' flag)
599           */
600 <        flags = global_kill, remote, kline, unkline, xline,
601 <                die, rehash, nick_changes, admin, operwall;
600 >        flags = admin, connect, connect:remote, die, globops, kill, kill:remote,
601 >                kline, module, rehash, restart, set, unkline, unxline, xline;
602   };
603  
604   /*
605 < * connect {}:  controls servers we connect to (OLD C:, N:, H:, L:)
605 > * connect {}: define a server to connect to
606   */
607   connect {
608 <        /* name: the name of the server */
609 <        name = "irc.uplink.com";
608 >        /* name: the name of the server. */
609 >        name = "uplink.example.net";
610  
611          /*
612 <         * host: the host or IP to connect to.  If a hostname is used it
613 <         * must match the reverse dns of the server.
612 >         * host: the host or IP address to connect to. If a hostname is used,
613 >         * it must match the reverse DNS of the server.
614           */
615 <        host = "192.168.0.1";
615 >        host = "192.0.2.4";
616  
617          /*
618 <         * vhost: the IP to bind to when we connect outward to servers.
619 <         * serverinfo::vhost and serverinfo::vhost6 will be overridden
618 >         * vhost: the IP address to bind to when making outgoing connections to
619 >         * servers. serverinfo::vhost and serverinfo::vhost6 will be overridden
620           * by this directive.
621           */
622 <        vhost = "192.168.0.2";
622 >        vhost = "192.0.2.5";
623  
624          /*
625 <         * passwords: the passwords we send (OLD C:) and accept (OLD N:).
626 <         * The remote server will have these passwords reversed.
625 >         * send_password, accept_password: the passwords to send and accept.
626 >         * The remote server will have these passwords swapped.
627           */
628          send_password = "password";
629          accept_password = "anotherpassword";
630  
631          /*
632 <         * encrypted: controls whether the accept_password above has been
633 <         * encrypted.  (OLD CRYPT_LINK_PASSWORD now optional per connect)
632 >         * encrypted: indicates whether the accept_password above has been
633 >         * encrypted.
634           */
635          encrypted = no;
636  
637 <        /* port: the port to connect to this server on */
637 >        /* port: the port to connect to this server on. */
638          port = 6666;
639  
640          /*
641 <         * hub_mask: the mask of servers that this server may hub.  Multiple
642 <         * entries are permitted
641 >         * hub_mask: the mask of servers that this server may hub. Multiple
642 >         * entries are permitted.
643           */
644          hub_mask = "*";
645  
646          /*
647 <         * leaf_mask: the mask of servers this server may not hub.  Multiple
648 <         * entries are permitted.  Useful for forbidding EU -> US -> EU routes.
647 >         * leaf_mask: the mask of servers this server may not hub. Multiple
648 >         * entries are permitted. Useful for forbidding EU -> US -> EU routes.
649           */
650   #       leaf_mask = "*.uk";
651  
652 <        /* fakename: the servername we pretend to be when we connect */
510 < #       fakename = "*.arpa";
511 <
512 <        /* class: the class this server is in */
652 >        /* class: the class this server is in. */
653          class = "server";
654  
655          /*
656 <         * autoconn:    controls whether we autoconnect to this server or not,
657 <         *              dependent on class limits.  By default, this is disabled.
658 <         * compressed:  controls whether traffic is compressed via ziplinks.
659 <         *              By default, this is disabled
660 <         * cryptlink:   enable full encryption for all data passing between our
661 <         *              server and this link and rsa authentication.
662 <         * burst_away:  This will send the /away string that users have set
663 <         *              on the server burst.  Note this can be a lot of data
524 <         *              and slow down your server burst.
525 <         * topicburst:  Send topics to this server during channel burst.  Works
526 <         *              only if the server we are connecting to is capable
527 <         *              of TBURST/TB.
656 >         * ssl_cipher_list: list of ciphers that the server we are connecting to
657 >         * must support. If the server is not capable of using any of the ciphers
658 >         * listed below, the connection will simply be rejected.
659 >         * Can be used to enforce stronger ciphers, even though this option
660 >         * is not necessarily required to establish a SSL/TLS connection.
661 >         *
662 >         * Multiple ciphers are separated by colons. The order of preference
663 >         * is from left to right.
664           */
665 < #       flags = autoconn, compressed, cryptlink, burst_away, topicburst;
530 < };
531 <
532 < connect {
533 <        name = "encrypted.auth.example";
534 <        host = "some.host.somewhere";
535 <        port = 6667;
536 <
537 <        flags = cryptlink;
665 > #       ssl_cipher_list = "ECDHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES256-SHA:AES256-SHA";
666  
667          /*
668 <         * rsa_public_key_file: the path to the public keyfile of the server.
669 <         * Used instead of passwords.
668 >         * ssl_certificate_fingerprint: enhances security by additionally checking
669 >         * the server's client certificate fingerprint against the specified
670 >         * fingerprint below.
671           */
672 <        rsa_public_key_file = "etc/remote.server.keyfile";
672 > #       ssl_certificate_fingerprint = "4C62287BA6776A89CD4F8FF10A62FFB35E79319F51AF6C62C674984974FCCB1D";
673  
674          /*
675 <         * cipher preference: set the preferred cipher for this link
676 <         *
677 <         * Available ciphers are:
549 <         *      BF/168 BF/128 CAST/128 IDEA/128 RC5.16/128
550 <         *      RC5.12/128 RC5.8/128 3DES/168 DES/56
551 <         *
552 <         * NOTE:  Some ciphers may not be supported by your OpenSSL.
553 <         *        Check the output from 'configure' for available ciphers.
554 <         *
555 <         * NOTE2: To help you decide what cipher to use, tools/encspeed
556 <         *        will show you approximately how fast each cipher is.
557 <         *        However, blowfish is fast and secure, and is probably
558 <         *        a good default for most situations.
559 <         *
560 <         * NOTE3: Default if none is set is BF/128
561 <         *
562 <         * The cipher *MUST* be the same in both directions.  If you
563 <         * set a cipher preference, your uplink must set the same cipher,
564 <         * else it will not link.
675 >         * autoconn   - controls whether we autoconnect to this server or not,
676 >         *              dependent on class limits. By default, this is disabled.
677 >         * ssl        - Initiates a TLS/SSL connection.
678           */
679 < #       cipher_preference = "BF/168";
679 > #       flags = autoconn, ssl;
680   };
681  
682 < /*
683 < * NOTE: Don't add an extra 'name=' entry if you use
684 < * the connect "name"{} feature
572 < */
573 < connect "ipv6.some.server" {
574 <        host = "3ffd:dead:beef::1";
682 > connect {
683 >        name = "ipv6.example.net";
684 >        host = "2001:DB8::3";
685          send_password = "password";
686          accept_password = "password";
687          port = 6666;
# Line 586 | Line 696 | connect "ipv6.some.server" {
696  
697   /*
698   * cluster {}:  servers that share klines/unkline/xline/unxline/resv/unresv/locops
699 < * automatically (OLD hyb6 SLAVE_SERVERS)
699 > * automatically
700   */
701   cluster {
702          /*
703 <         * name: the server to share with, this can take wildcards
703 >         * name: the server to share with; this can take wildcards
704           *
705 <         * NOTE: only local actions will be clustered, meaning if
705 >         * NOTE: only local actions will be clustered, meaning that if
706           *       the server receives a shared kline/unkline/etc, it
707           *       will not be propagated to clustered servers.
708           *
709           *       Remote servers are not necessarily required to accept
710 <         *       clustered lines, they need a shared{} for *THIS* server
711 <         *       in order to accept them.
710 >         *       clustered lines, they need a shared {} block for *THIS*
711 >         *       server in order to accept them.
712           */
713 <        name = "*.arpa";
713 >        name = "*.example.net";
714  
715          /*
716 <         * type: list of what to share, options are as follows:
717 <         *      kline   - share klines
718 <         *      tkline  - share temporary klines
719 <         *      unkline - share unklines
720 <         *      xline   - share xlines
721 <         *      txline  - share temporary xlines
722 <         *      unxline - share unxlines
723 <         *      resv    - share resvs
724 <         *      tresv   - share temporary resvs
725 <         *      unresv  - share unresvs
726 <         *      locops  - share locops
617 <         *      all     - share all of the above (default)
716 >         * type: list of what to share; options are as follows:
717 >         *      dline   - share dlines
718 >         *      undline - share undlines
719 >         *      kline   - share klines
720 >         *      unkline - share unklines
721 >         *      xline   - share xlines
722 >         *      unxline - share unxlines
723 >         *      resv    - share resvs
724 >         *      unresv  - share unresvs
725 >         *      locops  - share locops
726 >         *      all     - share all of the above (default)
727           */
728          type = kline, unkline, locops, xline, resv;
729   };
730  
731   /*
732 < * shared {}: users that are allowed to remote kline (OLD U:)
732 > * shared {}: users that are allowed to remote kline
733   *
734 < * NOTE: This can be effectively used for remote klines.
734 > * NOTE: This can effectively be used for remote klines.
735   *       Please note that there is no password authentication
736 < *       for users setting remote klines.  You must also be
736 > *       for users setting remote klines. You must also be
737   *       /oper'd in order to issue a remote kline.
738   */
739   shared {
740          /*
741 <         * name: the server the user must be on to set klines.  If this is not
742 <         * specified, the user will be allowed to kline from all servers.
741 >         * name: the server the user must be connected to in order to set klines.
742 >         * If this is not specified, the user will be allowed to kline from all
743 >         * servers.
744           */
745 <        name = "irc2.some.server";
745 >        name = "irc2.example.net";
746  
747          /*
748 <         * user: the user@host mask that is allowed to set klines.  If this is
748 >         * user: the user@host mask that is allowed to set klines. If this is
749           * not specified, all users on the server above will be allowed to set
750           * a remote kline.
751           */
# Line 643 | Line 753 | shared {
753  
754          /*
755           * type: list of what to share, options are as follows:
756 <         *      kline   - allow oper/server to kline
757 <         *      tkline  - allow temporary klines
758 <         *      unkline - allow oper/server to unkline
759 <         *      xline   - allow oper/server to xline
760 <         *      txline  - allow temporary xlines
761 <         *      unxline - allow oper/server to unxline
762 <         *      resv    - allow oper/server to resv
763 <         *      tresv   - allow temporary resvs
764 <         *      unresv  - allow oper/server to unresv
756 >         *      dline   - allow oper/server to dline
757 >         *      undline - allow oper/server to undline
758 >         *      kline   - allow oper/server to kline
759 >         *      unkline - allow oper/server to unkline
760 >         *      xline   - allow oper/server to xline
761 >         *      unxline - allow oper/server to unxline
762 >         *      rehash  - allow oper/server to rehash
763 >         *      resv    - allow oper/server to resv
764 >         *      unresv  - allow oper/server to unresv
765           *      locops  - allow oper/server to locops - only used for servers that cluster
766 <         *      all     - allow oper/server to do all of the above (default)
766 >         *      all     - allow oper/server to do all of the above (default)
767           */
768          type = kline, unkline, resv;
769   };
770  
771   /*
772 < * kill {}:  users that are not allowed to connect (OLD K:)
773 < * Oper issued klines will be added to the specified kline config
772 > * kill {}:  users that are not allowed to connect
773 > * Oper issued klines will be added to the specified kline database
774   */
775   kill {
776 <        user = "bad@*.hacked.edu";
776 >        user = "bad@*.example.net";
777          reason = "Obviously hacked account";
778   };
779  
670 kill {
671        user = "^O[[:alpha:]]?[[:digit:]]+(x\.o|\.xo)$@^[[:alnum:]]{4}\.evilnet.tld$";
672
673        /*
674         * NOTE: You have to set type=regex; when using a regular expression
675         * based user entry
676         */
677        type = regex;
678 };
679
780   /*
781 < * deny {}:  IPs that are not allowed to connect (before DNS/ident lookup)
782 < * Oper issued dlines will be added to the specified dline config
781 > * deny {}:  IP addresses that are not allowed to connect
782 > * (before DNS/ident lookup)
783 > * Oper issued dlines will be added to the specified dline database
784   */
785   deny {
786 <        ip = "10.0.1.0/24";
786 >        ip = "192.0.2.0/28";
787          reason = "Reconnecting vhosted bots";
788   };
789  
790   /*
791 < * exempt {}: IPs that are exempt from deny {} and Dlines. (OLD d:)
791 > * exempt {}:  IP addresses that are exempt from deny {} and Dlines
792   */
793   exempt {
794 <        ip = "192.168.0.0/16";
794 >        ip = "192.0.2.240/28";
795 >
796 >        /* The 'ip' directives can be stacked */
797 >        ip = "10.0.0.0/8";
798 >        ip = "fc00::/7";
799   };
800  
801   /*
802 < * resv {}:  nicks and channels users may not use/join (OLD Q:)
802 > * resv {}:  nicks and channels users may not use/join
803   */
804 < resv {
805 <        /* reason: the reason for the proceeding resv's */
806 <        reason = "There are no services on this network";
804 > resv { mask = "clone*"; reason = "Clone bots"; };
805 > resv { mask = "Global"; reason = "Reserved for services"; };
806 > resv { mask = "ChanServ"; reason = "Reserved for services"; };
807 > resv { mask = "NickServ"; reason = "Reserved for services"; };
808 > resv { mask = "OperServ"; reason = "Reserved for services"; };
809 > resv { mask = "MemoServ"; reason = "Reserved for services"; };
810 > resv { mask = "BotServ"; reason = "Reserved for services"; };
811 > resv { mask = "HelpServ"; reason = "Reserved for services"; };
812 > resv { mask = "HostServ"; reason = "Reserved for services"; };
813 > resv { mask = "StatServ"; reason = "Reserved for services"; };
814 > resv { mask = "#*services*"; reason = "Reserved for services"; };
815  
816 <        /* resv: the nicks and channels users may not join/use */
817 <        nick = "nickserv";
818 <        nick = "chanserv";
819 <        channel = "#services";
816 > resv {
817 >        /*
818 >         * mask: masks starting with a '#' are automatically considered
819 >         * as channel name masks.
820 >         */
821 >        mask = "#helsinki";
822 >        reason = "Channel is reserved for Finnish inhabitants";
823  
824 <        /* resv: wildcard masks are also supported in nicks only */
825 <        reason = "Clone bots";
826 <        nick = "clone*";
824 >        /*
825 >         * exempt: can be either a ISO 3166 alpha-2 two letter country
826 >         * code, or a nick!user@host mask. CIDR is supported. Exempt
827 >         * entries can be stacked.
828 >         */
829 >        exempt = "FI";
830   };
831  
832   /*
833 < * gecos {}:  The X: replacement, used for banning users based on
715 < * their "realname".
833 > * gecos {}:  used for banning users based on their "realname".
834   */
835   gecos {
836          name = "*sex*";
# Line 724 | Line 842 | gecos {
842          reason = "Trojan drone";
843   };
844  
845 < gecos {
846 <        name = "*http*";
847 <        reason = "Spambot";
845 > /*
846 > * service {}: specifies a server which may act as a network service
847 > *
848 > * NOTE: it is very important that every server on the network
849 > *       has the same service {} block.
850 > */
851 > service {
852 >        /* name: the actual name of the service. Wildcards are not allowed. */
853 >        name = "service.example.net";
854 >
855 >        /* The 'name' directives can be stacked. */
856 >        name = "stats.example.net";
857   };
858  
859 < gecos {
860 <        name = "^\[J[0o]hn Do[3e]\]-[0-9]{2,5}$";
859 > /*
860 > * pseudo {}: adds pseudo/custom commands also known as service aliases
861 > */
862 > pseudo {
863 >        /* command: the actual command/alias. */
864 >        command = "IDENTIFY";
865  
866 <        /*
867 <         * NOTE: You have to set type=regex; when using a regular expression
868 <         * based name entry
869 <         */
870 <        type = regex;
866 >        /* prepend: optional text that can be prepended to the user's message. */
867 >        prepend = "IDENTIFY ";
868 >
869 >        /* name: the service name, used for error messages. */
870 >        name = "NickServ";
871 >
872 >        /* target: the actual target where this message should be sent to. */
873 >        target = "NickServ@service.example.net";
874 > };
875 >
876 > pseudo {
877 >        command = "CHANSERV";
878 >        name = "ChanServ";
879 >        target = "ChanServ@service.example.net";
880 > };
881 >
882 > pseudo {
883 >        command = "CS";
884 >        name = "ChanServ";
885 >        target = "ChanServ@service.example.net";
886 > };
887 >
888 > pseudo {
889 >        command = "NICKSERV";
890 >        name = "NickServ";
891 >        target = "NickServ@service.example.net";
892 > };
893 >
894 > pseudo {
895 >        command = "NS";
896 >        name = "NickServ";
897 >        target = "NickServ@service.example.net";
898 > };
899 >
900 > pseudo {
901 >        command = "MEMOSERV";
902 >        name = "MemoServ";
903 >        target = "MemoServ@service.example.net";
904 > };
905 >
906 > pseudo {
907 >        command = "MS";
908 >        name = "MemoServ";
909 >        target = "MemoServ@service.example.net";
910 > };
911 >
912 > pseudo {
913 >        command = "OPERSERV";
914 >        name = "OperServ";
915 >        target = "OperServ@service.example.net";
916 > };
917 >
918 > pseudo {
919 >        command = "OS";
920 >        name = "OperServ";
921 >        target = "OperServ@service.example.net";
922 > };
923 >
924 > pseudo {
925 >        command = "HOSTSERV";
926 >        name = "HostServ";
927 >        target = "HostServ@service.example.net";
928 > };
929 >
930 > pseudo {
931 >        command = "HS";
932 >        name = "HostServ";
933 >        target = "HostServ@service.example.net";
934 > };
935 >
936 > pseudo {
937 >        command = "BOTSERV";
938 >        name = "BotServ";
939 >        target = "BotServ@service.example.net";
940 > };
941 >
942 > pseudo {
943 >        command = "BS";
944 >        name = "BotServ";
945 >        target = "BotServ@service.example.net";
946   };
947  
948   /*
949 < * channel {}:  The channel block contains options pertaining to channels
949 > * channel {}:  the channel block contains options pertaining to channels
950   */
951   channel {
952          /*
953           * disable_fake_channels: this option, if set to 'yes', will
954 <         * disallow clients to create or join channels that have one
954 >         * disallow clients from creating or joining channels that have one
955           * of the following ASCII characters in their name:
956           *
957           *   2 | bold
958           *   3 | mirc color
959           *  15 | plain text
960           *  22 | reverse
961 +         *  29 | italic
962           *  31 | underline
963           * 160 | non-breaking space
964           */
965          disable_fake_channels = yes;
966  
967          /*
968 <         * restrict_channels: reverse channel RESVs logic, only reserved
969 <         * channels are allowed
763 <         */
764 <        restrict_channels = no;
765 <
766 <        /*
767 <         * disable_local_channels: prevent users from joining &channels.
968 >         * invite_client_count, invite_client_time: how many INVITE commands
969 >         * are permitted per client per invite_client_time.
970           */
971 <        disable_local_channels = no;
971 >        invite_client_count = 10;
972 >        invite_client_time = 5 minutes;
973  
974          /*
975 <         * use_invex: Enable/disable channel mode +I, a n!u@h list of masks
976 <         * that can join a +i channel without an invite.
975 >         * invite_delay_channel: how often an INVITE to any specific channel
976 >         * is permitted, regardless of the user sending the INVITE.
977           */
978 <        use_invex = yes;
978 >        invite_delay_channel = 5 seconds;
979  
980          /*
981 <         * use_except: Enable/disable channel mode +e, a n!u@h list of masks
982 <         * that can join a channel through a ban (+b).
981 >         * knock_client_count, knock_client_time: how many KNOCK commands
982 >         * are permitted per client per knock_client_time.
983           */
984 <        use_except = yes;
984 >        knock_client_count = 1;
985 >        knock_client_time = 5 minutes;
986  
987          /*
988 <         * use_knock: Allows users to request an invite to a channel that
989 <         * is locked somehow (+ikl).  If the channel is +p or you are banned
786 <         * the knock will not be sent.
787 <         */
788 <        use_knock = yes;
789 <
790 <        /*
791 <         * knock_delay: The amount of time a user must wait between issuing
792 <         * the knock command.
793 <         */
794 <        knock_delay = 5 minutes;
795 <
796 <        /*
797 <         * knock_delay_channel: How often a knock to any specific channel
798 <         * is permitted, regardless of the user sending the knock.
988 >         * knock_delay_channel: how often a KNOCK to any specific channel
989 >         * is permitted, regardless of the user sending the KNOCK.
990           */
991          knock_delay_channel = 1 minute;
992  
993          /*
994 <         * burst_topicwho: enable sending of who set topic on topicburst
995 <         * default is yes
805 <         */
806 <        burst_topicwho = yes;
807 <
808 <        /*
809 <         * max_chans_per_user: The maximum number of channels a user can
810 <         * join/be on.
994 >         * max_channels: the maximum number of channels a user can join/be on.
995 >         * This is a default value which can be overriden with class {} blocks.
996           */
997 <        max_chans_per_user = 25;
997 >        max_channels = 25;
998  
999 <        /* quiet_on_ban: stop banned people talking in channels. */
1000 <        quiet_on_ban = yes;
816 <
817 <        /* max_bans: maximum number of +b/e/I modes in a channel */
818 <        max_bans = 25;
999 >        /* max_bans: maximum number of +b/e/I modes in a channel. */
1000 >        max_bans = 100;
1001  
1002          /*
1003 <         * how many joins in how many seconds constitute a flood, use 0 to
1004 <         * disable. +b opers will be notified (changeable via /set)
1005 <         */
1006 <        join_flood_count = 16;
825 <        join_flood_time = 8 seconds;
826 <
827 <        /*
828 <         * splitcode: The ircd will now check splitmode every few seconds.
829 <         *
830 <         * Either split users or split servers can activate splitmode, but
831 <         * both conditions must be met for the ircd to deactivate splitmode.
832 <         *
833 <         * You may force splitmode to be permanent by /quote set splitmode on
1003 >         * default_join_flood_count, default_join_flood_time:
1004 >         * how many joins in how many seconds constitute a flood. Use 0 to disable.
1005 >         * +b opers will be notified. These are only default values which can be
1006 >         * changed via "/QUOTE SET JFLOODCOUNT" and "/QUOTE SET JFLOODTIME".
1007           */
1008 <
1009 <        /*
837 <         * default_split_user_count: when the usercount is lower than this level,
838 <         * consider ourselves split.  This must be set for automatic splitmode.
839 <         */
840 <        default_split_user_count = 0;
841 <
842 <        /*
843 <         * default_split_server_count: when the servercount is lower than this,
844 <         * consider ourselves split.  This must be set for automatic splitmode.
845 <         */
846 <        default_split_server_count = 0;
847 <
848 <        /* no_create_on_split: disallow users creating channels on split. */
849 <        no_create_on_split = yes;
850 <
851 <        /* no_join_on_split: disallow users joining channels at all on a split. */
852 <        no_join_on_split = no;
1008 >        default_join_flood_count = 18;
1009 >        default_join_flood_time = 6 seconds;
1010   };
1011  
1012   /*
1013 < * serverhide {}:  The serverhide block contains the options regarding
1014 < * serverhiding
1013 > * serverhide {}:  the serverhide block contains the options regarding
1014 > * to server hiding. For more information regarding server hiding,
1015 > * please see doc/serverhide.txt
1016   */
1017   serverhide {
1018          /*
1019 +         * disable_remote_commands: disable users issuing commands
1020 +         * on remote servers.
1021 +         */
1022 +        disable_remote_commands = no;
1023 +
1024 +        /*
1025           * flatten_links: this option will show all servers in /links appear
1026 <         * that they are linked to this current server
1026 >         * as though they are linked to this current server.
1027           */
1028          flatten_links = no;
1029  
1030          /*
1031 <         * links_delay: how often to update the links file when it is
1031 >         * flatten_links_delay: how often to update the links file when it is
1032           * flattened.
1033           */
1034 <        links_delay = 5 minutes;
1034 >        flatten_links_delay = 5 minutes;
1035  
1036          /*
1037 <         * hidden: hide this server from a /links output on servers that
874 <         * support it.  This allows hub servers to be hidden etc.
1037 >         * flatten_links_file: path to the flatten links cache file.
1038           */
1039 <        hidden = no;
1039 >        flatten_links_file = "var/lib/links.txt";
1040  
1041          /*
1042 <         * disable_hidden: prevent servers hiding themselves from a
1043 <         * /links output.
1042 >         * hidden: hide this server from a /links output on servers that
1043 >         * support it. This allows hub servers to be hidden etc.
1044           */
1045 <        disable_hidden = no;
1045 >        hidden = no;
1046  
1047          /*
1048           * hide_servers: hide remote servernames everywhere and instead use
# Line 888 | Line 1051 | serverhide {
1051          hide_servers = no;
1052  
1053          /*
1054 <         * Use this as the servername users see if hide_servers = yes.
1054 >         * hide_services: define this if you want to hide the location of
1055 >         * services servers that are specified in the service {} block.
1056 >         */
1057 >        hide_services = no;
1058 >
1059 >        /*
1060 >         * hidden_name: use this as the servername users see if hide_servers = yes.
1061           */
1062 <        hidden_name = "*.hidden.com";
1062 >        hidden_name = "*.example.net";
1063  
1064          /*
1065 <         * hide_server_ips: If this is disabled, opers will be unable to see
1066 <         * servers ips and will be shown a masked ip, admins will be shown the
1067 <         * real ip.
1065 >         * hide_server_ips: if this is disabled, opers will be unable to see
1066 >         * servers' IP addresses and will be shown a masked IP address; admins
1067 >         * will be shown the real IP address.
1068           *
1069 <         * If this is enabled, nobody can see a servers ip. *This is a kludge*,
1070 <         * it has the side effect of hiding the ips everywhere, including
1071 <         * logfiles.
1069 >         * If this is enabled, nobody can see a server's IP address.
1070 >         * *This is a kludge*: it has the side effect of hiding the IP addresses
1071 >         * everywhere, including logfiles.
1072           *
1073           * We recommend you leave this disabled, and just take care with who you
1074 <         * give admin=yes; to.
1074 >         * give administrator privileges to.
1075           */
1076          hide_server_ips = no;
1077   };
1078  
1079   /*
1080 < * general {}:  The general block contains many of the options that were once
1081 < * compiled in options in config.h.  The general block is read at start time.
1080 > * general {}:  the general block contains many of the options that were once
1081 > * compiled in options in config.h
1082   */
1083   general {
915        /* max_watch: maximum WATCH entries a client can have. */
916        max_watch = 64;
917
1084          /*
1085 <         * gline_min_cidr: the minimum required length of a CIDR bitmask
1086 <         * for IPv4 based glines
1085 >         * cycle_on_host_change: sends a fake QUIT/JOIN combination
1086 >         * when services change the hostname of a specific client.
1087           */
1088 <        gline_min_cidr = 16;
1088 >        cycle_on_host_change = yes;
1089 >
1090 >        /* max_watch: maximum WATCH entries a client can have. */
1091 >        max_watch = 50;
1092 >
1093 >        /* max_accept: maximum allowed /accept's for +g user mode. */
1094 >        max_accept = 50;
1095 >
1096 >        /* whowas_history_length: maximum length of the WHOWAS nick name history. */
1097 >        whowas_history_length = 15000;
1098  
1099          /*
1100 <         * gline_min_cidr6: the minimum required length of a CIDR bitmask
1101 <         * for IPv6 based glines
1100 >         * dline_min_cidr: the minimum required length of a CIDR bitmask
1101 >         * for IPv4 based D-lines.
1102           */
1103 <        gline_min_cidr6 = 48;
1103 >        dline_min_cidr = 16;
1104  
1105          /*
1106 <         * Whether to automatically set mode +i on connecting users.
1106 >         * dline_min_cidr6: the minimum required length of a CIDR bitmask
1107 >         * for IPv6 based D-lines.
1108           */
1109 <        invisible_on_connect = yes;
1109 >        dline_min_cidr6 = 48;
1110  
1111          /*
1112 <         * If you don't explicitly specify burst_away in your connect blocks, then
1113 <         * they will default to the burst_away value below.
1112 >         * kline_min_cidr: the minimum required length of a CIDR bitmask
1113 >         * for IPv4 based K-lines.
1114           */
1115 <        burst_away = no;
1115 >        kline_min_cidr = 16;
1116  
1117          /*
1118 <         * Show "actually using host <ip>" on /whois when possible.
1118 >         * kline_min_cidr6: the minimum required length of a CIDR bitmask
1119 >         * for IPv6 based K-lines.
1120           */
1121 <        use_whois_actually = yes;
1121 >        kline_min_cidr6 = 48;
1122  
1123          /*
1124 <         * Max time from the nickname change that still causes KILL
1125 <         * automatically to switch for the current nick of that user. (seconds)
1124 >         * invisible_on_connect: whether to automatically set user mode +i
1125 >         * on connecting users.
1126           */
1127 <        kill_chase_time_limit = 90;
1127 >        invisible_on_connect = yes;
1128  
1129          /*
1130 <         * If hide_spoof_ips is disabled, opers will be allowed to see the real IP of spoofed
1131 <         * users in /trace etc.  If this is defined they will be shown a masked IP.
1130 >         * kill_chase_time_limit: KILL chasing is a feature whereby a KILL
1131 >         * issued for a user who has recently changed nickname will be applied
1132 >         * automatically to the new nick. kill_chase_time_limit is the maximum
1133 >         * time following a nickname change that this chasing will apply.
1134           */
1135 <        hide_spoof_ips = yes;
1135 >        kill_chase_time_limit = 30 seconds;
1136  
1137          /*
1138 <         * Ignore bogus timestamps from other servers.  Yes, this will desync
1139 <         * the network, but it will allow chanops to resync with a valid non TS 0
1138 >         * ignore_bogus_ts: ignore bogus timestamps from other servers.
1139 >         * Yes, this will desync the network, but it will allow chanops
1140 >         * to resync with a valid non TS 0.
1141           *
1142           * This should be enabled network wide, or not at all.
1143           */
# Line 965 | Line 1145 | general {
1145  
1146          /*
1147           * disable_auth: completely disable ident lookups; if you enable this,
1148 <         * be careful of what you set need_ident to in your auth {} blocks
1148 >         * be careful of what you set need_ident to in your auth {} blocks.
1149           */
1150          disable_auth = no;
1151  
972        /* disable_remote_commands: disable users doing commands on remote servers */
973        disable_remote_commands = no;
974
1152          /*
1153           * tkline_expire_notices: enables or disables temporary kline/xline
1154           * expire notices.
# Line 980 | Line 1157 | general {
1157  
1158          /*
1159           * default_floodcount: the default value of floodcount that is configurable
1160 <         * via /quote set floodcount.  This is the amount of lines a user
1161 <         * may send to any other user/channel in one second.
1160 >         * via /quote set floodcount. This is the number of lines a user may send
1161 >         * to any other user/channel in one second. Set to 0 to disable.
1162           */
1163          default_floodcount = 10;
1164  
1165          /*
1166 <         * failed_oper_notice: send a notice to all opers on the server when
1166 >         * failed_oper_notice: send a notice to all opers on the server when
1167           * someone tries to OPER and uses the wrong password, host or ident.
1168           */
1169          failed_oper_notice = yes;
1170  
1171          /*
1172 <         * dots_in_ident: the amount of '.' characters permitted in an ident
1172 >         * dots_in_ident: the number of '.' characters permitted in an ident
1173           * reply before the user is rejected.
1174           */
1175          dots_in_ident = 2;
1176  
1177          /*
1178 <         * dot_in_ip6_addr: ircd-hybrid-6.0 and earlier will disallow hosts
1179 <         * without a '.' in them.  This will add one to the end.  Only needed
1180 <         * for older servers.
1181 <         */
1005 <        dot_in_ip6_addr = no;
1006 <
1007 <        /*
1008 <         * min_nonwildcard: the minimum non wildcard characters in k/d/g lines
1009 <         * placed via the server.  klines hand placed are exempt from limits.
1010 <         * wildcard chars: '.' ':' '*' '?' '@' '!' '#'
1178 >         * min_nonwildcard: the minimum number of non-wildcard characters in
1179 >         * k/d lines placed via the server. K-lines hand-placed are exempt from
1180 >         * this limit.
1181 >         * Wildcard characters: '.', ':', '*', '?'
1182           */
1183          min_nonwildcard = 4;
1184  
1185          /*
1186 <         * min_nonwildcard_simple: the minimum non wildcard characters in
1187 <         * gecos bans.  wildcard chars: '*' '?' '#'
1186 >         * min_nonwildcard_simple: the minimum number of non-wildcard characters
1187 >         * in gecos bans. Wildcard characters: '*', '?'
1188           */
1189          min_nonwildcard_simple = 3;
1190  
1191 <        /* max_accept: maximum allowed /accept's for +g usermode */
1021 <        max_accept = 20;
1022 <
1023 <        /* anti_nick_flood: enable the nickflood control code */
1191 >        /* anti_nick_flood: enable the nickflood control code. */
1192          anti_nick_flood = yes;
1193  
1026        /* nick flood: the nick changes allowed in the specified period */
1027        max_nick_time = 20 seconds;
1028        max_nick_changes = 5;
1029
1194          /*
1195 <         * anti_spam_exit_message_time: the minimum time a user must be connected
1196 <         * before custom quit messages are allowed.
1033 <         */
1034 <        anti_spam_exit_message_time = 5 minutes;
1035 <
1036 <        /*
1037 <         * ts delta: the time delta allowed between server clocks before
1038 <         * a warning is given, or before the link is dropped.  all servers
1039 <         * should run ntpdate/rdate to keep clocks in sync
1195 >         * max_nick_changes, max_nick_time: the number of nick changes allowed in
1196 >         * the specified period.
1197           */
1198 <        ts_warn_delta = 30 seconds;
1199 <        ts_max_delta = 5 minutes;
1198 >        max_nick_changes = 5;
1199 >        max_nick_time = 20 seconds;
1200  
1201          /*
1202 <         * kline_with_reason: show the user the reason why they are k/d/glined
1203 <         * on exit.  May give away who set k/dline when set via tcm.
1202 >         * away_count, away_time: how many AWAY commands are permitted per
1203 >         * client per away_time.
1204           */
1205 <        kline_with_reason = yes;
1205 >        away_count = 2;
1206 >        away_time = 10 seconds;
1207  
1208          /*
1209 <         * kline_reason: show this message to users on channel
1210 <         * instead of the oper reason.
1209 >         * anti_spam_exit_message_time: the minimum time a user must be connected
1210 >         * before custom quit messages are allowed.
1211           */
1212 <        kline_reason = "Connection closed";
1212 >        anti_spam_exit_message_time = 5 minutes;
1213  
1214          /*
1215 <         * reject_hold_time: wait this amount of time before disconnecting
1216 <         * a rejected client. Use 0 to disable.
1215 >         * ts_warn_delta, ts_max_delta: the time delta allowed between server
1216 >         * clocks before a warning is given, or before the link is dropped.
1217 >         * All servers should run ntpdate/rdate to keep clocks in sync.
1218           */
1219 <        reject_hold_time = 0;
1219 >        ts_warn_delta = 3 seconds;
1220 >        ts_max_delta = 15 seconds;
1221  
1222          /*
1223 <         * warn_no_nline: warn opers about servers that try to connect but
1224 <         * we don't have a connect {} block for.  Twits with misconfigured
1225 <         * servers can get really annoying with this enabled.
1223 >         * warn_no_connect_block: warn opers about servers that try to connect
1224 >         * but for which we don't have a connect {} block. Twits with
1225 >         * misconfigured servers can become really annoying with this enabled.
1226           */
1227 <        warn_no_nline = yes;
1227 >        warn_no_connect_block = yes;
1228  
1229          /*
1230           * stats_e_disabled: set this to 'yes' to disable "STATS e" for both
1231 <         * operators and administrators.  Doing so is a good idea in case
1232 <         * there are any exempted (exempt{}) server IPs you don't want to
1233 <         * see leaked.
1231 >         * operators and administrators. Doing so is a good idea in case
1232 >         * there are any exempted (exempt {}) server IP addresses you don't
1233 >         * want to see leaked.
1234           */
1235          stats_e_disabled = no;
1236  
1237 <        /* stats_o_oper only: make stats o (opers) oper only */
1237 >        /* stats_m_oper_only: make /stats m/M (messages) oper only. */
1238 >        stats_m_oper_only = yes;
1239 >
1240 >        /* stats_o_oper_only: make stats o (opers) oper only. */
1241          stats_o_oper_only = yes;
1242  
1243 <        /* stats_P_oper_only: make stats P (ports) oper only */
1243 >        /* stats_P_oper_only: make stats P (ports) oper only. */
1244          stats_P_oper_only = yes;
1245  
1246 +        /* stats_u_oper_only: make stats u (uptime) oper only. */
1247 +        stats_u_oper_only = no;
1248 +
1249          /*
1250 <         * stats i oper only: make stats i (auth {}) oper only. set to:
1251 <         *     yes:    show users no auth blocks, made oper only.
1252 <         *     masked: show users first matching auth block
1253 <         *     no:     show users all auth blocks.
1250 >         * stats_i_oper_only: make stats i (auth {}) oper only. Set to:
1251 >         *     yes    - show users no auth {} blocks, made oper only
1252 >         *     masked - show users the first matching auth {} block
1253 >         *     no     - show users all auth {} blocks
1254           */
1255          stats_i_oper_only = yes;
1256  
1257          /*
1258 <         * stats_k_oper_only: make stats k/K (klines) oper only.  set to:
1259 <         *     yes:    show users no auth blocks, made oper only
1260 <         *     masked: show users first matching auth block
1261 <         *     no:     show users all auth blocks.
1258 >         * stats_k_oper_only: make stats k/K (klines) oper only. Set to:
1259 >         *     yes    - show users no klines, made oper only
1260 >         *     masked - show users the first matching kline
1261 >         *     no     - show users all klines
1262           */
1263          stats_k_oper_only = yes;
1264  
# Line 1104 | Line 1270 | general {
1270  
1271          /*
1272           * opers_bypass_callerid: allows operators to bypass +g and message
1273 <         * anyone who has it set (useful if you use services).
1273 >         * anyone who has it set.
1274           */
1275          opers_bypass_callerid = no;
1276  
1277          /*
1278 <         * pace_wait_simple: time between use of less intensive commands
1279 <         * (ADMIN, HELP, (L)USERS, VERSION, remote WHOIS)
1278 >         * pace_wait_simple: minimum time required between use of less
1279 >         * intensive commands
1280 >         * (ADMIN, HELP, LUSERS, VERSION, remote WHOIS)
1281           */
1282          pace_wait_simple = 1 second;
1283  
1284          /*
1285 <         * pace_wait: time between more intensive commands
1286 <         * (INFO, LINKS, LIST, MAP, MOTD, STATS, WHO, wildcard WHOIS, WHOWAS)
1285 >         * pace_wait: minimum time required between use of more intensive commands
1286 >         * (INFO, LINKS, MAP, MOTD, STATS, WHO, WHOWAS)
1287           */
1288          pace_wait = 10 seconds;
1289  
1290          /*
1291 <         * short_motd: send clients a notice telling them to read the motd
1292 <         * instead of forcing a motd to clients who may simply ignore it.
1291 >         * short_motd: send clients a notice telling them to read the MOTD
1292 >         * instead of forcing an MOTD to clients who may simply ignore it.
1293           */
1294          short_motd = no;
1295  
1296          /*
1297 <         * ping_cookie: require clients to respond exactly to a ping command,
1297 >         * ping_cookie: require clients to respond exactly to a PING command,
1298           * can help block certain types of drones and FTP PASV mode spoofing.
1299           */
1300          ping_cookie = no;
# Line 1136 | Line 1303 | general {
1303          no_oper_flood = yes;
1304  
1305          /*
1306 <         * true_no_oper_flood: completely eliminate flood limits for opers
1307 <         * and for clients with can_flood = yes in their auth {} blocks
1141 <         */
1142 <        true_no_oper_flood = yes;
1143 <
1144 <        /* oper_pass_resv: allow opers to over-ride RESVs on nicks/channels */
1145 <        oper_pass_resv = yes;
1146 <
1147 <        /*
1148 <         * idletime: the maximum amount of time a user may idle before
1149 <         * they are disconnected
1150 <         */
1151 <        idletime = 0;
1152 <
1153 <        /* REMOVE ME.  The following line checks you've been reading. */
1154 <        havent_read_conf = 1;
1155 <
1156 <        /*
1157 <         * max_targets: the maximum amount of targets in a single
1158 <         * PRIVMSG/NOTICE.  Set to 999 NOT 0 for unlimited.
1306 >         * max_targets: the maximum number of targets in a single
1307 >         * PRIVMSG/NOTICE. Set to 999 NOT 0 for unlimited.
1308           */
1309          max_targets = 4;
1310  
1311          /*
1312 <         * client_flood: maximum amount of data in a clients queue before
1164 <         * they are dropped for flooding.
1165 <         */
1166 <        client_flood = 2560 bytes;
1167 <
1168 <        /*
1169 <         * message_locale: the default message locale
1170 <         * Use "standard" for the compiled in defaults.
1171 <         * To install the translated messages, go into messages/ in the
1172 <         * source directory and run `make install'.
1173 <         */
1174 <        message_locale = "standard";
1175 <
1176 <        /*
1177 <         * usermodes configurable: a list of usermodes for the options below
1312 >         * user modes configurable: a list of user modes for the options below
1313           *
1314           * +b - bots         - See bot and drone flooding notices
1315           * +c - cconn        - Client connection/quit notices
1181         * +C - cconn_full   - Client connection/quit notices full
1316           * +D - deaf         - Don't receive channel messages
1317           * +d - debug        - See debugging notices
1318 <         * +f - full         - See I: line full notices
1318 >         * +e - external     - See remote server connection and split notices
1319 >         * +F - farconnect   - Remote client connection/quit notices
1320 >         * +f - full         - See auth {} block full notices
1321           * +G - softcallerid - Server Side Ignore for users not on your channels
1322           * +g - callerid     - Server Side Ignore (for privmsgs etc)
1323 <         * +i - invisible    - Not shown in NAMES or WHO unless you share a
1324 <         *                     a channel
1323 >         * +H - hidden       - Hides IRC operator status to other users
1324 >         * +i - invisible    - Not shown in NAMES or WHO unless you share a channel
1325 >         * +j - rej          - See rejected client notices
1326           * +k - skill        - See server generated KILL messages
1327           * +l - locops       - See LOCOPS messages
1328           * +n - nchange      - See client nick changes
1329 <         * +r - rej          - See rejected client notices
1329 >         * +p - hidechans    - Hides channel list in WHOIS
1330 >         * +q - hideidle     - Hides idle and signon time in WHOIS
1331 >         * +R - nononreg     - Only receive private messages from registered clients
1332           * +s - servnotice   - See general server notices
1333           * +u - unauth       - See unauthorized client notices
1334           * +w - wallop       - See server generated WALLOPS
1196         * +x - external     - See remote server connection and split notices
1335           * +y - spy          - See LINKS, STATS, TRACE notices etc.
1198         * +z - operwall     - See oper generated WALLOPS
1199         */
1200
1201        /* oper_only_umodes: usermodes only opers may set */
1202        oper_only_umodes = bots, cconn, cconn_full, debug, full, skill,
1203                           nchange, rej, spy, external, operwall,
1204                           locops, unauth;
1205
1206        /* oper_umodes: default usermodes opers get when they /oper */
1207        oper_umodes = bots, locops, servnotice, operwall, wallop;
1208
1209        /*
1210         * servlink_path: path to 'servlink' program used by ircd to handle
1211         * encrypted/compressed server <-> server links.
1212         *
1213         * only define if servlink is not in same directory as ircd itself.
1336           */
1215        #servlink_path = "/usr/local/ircd/bin/servlink";
1337  
1338 <        /*
1339 <         * default_cipher_preference: default cipher to use for cryptlink when none is
1340 <         * specified in connect block.
1220 <         */
1221 <        #default_cipher_preference = "BF/168";
1338 >        /* oper_only_umodes: user modes only operators may set. */
1339 >        oper_only_umodes = bots, cconn, debug, external, farconnect, full, hidden,
1340 >                        locops, nchange, rej, skill, spy, unauth;
1341  
1342 <        /*
1343 <         * use_egd: if your system does not have *random devices yet you
1225 <         * want to use OpenSSL and encrypted links, enable this.  Beware -
1226 <         * EGD is *very* CPU intensive when gathering data for its pool
1227 <         */
1228 < #       use_egd = yes;
1342 >        /* oper_umodes: default user modes operators get when they successfully OPER. */
1343 >        oper_umodes = bots, locops, servnotice, wallop;
1344  
1345          /*
1346 <         * egdpool_path: path to EGD pool. Not necessary for OpenSSL >= 0.9.7
1347 <         * which automatically finds the path.
1346 >         * throttle_count: the maximum number of connections from the same
1347 >         * IP address allowed in throttle_time duration.
1348           */
1349 < #       egdpool_path = "/var/run/egd-pool";
1235 <
1349 >        throttle_count = 1;
1350  
1351          /*
1352 <         * compression_level: level of compression for compressed links between
1353 <         * servers.  
1354 <         *
1355 <         * values are between: 1 (least compression, fastest)
1242 <         *                and: 9 (most compression, slowest).
1243 <         */
1244 < #       compression_level = 6;
1245 <
1246 <        /*
1247 <         * throttle_time: the minimum amount of time between connections from
1248 <         * the same ip.  exempt {} blocks are excluded from this throttling.
1249 <         * Offers protection against flooders who reconnect quickly.  
1352 >         * throttle_time: the minimum amount of time required between
1353 >         * connections from the same IP address. exempt {} blocks are
1354 >         * excluded from this throttling.
1355 >         * Offers protection against flooders who reconnect quickly.
1356           * Set to 0 to disable.
1357           */
1358 <        throttle_time = 10;
1358 >        throttle_time = 2 seconds;
1359   };
1360  
1361 < glines {
1256 <        /* enable: enable glines, network wide temp klines */
1257 <        enable = yes;
1258 <
1259 <        /*
1260 <         * duration: the amount of time a gline will remain on your
1261 <         * server before expiring
1262 <         */
1263 <        duration = 1 day;
1264 <
1265 <        /*
1266 <         * logging: which types of rules you want to log when triggered
1267 <         * (choose reject or block)
1268 <         */
1269 <        logging = reject, block;
1270 <
1271 <        /*
1272 <         * NOTE: gline ACLs can cause a desync of glines throughout the
1273 <         * network, meaning some servers may have a gline triggered, and
1274 <         * others may not. Also, you only need insert rules for glines
1275 <         * that you want to block and/or reject. If you want to accept and
1276 <         * propagate the gline, do NOT put a rule for it.
1277 <         */
1278 <
1279 <        /* user@host for rule to apply to */
1280 <        user = "god@I.still.hate.packets";
1281 <        /* server for rule to apply to */
1282 <        name = "hades.arpa";
1283 <
1361 > modules {
1362          /*
1363 <         * action: action to take when a matching gline is found. options are:
1364 <         *  reject      - do not apply the gline locally
1287 <         *  block       - do not propagate the gline
1363 >         * path: other paths to search for modules specified below
1364 >         * and in "/module load".
1365           */
1366 <        action = reject, block;
1366 >        path = "lib/ircd-hybrid/modules";
1367 > #       path = "lib/ircd-hybrid/modules/extra";
1368 >        path = "lib/ircd-hybrid/modules/autoload";
1369  
1370 <        user = "god@*";
1371 <        name = "*";
1293 <        action = block;
1370 >        /* module: the name of a module to load on startup/rehash. */
1371 > #       module = "some_module.la";
1372   };
1373  
1374 < modules {
1375 <        /*
1376 <         * path: other paths to search for modules specified below
1377 <         * and in /modload.
1378 <         */
1379 <        path = "@LIBDIR@/modules";
1302 <        path = "@LIBDIR@/modules/autoload";
1374 > /*
1375 > * log {}:  contains information about logfiles.
1376 > */
1377 > log {
1378 >        /* Do you want to enable logging to ircd.log? */
1379 >        use_logging = yes;
1380  
1381 <        /* module: the name of a module to load on startup/rehash */
1382 <        #module = "some_module.la";
1381 >        file {
1382 >                type = oper;
1383 >                name = "var/log/oper.log";
1384 >                size = unlimited;
1385 >        };
1386 >
1387 >        file {
1388 >                type = user;
1389 >                name = "var/log/user.log";
1390 >                size = 50 megabytes;
1391 >        };
1392 >
1393 >        file {
1394 >                type = kill;
1395 >                name = "var/log/kill.log";
1396 >                size = 50 megabytes;
1397 >        };
1398 >
1399 >        file {
1400 >                type = kline;
1401 >                name = "var/log/kline.log";
1402 >                size = 50 megabytes;
1403 >        };
1404 >
1405 >        file {
1406 >                type = dline;
1407 >                name = "var/log/dline.log";
1408 >                size = 50 megabytes;
1409 >        };
1410 >
1411 >        file {
1412 >                type = xline;
1413 >                name = "var/log/xline.log";
1414 >                size = 50 megabytes;
1415 >        };
1416 >
1417 >        file {
1418 >                type = resv;
1419 >                name = "var/log/resv.log";
1420 >                size = 50 megabytes;
1421 >        };
1422 >
1423 >        file {
1424 >                type = debug;
1425 >                name = "var/log/debug.log";
1426 >                size = 50 megabytes;
1427 >        };
1428   };

Comparing:
ircd-hybrid-7.2/etc/example.conf.in (property svn:keywords), Revision 959 by michael, Fri Jul 31 14:42:09 2009 UTC vs.
ircd-hybrid/branches/8.2.x/doc/reference.conf (property svn:keywords), Revision 7667 by michael, Wed Jul 20 17:09:36 2016 UTC

# Line 1 | Line 1
1 < Id Revision
1 > Id

Diff Legend

Removed lines
+ Added lines
< Changed lines (old)
> Changed lines (new)