Author: Isomer <isomer@coders.net>
[ircu2.10.12-pk.git] / doc / Configure.help
1 # Format of this file: description<nl>variable<nl>helptext<nl><nl>.
2 # If the question being documented is of type "choice", we list
3 # only the first occurring config variable. The help texts
4 # must not contain empty lines. No variable should occur twice; if it
5 # does, only the first occurrence will be used by Configure. The lines
6 # in a help text should be indented two positions. Lines starting with
7 # `#' are ignored. Limit your lines to 78 characters.
8 #
9 # If you add a help text to this file, please try to be as gentle as
10 # possible. Don't use unexplained acronyms and generally write for the
11 # hypothetical admin who has just downloaded ircu for the first time.
12 # Tell them what to do if they're unsure. Technical information
13 # should go in a README in the Documentation directory. Mention all
14 # the relevant READMEs and HOWTOs in the help text.
15 #
16 # All this was shamelessly stolen from several different sources. Many
17 # thanks to all the contributors. The texts are copyrighted # (c) 1997
18 # by Carlo Wood and governed by the GNU Public License.
19 #
20
21 Do you want to change your previous configuration
22 CHANGE_CONFIG
23   You will be presented a series of questions that you have to answer
24   in order to configure the IRC daemon, prior to compilation.
25   If you went through this before, then your choices have been stored
26   in a file '.config'.  If you want to use the same stored configuration
27   now, specify 'n'; this will quickly skip through all questions that
28   you already answered previously, only prompting you for NEW questions.
29   Note that NEW questions only can occur when you just upgraded to a
30   new version.  Note also that if you abort by pressing ^C (control-C)
31   anywhere, then all answers are lost; you must finish it before the
32   answers are stored.
33   Pressing a 'c' or 'C' (followed by a return) on any question will
34   Continue the script in "use_defaults mode", that means that it will
35   take all default values unless it finds a NEW question (like when you
36   specify a 'n' here).  'C' will finish everything, but a 'c' will
37   only finish the current paragraph.
38   If you are unsure, or if you want to change a previously entered
39   configuration, specify 'y'.
40
41 Which compiler do you want to use
42 CC
43   Here you need to specify the C compiler you want to use.
44   Using 'gcc' is highly recommended, you might even want to install it
45   on your machine first.  Note that you can specify the full path if you
46   are not sure if the compiler is in your PATH (or whether or not the right
47   compiler will be used).  An example is: "/usr/ucb/cc".
48   The package needs an ANSI compiler.  Some compilers need an extra option
49   to compile ANSI C.  In those cases you can add these options also here.
50   For example, on a HPUX-8.x you would use (if you don't have gcc):
51   "cc -Aa -D_HPUX_SOURCE".
52   Note that you should not use quotes.
53
54 What flags should I pass to $CC
55 CFLAGS
56   These are the compiler flags, used for CC when compiling.
57   If you are not using gcc, it might be possible that your compiler is not
58   supporting -g and -O at the same time.  The -g option is necessary to be
59   able to debug the daemon in the case it contains a bug that makes the
60   ircd core dump.  Unless you use a version that is proven to be VERY stable,
61   it is highly recommended to use this option.  All Undernet production servers
62   are expected to use it in order to help coder-com to track down bugs.
63   The -O3 will optimize the code - it also makes debugging harder.
64   If you have plenty of cpu cycles then you can use -O2 instead of -O3:
65   it will disable inlining which makes it easier to debug or core dump,
66   the daemon will use a few percent more cpu however.
67   If you are not running a production server you should remove the -Ox.
68   Ircd developers can optionally use more options to turn on extra warnings.
69   Developers (which are using gcc of course ;), should use:
70   "-g -Wall -pedantic -DGODMODE"
71   Note that you should not use quotes.
72   Note that the server uses several non-ANSI (though POSIX.1) function calls.
73
74 Do you need extra include directories
75 EXTRA_INCLUDEDIRS
76   If your compiler needs extra include directories, you can specify them
77   here as a space separated list of directories.  Do not use quotes and do
78   not specify the '-I' prefix.  Usually you don't have to specify any
79   extra include directory, in that case you should specify "none" here.
80   If unsure, try "none" (without quotes) and see if all the '#include'
81   header files are found during compilation.
82
83 Which linker flags do you need
84 LDFLAGS
85   Here you can specify extra flags that will be passed to the linker.
86   Usually you will not need to pass any flags and you can therefore
87   specify "none" here (without the quotes).
88   SunOS users may want to add "-Bstatic" (but only if you need it).
89   You can also specify any "-L..." flags here if you need those for
90   extra libraries.
91
92 Which extra libraries do you need
93 IRCDLIBS
94   Some Operating Systems need linking with extra libraries for some of the
95   functions used by the daemon.  In some cases, it is not known which
96   libraries are needed, even when the Operating System is known.  This is
97   for instance the case with SunOS, some need -lresolv, while others don't.
98   If you forget to add a library then this will result in 'undefined variables'
99   during linking.  If you do not know which library to add, it might be
100   helpful to use the unix command `nm', which lists the variables of a
101   library.  For instance, if you get "unknown variable '_res_mkquery'", and you
102   wonder if this is in /usr/lib/libresolv.so, you can do:
103   nm /usr/lib/libresolv.so | grep res_mkquery
104   Do not use the leading '_' in the grep, this underscore is added by the
105   assembler but is not part of the original variable name and does not show
106   up in the output of nm.
107   Most libraries are in /lib or /usr/lib, which are scanned by default. In
108   some cases you will need to tell the linker where to search for a library.
109   You can do this by adding an -L... option to IRCDLIBS.  For instance:
110   "-L/usr/ucblib -lucb" will look for 'libucb.so' in /usr/ucblib too.
111   Here is a list of what you MAYBE need to specify depending on your
112   Operating System:
113   OS                    Specify here
114   NeXT != 2.0           -lsys_s
115   Dynix/ptx             -lsocket -linet -lnsl -lseq
116   Dell SVR4             -lsocket -lnsl -lucb
117   All others            Default provided by autoconf
118   If unsure use the default provided by autoconf.
119
120 Where should I install the ircd binary
121 BINDIR
122   After compilation (by typing 'make'), you can install the server with
123   the command 'make install'.  This will install the ircd in the directory
124   you specify here.  The package tries to use a meaningful name by naming
125   the binary "ircd.<tag>", where <tag> is the name of the last patch that
126   was applied by the maintainer.  A symbolic link (to be specified next)
127   will be used to point to this binary.  This allows a /RESTART to
128   immediately start the new version, while keeping the old binary.
129   Note that you need to have write permissions in this directory during
130   the install.  Please re-check the permissions/owner and group after
131   installation.
132
133 What should the name of the installed symbolic link to the executable be
134 SYMLINK
135   'make install' installs the binary with an unique name, however it makes
136   a symbolic link to this newly installed executable which always has the
137   same name, so you can use /RESTART and/or use this name in scripts that
138   automatically restart the ircd after a reboot or crash.
139   Here you can specify the name of that symbolic link.  Note that it may
140   not contain a '/'; it is just the name if the symbolic link and will be
141   installed in BINDIR.
142
143 Which permissions do you want the binary to have
144 IRCDMODE
145   Here you need to specify the octal file mode of the ircd binary.
146   Recommended is 711 - but you might need setuid or something.
147   Note that using a setuid and starting the daemon as another user
148   does prohibit the daemon from core dumping in case of a crash on some
149   Operating Systems.
150
151 Which owner do you want the binary to have
152 IRCDOWN
153 This will be the owner of the ircd binary after installation.
154
155 Which group do you want the binary to have
156 IRCDGRP
157 This will be the group of the ircd binary after installation.
158
159 Where should I install the man page
160 MANDIR
161   This is the base directory where the manual page of the ircd is installed.
162   If you are not root on your system, you can change it to your personal
163   manpath directory (which of course should be in your MANPATH environment
164   variable then).
165
166 Use inlining for a few crucial functions
167 FORCEINLINE
168   This will increases the size of the executable with 7 kb, but it also
169   speeds up execution a bit :).  Your compiler needs to understand the
170   keyword __inline__ (GNU gcc and egcs do).
171   If unsure, try if `y' compiles.  If it doesn't, you can try using a
172   C++ compiler (ie, configure CC to be 'g++' instead 'gcc').
173
174 You have poll(), but do you want to use it
175 USE_POLL
176   Some Operating Systems implement select() by calling poll(), others
177   implement poll() by calling select().  The best performance will be
178   achieved by calling the lowest (sys)call ourselves of course.
179   The Undernet Daemon allows you to use select() or poll().
180   If you specify 'y' here, the daemon will use poll() directly, otherwise
181   it will use select().  If you don't know what your Operating System
182   uses as syscall, you can compile the server with USE_POLL and detach
183   the running process with 'strace -p <pid>', 'truss -p <pid>' or
184   'trace -p <pid>' depending on your Operating System, these UNIX commands
185   will show you the syscalls and therefore show if you use poll() or select().
186   The advantage of using poll() is that you are not bothered by the limits
187   of select() and fd_set size (ie, the number of clients that connect).
188   The following Operating Systems seem to use poll():
189   Solaris 2.x, SunOS 4.x, AIX, Digital UNIX, and NetBSD.
190   linux-2.2.x use poll(), but only of your glibc was compiled with that
191   kernel (and it won't unless you compile it yourself).
192   The following Operating Systems use select():
193   linux-2.0.x.
194   If unsure, test it (a ./configure check will be added in ircu2.10.06).
195
196 What is the domain name of your network
197 DOMAINNAME
198   This define allows you to specify what you consider to be 'local'.
199   It is only used for statistics.  When you issue the IRC command /stats w,
200   the server will respond with statistics of how many clients have been
201   connecting to your server in the last minute, hour and day.  It will
202   give these statistics for all connections (including the servers), all
203   clients (from anywhere) and also for clients whose hostname ends on
204   the domain you specify here.  So if you are an ISP and you want to know
205   specifically the client load from your own domain, specify that domain
206   here.  If you are unsure what to do, then it isn't really important what
207   you give here, just don't give an empty string.  A good guess is the last
208   two parts of your own hostname (ie, if your hostname is foo.bar.nowhere.org,
209   specify 'nowhere.org').  Note that the string you give should NOT start
210   with a '.' and you should not use quotes.
211
212 Please give a random seed of eight characters
213 RANDOM_SEED
214   You should specify exactly eight characters (0-9A-Za-z) here.  Do not use
215   quotes or any other special characters.  This value is used to initialize
216   the random generator of the server which is used to generate PING/PONG
217   cookies in order to stop spoofing IP-numbers (a PING with a random number is
218   sent to this IP-number and if the client doesn't respond with the
219   exact same number, access is denied).  In order to make the random
220   number impossible to guess, it is important that you use your own random
221   seed here.
222
223 Does your host have a reliable clock
224 RELIABLE_CLOCK
225   You should really ONLY specify 'y' here when your system clock is
226   stable and accurate at all times (within a few seconds).
227   If you are running ntpdate on a regular basis, or an equivalent
228   like xntpd, to keep your system clock synchronized over the network,
229   then you might have an accurate clock.  However, this is not guaranteed,
230   for example, it is known that xntpd gives unstable results on linux
231   in some cases.  Note that an unstable clock is worse then an clock that
232   has a constant offset, because the servers attempt to correct for a
233   constant offset, but do not correct jumps of your system clock !
234   In general you SHOULD be running ntpdate or equivalent AND make sure it
235   works when you run a production server on Undernet.  Otherwise leave
236   your clock alone and specify 'n' here.
237   If unsure specify 'n' !
238
239 Change root (/) after start of daemon
240 CHROOTDIR
241   If you are a security freak and you want to the daemon to run in
242   its own environment, then you can specify 'y' here.  The daemon will
243   change '/' to 'DPATH' (which you will have to specify later).
244   If this confuses you or if you are uncertain, specify 'n'.
245
246 Do you want the daemon set its own uid/gid
247 CONFIG_SETUGID
248   If you specify 'y' here, then the daemon will attempt to set its
249   User ID (uid) and Group ID (gid) to the numeric values that you will
250   have to specify next.  This only makes sense if you (have to) start
251   the server as root.  The most secure operation of the server is to
252   not use setuid stuff (here or by means of setting the file mode)
253   and to run the server as a special user only (ie 'irc').  Of course
254   this user must have access to all log and configuration files.
255   Note that using a setuid and starting the daemon as another user
256   does prohibit the daemon from core dumping in case of a crash on some
257   Operating Systems.
258   This option is actually only necessary when you use the Change Root
259   option, because otherwise you can use the file mode to set the uid
260   and gid.  Note that the server refuses to run as root.
261   If unsure, specify 'n'.
262
263 UID of irc daemon
264 IRC_UID
265   Ok, if you insist on using this option: Here you must specify the
266   numeric value of the uid that you want the server to run as.
267   Note that you need to look in the right /etc/passwd file, which isn't
268   the same file when you used the Change Root option.
269
270 GID of irc daemon
271 IRC_GID
272   Ok, if you insist on using this option: Here you must specify the
273   numeric value of the gid that you want the server to run as.
274   Note that you need to look in the right /etc/group file, which isn't
275   the same file when you used the Change Root option.
276
277 Allow to specify configuration file on command line
278 CMDLINE_CONFIG
279   If you specify 'y' here, you will be allowed to specify the ircd.conf
280   path (the ircd daemon configuration file) on the command line when
281   starting the daemon (with the -f <ircd.conf file> option).
282   Note that defining this and installing ircd SUID or SGID is a MAJOR
283   security problem - they can use the '-f' option to read any files
284   that the 'new' access lets them.  Note also that defining this is
285   a major security hole if other users have accounts on the same machine;
286   when your ircd goes down and some other user starts up the server with
287   a new conf file that has some extra O-lines.  So don't use this unless
288   you're debugging.
289
290 Set up a Unix domain socket to connect clients/servers
291 UNIXPORT
292   If there are lots of users having an account on the same machine
293   (which is very unlikely because the server needs all cpu ;), then
294   using a UNIX domain socket to connect these clients to is more
295   efficient then letting them connect via TCP/IP.  A UNIX domain
296   socket is a special device that will be created in your File System.
297   Your client must also support connecting to a UNIX domain socket.
298   The name of the special device must be specified in the "ircd.conf"
299   file by means of an extra 'P: line', see doc/example.conf for the
300   syntax.
301   If you don't have many IRC-ing users on the same host as the server,
302   or when your local IRC client doesn't support UNIX domain sockets,
303   specify 'n' here.  Otherwise specify 'y'.
304
305 Do you need virtual hosting
306 VIRTUAL_HOST
307   This is only needed when you want to run two or more servers on the
308   same machine and on the same port (but different devices).
309   In general you will only need this if you have at least two ethernet
310   cards in your machine with a different IP-number.
311   If you specify 'y' here, then you can "bind" a server to one of your
312   interfaces.  You should use the command line option '-w' to tell the
313   server to which interface to bind to.  No error is reported if this
314   fails, the server will simply not run.
315   If no '-w' option is given then the server name specified in the
316   'M: line' of the "ircd.conf" file of the server is used, provided it
317   resolves to an IP-number of one of your interfaces.  Note that
318   normally the name does not have to resolve, but when you define this,
319   it MUST resolve or you must use the -w command line option, or the
320   "bind" will fail.
321   If you are unsure, specify 'n'.
322
323 Will you connect to more then one server at a time
324 HUB
325   All servers of one IRC "network" are connected in a "tree" (no loops).
326   Servers that are only connected to one other server (called the
327   'uplink') are called "leafs", servers that are connected to more then
328   one other server are called HUBs.
329   If you specify 'n' here then your server will prevent itself from acciden-
330   tally connecting to two servers at once, which is good because this is
331   generally bad for servers in "leaf" positions (they are net.wise located
332   too bad to route traffic).  Note that on Undernet all newly linked servers
333   are linked as leafs during their test phase, and should specify 'n' here.
334
335 Send a short message instead of the MOTD to connecting clients
336 NODEFAULTMOTD
337   Every time a client connects to your server, the full Message Of
338   The Day (as specified in its file MPATH) is sent to the client.
339   Even while many clients allow the user to ignore the message of
340   the day: the server still sends it. Many users never read the
341   message of the day anyway, making it a huge waste of bandwidth.
342   If you specify 'y' here than the server won't send the MOTD by
343   default to the client, but rather tell the client when the MOTD
344   was last changed and how to receive the MOTD by typing /MOTD.
345   If unsure specify 'n'.
346
347 Do you want to enable debugging output
348 DEBUGMODE
349   Sometimes things just don't work.  This doesn't have to be a crash,
350   but it is also possible that your server just doesn't want to start
351   at all, or disallows clients to connect at all, etc.
352   With all such drastic and REPRODUCIBLE problems, it makes sense to
353   recompile the server with this option set and then running the
354   ircd (irc daemon) with the (extra) command line options: -t -x9
355   This will make the server run in the foreground and write debug output
356   to the terminal; in a lot of cases this can give a clue on what is
357   wrong (although more often it doesn't).
358   Because defining DEBUGMODE uses a LOT of cpu and is never useful
359   unless you are debugging a reproducible test case, you should never
360   specify 'y' here except for the reason just mentioned.
361   You should certainly NEVER specify 'y' for a server that runs on a
362   production net.
363
364 Do you want memory- allocation and/or leak checking
365 DEBUGMALLOC
366   If you specify 'y' here, then the server will start to do book keeping
367   on the allocated memory blocks.  This uses extra cpu and memory,
368   so normally you do not want this - unless you are debugging.
369   This option uses 8 bytes extra per allocated memory block.
370   The main purpose of this option is to check if a call to free(2) is done
371   with a valid pointer - if the pointer was not previously returned by
372   malloc(2), calloc(2) or realloc(2), the server will core dump in a place
373   that allows the maintainer to get an idea of what went wrong - but only
374   when the server was compiled with the -g flag of course.
375   You also need to specify 'y' here if you want to search for memory leaks.
376   On a production server, specify 'n' - unless you have lots of cpu to
377   spare and you volunteer to search for memory leaks - contact the
378   maintainer in this case.
379   If unsure, specify 'n'.
380
381 Do you want to have boundary checking
382 MEMMAGICNUMS
383   One of the most nasty bugs are those where buffer overruns are involved.
384   In an attempt to catch those in an early stage, this option will add
385   so called "magic numbers" to the beginning and end of each allocated
386   memory block.  When a block is freed or reallocated, the magic numbers
387   are checked and the server core dumps when they were corrupted.
388   This option uses 12 bytes extra per allocated memory block.
389   It doesn't really use much extra cpu compared to defining DEBUGMALLOC, so
390   you might as well specify 'y' here, just in case.  It only makes sense
391   though if you compiled the server with compiler option '-g'.
392   If unsure, specify 'n'.
393
394 Do you want memory leak testing (stats M)
395 MEMLEAKSTATS
396   If you specify 'y' here then the server will start to do extra book keeping
397   on the allocated memory blocks, counting the number of currently allocated
398   blocks per source code location (file and line number).  You will be able
399   to retrieve these statistics with the command /stats M.
400   When there is a memory leak, then allocated memory blocks that were allocated
401   under certain conditions are never freed (however the contents of those
402   memory blocks are never used anymore); this would result in a (slow?)
403   increase of the count of allocated memory blocks.  This option allows to
404   find where these blocks were allocated which might give a clue on the memory
405   leak problem.
406   This option uses 4 bytes extra per allocated memory block.
407   If you want to look for memory leaks, specify 'y' - otherwise specify 'n'.
408
409 Do you want extra info on allocated sizes
410 MEMSIZESTATS
411   If you specify 'y' here then the server will start to do extra book keeping
412   on the sizes of the allocated memory blocks.  /stats M will not only return
413   the number of allocated blocks, but also the total number of allocated
414   bytes involved.  If you defined MEMLEAKSTATS to look for memory leaks, it
415   will give the total number of allocated memory per source code location
416   (file and line number).
417   This option uses 4 bytes extra per allocated memory block, unless you already
418   specified 'y' for MEMMAGICNUMS (boundary checking), because in that case
419   it was already included (and it doesn't matter what you specify here).
420   I think you should specify 'y' here, its more fun to see the sizes :).
421
422 Do you want support for a time interval with /stats M
423 MEMTIMESTATS
424   If you specify 'y' here then the server will start to do extra book keeping
425   on the allocated memory blocks, storing the time at which the memory block
426   was allocated.  This especially slows down /stats M (but unless you use
427   that command frequently, it shouldn't really matter) and uses again 4 bytes
428   of extra memory per allocated memory block.
429   This option is especially useful if you are looking for memory leaks
430   because it allows you to specify a time window with /stats M for which
431   counted blocks must be returned.  This allows to ignore recently allocated
432   blocks and permanently allocated blocks (since the start of the server).
433
434 Are you testing on a host without DNS
435 NODNS
436   If you are playing with the server off-line, and no DNS is available, then
437   long delays occur before the server starts up because it tries to resolv
438   the name given on the M:line (which usually isn't given in /etc/hosts) and
439   for each connecting client.
440   If you specify 'y' here, then a call to gethostbyname() will be done only
441   for the real hostname, and the server will not try to resolv clients that
442   connect to `localhost'.
443   Note that other calls to gethostbyname() are still done anyway if you
444   use VIRTUAL_HOST and that the server still tries to resolv clients
445   that connect to the real IP-number of the server.
446
447 Directory where all ircd stuff sits
448 DPATH
449   DPATH is provided so that the other path names may be provided in just
450   filename form.  It is the Default PATH.  When the server starts, it
451   chdir's to DPATH before chroot or any other file operation, making
452   it the "current directory" for the server.  This is where core files
453   will go if the server core dumps.
454   Note that you should not include quotes here.
455   Note also that the command line option "-d <dir>" overrides the DPATH
456   you give here, except for the chroot (if you use that).
457
458 Server configuration file
459 CPATH
460   This is the IRC daemon Configuration filename, mostly called "ircd.conf".
461   If you just specify the filename, the server will read its configuration
462   file from the Default Path "DPATH", which you specified above.  However,
463   you are also allowed to specify a full path.
464   Note that you should not include quotes here.
465
466 Server MOTD file
467 MPATH
468   MPATH is the filename, relative to DPATH, or the full path, of the
469   "Message Of The Day" file; mostly called "ircd.motd".  The contents
470   of this file will be sent to every client that connects to the server,
471   after registration.
472   Note that you should not include quotes here.
473
474 Server remote MOTD file (3 lines max)
475 RPATH
476   RPATH is the filename, relative to DPATH, or the full path, of the
477   "Remote Message Of The Day" file; mostly called "remote.motd".  The
478   contents of this file will be sent to every remote client that issues
479   a /MOTD <your server name>.  Only the first three lines are sent, so
480   you might want to keep it that short ;).
481   Note that you should not include quotes here.
482
483 File for server pid
484 PPATH
485   PPATH is the filename, relative to DPATH, or the full path, of the
486   "PID file", mostly called "ircd.pid".  It is used for storing the
487   server's PID so a ps(1) isn't necessary.
488   Note that you should not include quotes here.
489
490 Do you want to log the use of /WHO x% (recommended)
491 CONFIG_LOG_WHOX
492   Specify 'y' here if you want to log the use of /WHO ... x%... by your
493   Opers (see doc/readme.who).  This is highly recommended since it will
494   reduce the abuse of this `spy' function.  Note: You can disable this
495   spy function completely below, in which case you can give 'n' here.
496   If unsure specify 'y'.
497
498 Give the path and(or) filename of this log file
499 WPATH
500   WPATH is the filename, relative to DPATH, or the full path, of the
501   log file where the use of /WHO ... x% ... by your Opers will be logged
502   (see doc/readme.who), mostly called "whox.log".
503   Note that you should not include quotes here.
504
505 Do you want to log G-lines to a separate file
506 CONFIG_LOG_GLINES
507   Specify 'y' here if you want to log G-lines (Global access bans)
508   to a local file.
509
510 Give the path and(or) filename of this log file
511 GPATH
512   GPATH is the filename, relative to DPATH, or the full path, of the
513   log file where the G-lines will be stored, mostly called "gline.log".
514   Note that you should not include quotes here.
515
516 Do you want to log JUPEs to a separate file
517 CONFIG_LOG_JUPES
518   Specify 'y' here if you want to log JUPEs (Jupiters) to a local file.
519
520 Give the path and(or) filename of this log file
521 JPATH
522   JPATH is the filename, relative to DPATH, or the full path, of the
523   log file where the logs of JUPEs will be stored; it is usually called
524   "jupe.log".  Note that you should not include quotes here.
525
526 Do you want to log OPMODEs and CLEARMODEs to a separate file
527 CONFIG_LOG_OPMODES
528   Specify 'y' here if you want to log OPMODEs and CLEARMODEs to a local
529   file.
530
531 Give the path and(or) filename of this log file
532 OPATH
533   OPATH is the filename, relative to DPATH, or the full path, of the
534   log file where the logs of OPMODEs and CLEARMODEs will be stored; it
535   is usually called "opmode.log".  Note that you should not include
536   quote here.
537
538 Do you want to log connecting users to a separate file
539 CONFIG_LOG_USERS
540   Specify 'y' here if you want to log who is connecting to your server.
541   This file can grow VERY fast on a large net work, so you probably
542   want to specify 'n' here.
543
544 Give the path and(or) filename of this log file
545 FNAME_USERLOG
546   Here you need to specify the name of the log file where the server
547   should write the data about connecting users to. You can also specify
548   a full path.  Note that you should not include quotes here.
549
550 Do you want to log Opers to a separate file
551 CONFIG_LOG_OPERS
552   Specify 'y' here if you want to log who is successfully becoming an
553   IRC Operator on your server.
554
555 Give the path and(or) filename of this log file
556 FNAME_OPERLOG
557   Here you need to specify the name of the log file where the server
558   should write the data about Opering users.  You can also specify a
559   full path.  Note that you should not include quotes here.
560
561 Do you want to use syslog
562 USE_SYSLOG
563   If you are the sys admin of this machine, or if you have permission
564   of the sys admin to do so, you can let the server write data about
565   certain events to the syslog.  You will be prompted for the events
566   that you want to log being one or more of: KILL's, SQUIT's, CONNECT's,
567   OPERing, Connecting Users and finally the log facility.
568   If you are unsure, specify 'n'.  It is probably not a good idea to use
569   this on a large IRC net work.
570
571 Log all operator kills to syslog
572 SYSLOG_KILL
573   Specify 'y' here if you want all KILLs to be written to syslog.
574   Note that on a large IRC net work this is a LOT of data.
575
576 Log all remote squits for all servers to syslog
577 SYSLOG_SQUIT
578   Specify 'y' here if you want all SQUITs to be written to syslog.
579   Note that on a large IRC net work this is a LOT of data.
580
581 Log remote connect messages for other all servers
582 SYSLOG_CONNECT
583   Specify 'y' here if you want all CONNECTs to be written to syslog.
584   Note that on a large IRC net work this is a LOT of data.
585
586 Log all users who successfully become an Oper
587 SYSLOG_OPER
588   Specify 'y' here if you want all OPERs to be written to syslog.
589   Note that on a large IRC net work this is a LOT of data.
590
591 Send userlog stuff to syslog
592 SYSLOG_USERS
593   Specify 'y' here if you want all connecting users to be written to syslog.
594   Note that on a large IRC net work this is EXTREMELY MUCH data.
595   You really want to specify 'n' here.
596
597 Log facility (daemon, user, local0-7)
598 CONFIG_DAEMON
599   Well if you got this far and still need help, then I think you should
600   go back and specify 'n' at the question "Do you want to use syslog".
601
602 Which local facility (0-7)
603 INT_LOCAL
604   Well if you got this far and still need help, then I think you should
605   go back and specify 'n' at the question "Do you want to use syslog".
606
607 Use crypted passwords for operators
608 CRYPT_OPER_PASSWORD
609   In order to allow certain users to become IRC OPERators, they must
610   authenticate themselves with a password.  This password is matched
611   against an 'O: line' in the "ircd.conf" configuration file, see
612   doc/example.conf for more details.  If you specify 'y' here, you are
613   allowed to use the DES encrypted form of these passwords in your
614   "ircd.conf" file (even more, your Opers don't have to tell you their
615   real password, they can provide the DES encrypted form themselves).
616   Since it has happened often in the past that the "ircd.conf" file
617   was compromised somehow, you are highly encouraged to specify 'y' here
618   and use the DES encrypted form.  You can find a program 'mkpasswd' in
619   the ircd/crypt directory that will allow you to generate the encrypted
620   form.
621
622 Max size of the total of of all sendqs (bytes)
623 BUFFERPOOL
624   This specifies the maximum amount of RAM that your server will allocate
625   for buffering sendQ's.  Small leafs can use a value as little as 1000000,
626   while large HUBs need to specify a value as high as 20000000.
627   If you run out of memory, clients and/or servers are dropped with the
628   error "Buffer allocation error".  Then you will have to up this number
629   (and install more RAM if appropriate).
630   If you want a more educated guess for this value then realize that any
631   value is good if you _really_ rather want to drop servers and clients
632   then allocate more memory; this will be the case when there is the
633   danger to run out memory for other allocations.
634   Even if you run the daemon on a dedicated machine, then specifying the 
635   maximum of the RAM you have is a Bad Thing because really running out 
636   of memory is a lot worse then dropping clients in a controlled way:
637   if possible you should have memory left for all the internal structures
638   (channels, clients, banlists, receive buffers) at all times.
639   On average, clients seem to use 150 bytes of sendQ, but at peak moments
640   this can easily increase to 2032 bytes per client (sendQs are allocated
641   in chunks of 2032 bytes).
642   The maximum possible ammount that can be allocated for sendQs is the
643   number of connected clients times whatever you specified as maximum
644   sendQ in your Y: lines in the ircd.conf file.  Likely, that value will
645   be larger then the ammount of RAM you have.
646   The educated guess I talked about earlier would be 'number of clients'
647   times * 2048 bytes + 'size of net.burst' * n, where `n' is 1 for leafs
648   and up till 5 for HUB's.  The 'size of net.burst' is about 125 bytes
649   per online client (on the total network).
650   For large HUBs with 4000 clients on undernet (30,000 users), this results
651   in 27 Mb.  Leafs could use 12 Mb.  Of course you can use less when you
652   have less than 4000 local clients.
653   Don't forget to specify this value in bytes.
654
655 Aggressively empty the sendqpool (Read Help!)
656 HAS_FERGUSON_FLUSHER
657   Instead of dropping clients with 'Buffer Allocation Error', try to send
658   data to clients to try and drop the sendq buffer size as a last resort
659   before dropping clients.  This doesn't get rid of the problem, it just
660   tries hard to limit it's impact.
661   WARNING: *THIS PANICS UNCONFIGURED FREEBSD MACHINES*, make sure you've
662   read doc/freebsd.txt before enabling this feature on a FreeBSD machine.
663
664 Max receive queue for clients (bytes)
665 CLIENT_FLOOD
666   Currently, everything that a client sends to a server is read by the server
667   and stored in a buffer (the clients receive queue).  The server will
668   process messages from this queue one by one (running over all clients
669   each time).  When a client sends new messages faster they get processed,
670   and the size of its receive buffer reaches this value, the client is
671   dropped with the error "Excess flood".  A reasonable value is 1024 bytes.
672   The maximum size is 8000 bytes.
673
674 Maximum number of network connections (23 - (FD_SETSIZE-4))
675 MAXCONNECTIONS
676   This specifies the maximum number of network connections the server
677   will use.  You also need some non-network connects (log files etc), so
678   the maximum value is "FD_SETSIZE-4".  The minimum value is 23.
679   The only benefit of using a small value is that your server uses less
680   memory - but *only* when you really have a small (client) load.
681   Routing server that hardly take clients can use 128 here for instance.
682   Servers that are always full should just specify the maximum amount
683   that still works (which might be less then FD_SETSIZE-4, some OS need
684   kernel hacking to allow more then 1024 fds per process). The only max.
685   value that is guaranteed to work is 252 ;).  Note that if the value of
686   FD_SETSIZE is for instance 1024, then that doesn't mean you can't
687   connect MORE clients - but in this case you certainly need kernel
688   hacking.  Find an experienced admin with the same Operating System and
689   ask him what the maximum is and how to achieve it.
690
691 Nickname history length
692 NICKNAMEHISTORYLENGTH
693   This value specifies the length of the nick name history list, which
694   is only used for /WHOWAS.  It uses about 300 to 400 bytes per entry.
695   Note that at a net.break so many client disappear that the whole
696   "whowas" list refreshed a few times (unless you make it as big as
697   20,000 of course - but you shouldn't because thats a waste of ram
698   and cpu).  A reasonable value is 'total number of clients' / 25.
699
700 Allow Opers to see (dis)connects of local clients
701 ALLOW_SNO_CONNEXIT
702   If you specify 'y' here, you will be allowed to see all client connects and
703   disconnects as a server notice.  The historical reason for adding this
704   option was to detect clone bots that connected to your server.  However,
705   on a large IRC network like Undernet, the number of clients that connect
706   are so huge that it is not possible to keep an eye on this and everyone
707   has been filtering these notices out anyway.  Next to that it turned out
708   to use no less then 10% of the total cpu usage last time I measured it
709   (this has been improved after that, but still).
710   Unless you insist on seeing those notices you should specify 'n' here.
711   Note that in the meantime Undernet has a LOT of other (semi- and fully-
712   automated) ways to detect clone bots, which work a LOT better for this
713   purpose.
714
715 Show IP address in client connection notices
716 SNO_CONNEXIT_IP
717   Usually when showing a client connection, a nick, userid and hostname are
718   displayed.  Selecting 'y' here will also display the numeric IP and connection
719   class of the connecting client. This can be useful for detecting spoofed DNS and
720   virtual hosted clones. This does use extra CPU though and is generally not needed, 
721   however if a connection monitor bot is the only client that looks at these 
722   notices, it is more efficient than sending USERIP for every connection. This
723   option makes the server compatible with Hybrid tcm bots.
724
725 Do you want to use R: lines in your configuration file
726 R_LINES
727   If you specify 'y' here you will be allowed to use R:lines in the "ircd.conf".
728   This allows more freedom in restricting connections to your server by
729   calling an external program to determine whether to allow the connection.
730   It also uses a lot of overhead however, and can bog things down, so you should
731   consider whether you really need them, and if you can handle the extra load.
732   If unsure, specify 'n'.
733
734 Process R: lines every rehash
735 R_LINES_REHASH
736   You may not want to have the R: lines checks everywhere since this can
737   cost a lot of time and delays.  If you specify 'y' here, then R: lines are
738   checked whenever the "ircd.conf" file is reloaded (when the REHASH command
739   is used, or a signal SIGHUP is received by the daemon).  This shouldn't be
740   too much of a drain on the system if the R:lines programs are short.
741
742 Process R: lines always
743 R_LINES_OFTEN
744   If you specify 'y' here then R: lines will be checked as often as K: lines.
745   Note that this is -very- likely to cause a severe drain on your resources.
746   Use at your own risk, specify 'n' unless your really sure.
747
748 Allow (local) Opers to see all local invisible users
749 SHOW_INVISIBLE_USERS
750   If you specify 'y' here, then your (local) IRC Operators will be able to
751   see all local invisible users (clients connected to your own server).
752   The reason for this is to hunt for clone bots, make sure your Operators do
753   not use this "feature" for spying on individuals and respect the user that
754   wishes to be invisible (mostly meaning that they don't want to be found when
755   on certain channels).
756   Note: If you answer 'n' here, then you will also not be able to see remote
757   invisible users (if you specify 'y' you will also get a configuration
758   question that asks you to specify whether or not you want your Opers to see
759   remote invisible users or not).
760
761 Allow Opers to see all invisible users
762 SHOW_ALL_INVISIBLE_USERS
763   If you specify 'y' here, then your global IRC Operators (O:) will be able
764   to see ALL invisible users.  The reason for this is to hunt for clone bots,
765   make sure your Operators do not use this "feature" for spying on individuals
766   and respect the user that wishes to be invisible (mostly meaning that they
767   don't want to be found when on certain channels).
768
769 Allow global Opers (O:) to see inside secret channels
770 OPERS_SEE_IN_SECRET_CHANNELS
771   If you specify 'y' here, then your global IRC Operators (O:) will be able
772   to see who is on a specified, secret channel, without joining themselfs.
773   This can be needed to make a reasonable judgement in the case of a "channel
774   takeover" being reported, while the channel is set invite only.
775   See doc/readme.who for more details.
776
777 Allow local Opers (o:) to see inside secret channels
778 LOCOP_SEE_IN_SECRET_CHANNELS
779   If you specify 'y' here, then your local IRC Operators (o:) will be able
780   to see who is on a specified, secret channel, without joining themselfs.
781   This can be needed to make a reasonable judgement in the case of a "channel
782   takeover" being reported, while the channel is set invite only.
783   See doc/readme.who for more details.
784   If unsure, specify 'n'.
785
786 Don't truncate obnoxiously long /who output for opers
787 UNLIMIT_OPER_QUERY
788   A /who command can sometimes return several hundred lines of info. To
789   reduce flooding and sending too much, the output is truncated. By
790   answering 'y' to this, when an IRC Operator uses /who, the output will
791   not be truncated, no matter how much data is returned.
792
793 Allow Opers to use the KILL command
794 OPER_KILL
795   You can select 'n' if you don't think operators should be able
796   to use the KILL command, and wish to prevent your operators from
797   using it.  This will not, however, prevent operators on other
798   servers from issuing KILLs to your clients.  You probably want to
799   select 'y' for this unless you really really don't think KILL
800   should -ever- be used by an operator.
801
802 Allow Opers to use the REHASH command
803 OPER_REHASH
804   Allows operators to use the REHASH command to reload the servers
805   configuration file (ircd.conf) if you select 'n', you can still
806   reload the configuration file with a unix command,
807   kill -HUP `cat ircd.pid`.  If unsure, select 'y'.
808
809 Allow Opers to use the RESTART command
810 OPER_RESTART
811   Allows an operator to use the RESTART command to cause the server
812   to restart, using the ircd executable in SPATH.  If unsure, select 'y'.
813
814 Allow Opers to use the DIE command
815 OPER_DIE
816   Allows an operator to use the DIE command to shutdown the server
817   online.  If you select 'n' you will need to send the server a kill
818   signal to shutdown the server.  If unsure, select 'y'.
819
820 Allow Opers to add local G-lines
821 OPER_LGLINE
822   Allows operators to add local G-lines with the GLINE command.  This is
823   like a *local* KILL, except that the user being killed can't immediately
824   reconnect: He will have to wait for the G-line to expire.
825   The reason for adding this is that a KILL is rather useless for removing
826   (or 'warning') abusers (it is still THE command to remove ghosts and
827   a-like, the reason KILL was added in the first place).  However, adding
828   G-lines for a dynamic IP with expire times larger then 10 minutes is highly
829   discouraged: The user will already have dialed in via another IP or account
830   and the G-line would only harm other, innocent, users.
831
832 Allow Opers to connect from a remote site
833 OPER_REMOTE
834   If you select 'n' for this, clients must be on the 'same network' as
835   the server in order to gain oper privledges.  If you're not sure, just
836   select 'y'.
837
838 Allow local opers to use the REHASH command
839 LOCOP_REHASH
840   Allows a local operator (defined by a lowercase o:line in ircd.conf)
841   to cause the server to reload its configuration file (ircd.conf) with
842   the REHASH command.  If unsure, select 'n'.
843
844 Allow local opers to use the RESTART command
845 LOCOP_RESTART
846   Allows a local operator (defined by a lowercase o:line in ircd.conf)
847   to use the RESTART command.  If unsure, select 'n'.
848
849 Allow local opers to use the DIE command
850 LOCOP_DIE
851   Allows a local operator (defined by a lowercase o:line in ircd.conf)
852   to use the DIE command.  If unsure, select 'n'.
853
854 Allow local opers to add local G-lines
855 LOCOP_LGLINE
856   Allows a local operator (defined by a lowercase o:line in ircd.conf)
857   to add local G-lines with the GLINE command.  This is like a *local* KILL,
858   except that the user being killed can't immediately reconnect: He will
859   have to wait for the G-line to expire.
860
861 Do you want to have a default LIST parameter
862 CONFIG_LIST
863   Pre-Undernet, the LIST command could either be given with one channel
864   name, or without any parameter.  In the last case it would simply list
865   all channels.  In time the IRC networks grew big, until the output of
866   the LIST command always filled up the sendQ of the client (and dis-
867   connected it).  This was fixed by Carlo Wood (Run@IRC) on request of a
868   Dutch ISP whose users complained about this:  The LIST output is now
869   generated in small chunks, generating more each time when there is room
870   in the clients sendQ.  However, then it turned out that LIST (now it
871   worked) used 50% of all cpu (not even mentioning the bandwidth)...
872   This was unacceptable and the mentioned patch was disabled.  On the
873   other hand we wanted LIST to work at least partly, so a few new
874   parameters have been added to LIST: <,>,C<,C>,T<,T> each followed by
875   a number they filter respectively the number of users on the channel,
876   the creation time of the channel (or age, depended on the value of
877   the number) and the topic set time.
878   If you specify 'y' here, then each time a "/LIST" (without parameter)
879   is issued by a client, a default parameter is used.  Note that when
880   a parameter is used, the client can still max. sendq out - the send
881   flood control only works without any parameter.
882   If you specify 'n' here then a "/LIST" without parameters will list
883   all channels (and work), but as just said: it uses a LOT of cpu and
884   bandwidth on a large net.work.
885   If you specify 'y' you will be prompted for the default parameter.
886
887 Give default LIST parameter
888 DEFAULT_LIST
889   Here you need to specify the default LIST parameter which is used
890   when the server receives a LIST without any parameter.
891   You should use something that limits the output to a maximum of a
892   few hundred channels; for instance "T<10" (topic is set less then
893   10 seconds ago) or ">10" (more then 10 users on the channel) or even
894   a combination of this.  Note that you should not include quotes here.
895
896 K: line comments treated as a file
897 COMMENT_IS_FILE
898   If you specify 'y' here, then K: line comments (see doc/example.conf
899   for more details on the K: line syntax) will be treated as a filename
900   by default. The file needs to exist and will be written to clients
901   that match that K: line.
902   If you specify 'n' here, then K: line comments will be treated as
903   a comments by default.
904   In both cases you can override the default by prepending a filename
905   with a '!' or enclose a comment between double quotes.
906   If unsure, use the default.
907
908 Only nullify idle-time on PRIVMSG
909 IDLE_FROM_MSG
910   The IRC command WHOIS gives an idle time for clients.  If you want that
911   this idle time is set to zero only when the clients send a PRIVMSG,
912   then you should specify a 'y' here.
913   If you specify a 'n' then the idle time will be nullified on all messages
914   except the server PING/PONG.
915
916 Check clone limit (2!)
917 CHECK_CLONE_LIMIT
918   Set this to 2.
919
920 Check clone period (20!)
921 CHECK_CLONE_PERIOD
922   Set this to 20.
923
924 Check clone delay (600!)
925 CHECK_CLONE_DELAY
926   Set this to 600.
927
928 Max auto connects per class (1!)
929 MAXIMUM_LINKS
930   Set this to 1.
931
932 Enable message logging
933 MSGLOG_ENABLED
934   Define this if you want the server to log received messages in static memory
935   at parsing time.  -This is for debugging purposes only-.  You might want to
936   redefine LOG_MASK_TYPE in s_debug.h and LOG_MASK_LEVEL in s_debug.c too.
937   The default is to log all messages that change some status in server's data
938   structures.  Select 'n' unless you are debugging the server code.
939   DO NOT SELECT THIS ON PRODUCTION SERVERS!
940
941 Message log size
942 MSGLOG_SIZE
943   Number of messages to log. Keep this low as raising it to 1024 will use 800k
944   of _static_ memory! Recommended value is 128. You must include this even if
945   you selected 'n' for MSGLOG_ENABLED.
946
947 Only allow KILLs of local clients
948 LOCAL_KILL_ONLY
949   This only allows operators of this server to KILL clients directly connected
950   to this server.  Operators will not be able to issue KILLs for clients on
951   other servers.  Some networks (not Undernet) require that this be defined
952   for newly linking servers, but if you haven't been told to do otherwise,
953   specify 'n' here.
954
955 Max server idle time (60)
956 TIMESEC
957   This is the maximum idle time for the server. If no messages are received
958   in TIMSEC seconds, PINGFREQUENCY and CONNECTFREQUENCY are checked.
959   Recommended value is 60 seconds.
960
961 KILL nick chase time limit (30)
962 KILLCHASETIMELIMIT
963   This is the maximum amount of time a KILL command will automatically change
964   to the current nick of a user that has just changed nicks from the one given
965   with the original KILL.  Don't change this unless you really need to.
966
967 Max number of channels per user (recommended: 5)
968 MAXCHANNELSPERUSER
969   This is the maximum number of channels a user can be in at a time.
970   The "mandatory" value on Undernet is currently 10.  Since it only
971   influences the local server when you decrease it, its up to you to decide
972   if you want to use a smaller value.  Do not use a larger value however,
973   because it DOES cost more memory and bandwidth on all other servers
974   when you allow users to join more channels simultaneously.
975   One of the most important reasons to choose a smaller value is the fact
976   that the now-a-days 'GUI' clients tend to stay on every channel they
977   join (they aren't bothered by flooding in other channels).  It DOES take
978   your bandwidth however to send all those messages for 10 different
979   channels to all your users.
980
981 Max number of silence masks (15!)
982 MAXSILES
983   This is the maximum number of masks a user can silence at a time.
984   The silence command allows users to filter messages directed at them
985   from certain users or domains, at the source server.  Increasing this
986   number allows users to use up more memory with inefficient use of the
987   command.  If your not sure, don't change this.
988
989 Expected average banmask length (40!)
990 AVBANLEN
991   This is the expected average banmask length.  Leave it at 40.
992
993 Use .config of THIS source tree as your upgrade default
994 CONFIG_NEW
995   Each source tree keeps its *own* config/.config file with the default
996   values for all questions (those that you gave the last time you did a
997   'make config').  Whenever you do 'make config' again in this source tree,
998   you will get these defaults.
999   However, when you *upgrade* to a new version (and get a NEW source tree),
1000   it doesn't have a .config yet and will (try to) use a .config of one of
1001   your previous source trees.
1002   If you specify 'y' here, then the last defaults of THIS source tree will
1003   be used in your next upgrade.  Note that any changes you make later to
1004   config/.config (by running 'make config' again) will also take effect
1005   on this later upgrade.
1006   You can always change this by making a new hard link from .config ->
1007   ircu2.10.xx/config/.config in the directory where you keep the source
1008   trees.
1009   If unsure, and you are not currently installing a test source tree,
1010   specify 'y'.  If this is a second source tree that you will only be
1011   experimenting with, specify 'n'.
1012
1013 Class 0 ping frequency (120)
1014 PINGFREQUENCY
1015   If the daemon doesn't receive anything from any of its links within
1016   PINGFREQUENCY seconds, then the it will attempt to check for an active link
1017   with a PING message.  If no reply is received within (PINGFREQUENCY * 2)
1018   seconds, then the connection will be closed.  This value is overridden by
1019   a Y:line in "ircd.conf" if the connections I/C/N: line in "ircd.conf" assigns
1020   a specific class to the connection (recommended).
1021
1022 Class 0 connect frequency (600)
1023 CONNECTFREQUENCY
1024   This is the default frequency that the server attempts to reconnect with
1025   its uplink server if it is set to auto connect to it. Note that this value
1026   is overridden by a Y:line in ircd.conf if the C/N:lines in ircd.conf
1027   assigns a specific class to the connection (recommended).
1028
1029 Min time before a link is good (300)
1030 HANGONGOODLINK
1031   Often the net breaks for a short time and its useful to reestablish the
1032   same connection faster than CONNECTFREQUENCY would allow, but to keep
1033   from trying again on a bad connection, we require that the connection be
1034   open for a certain minimum time. The recommended value is 300 seconds.
1035
1036 Wait before reconnecting to good link (10!)
1037 HANGONRETRYDELAY
1038   When attempting to quickly reestablish a connection to a good link, we
1039   give the net a few seconds to steady. This time must be long enough for
1040   the other end to notice it broke too. The recommended value is 10 seconds.
1041
1042 connect(2) timeout (90!)
1043 CONNECTTIMEOUT
1044   Number of seconds to wait for a connect(2) call to complete.  NOTE: this
1045   must be at *LEAST* 10.  When a client connects, it has CONNECTTIMEOUT - 10
1046   seconds for its host to respond to an ident lookup query and for a DNS
1047   lookup to complete. It is recommended you don't change this value, but if
1048   you do, consider the fact that users whose clients do not support NOSPOOF
1049   will have to type /QUOTE PING <big number> before registration.
1050
1051 Max send queue (40000)
1052 DEFAULTMAXSENDQLENGTH
1053   This is the default value of the "max. sendq length" of Y: line classes
1054   (see doc/example.conf for details on Y: lines).  You will probably
1055   always override this value in your "ircd.conf" with the Y: lines.
1056   The given value used to be an often used value for client sendqs.
1057
1058 Use new MODE implementation
1059 CONFIG_NEW_MODE
1060   This enables a new implementation of m_mode.  THIS IS AN EXPERIMENTAL
1061   FEATURE; DO NOT ENABLE UNLESS YOU KNOW WHAT YOU ARE DOING!  Note that,
1062   due to apparent stability, this new implementation has been enabled.
1063
1064 Use new oper commands (JUPE, CLEARMODE, OPMODE, GLINE)
1065 CONFIG_OPERCMDS
1066   Several new oper-only commands were added to the server source
1067   during the Uworld integration project.  Until all servers are
1068   upgraded to versions that understand the new server<->server
1069   traffic, they must remain disabled, however.  This option activates
1070   the client-side part of those changes.