+++ /dev/null
-# Format of this file: description<nl>variable<nl>helptext<nl><nl>.
-# If the question being documented is of type "choice", we list
-# only the first occurring config variable. The help texts
-# must not contain empty lines. No variable should occur twice; if it
-# does, only the first occurrence will be used by Configure. The lines
-# in a help text should be indented two positions. Lines starting with
-# `#' are ignored. Limit your lines to 78 characters.
-#
-# If you add a help text to this file, please try to be as gentle as
-# possible. Don't use unexplained acronyms and generally write for the
-# hypothetical admin who has just downloaded ircu for the first time.
-# Tell them what to do if they're unsure. Technical information
-# should go in a README in the Documentation directory. Mention all
-# the relevant READMEs and HOWTOs in the help text.
-#
-# All this was shamelessly stolen from several different sources. Many
-# thanks to all the contributors. The texts are copyrighted # (c) 1997
-# by Carlo Wood and governed by the GNU Public License.
-#
-
-Do you want to change your previous configuration
-CHANGE_CONFIG
- You will be presented a series of questions that you have to answer
- in order to configure the IRC daemon, prior to compilation.
- If you went through this before, then your choices have been stored
- in a file '.config'. If you want to use the same stored configuration
- now, specify 'n'; this will quickly skip through all questions that
- you already answered previously, only prompting you for NEW questions.
- Note that NEW questions only can occur when you just upgraded to a
- new version. Note also that if you abort by pressing ^C (control-C)
- anywhere, then all answers are lost; you must finish it before the
- answers are stored.
- Pressing a 'c' or 'C' (followed by a return) on any question will
- Continue the script in "use_defaults mode", that means that it will
- take all default values unless it finds a NEW question (like when you
- specify a 'n' here). 'C' will finish everything, but a 'c' will
- only finish the current paragraph.
- If you are unsure, or if you want to change a previously entered
- configuration, specify 'y'.
-
-Which compiler do you want to use
-CC
- Here you need to specify the C compiler you want to use.
- Using 'gcc' is highly recommended, you might even want to install it
- on your machine first. Note that you can specify the full path if you
- are not sure if the compiler is in your PATH (or whether or not the right
- compiler will be used). An example is: "/usr/ucb/cc".
- The package needs an ANSI compiler. Some compilers need an extra option
- to compile ANSI C. In those cases you can add these options also here.
- For example, on a HPUX-8.x you would use (if you don't have gcc):
- "cc -Aa -D_HPUX_SOURCE".
- Note that you should not use quotes.
-
-What flags should I pass to $CC
-CFLAGS
- These are the compiler flags, used for CC when compiling.
- If you are not using gcc, it might be possible that your compiler is not
- supporting -g and -O at the same time. The -g option is necessary to be
- able to debug the daemon in the case it contains a bug that makes the
- ircd core dump. Unless you use a version that is proven to be VERY stable,
- it is highly recommended to use this option. All Undernet production servers
- are expected to use it in order to help coder-com to track down bugs.
- The -O3 will optimize the code - it also makes debugging harder.
- If you have plenty of cpu cycles then you can use -O2 instead of -O3:
- it will disable inlining which makes it easier to debug or core dump,
- the daemon will use a few percent more cpu however.
- If you are not running a production server you should remove the -Ox.
- Ircd developers can optionally use more options to turn on extra warnings.
- Developers (which are using gcc of course ;), should use:
- "-g -Wall -pedantic -DGODMODE"
- Note that you should not use quotes.
- Note that the server uses several non-ANSI (though POSIX.1) function calls.
-
-Do you need extra include directories
-EXTRA_INCLUDEDIRS
- If your compiler needs extra include directories, you can specify them
- here as a space separated list of directories. Do not use quotes and do
- not specify the '-I' prefix. Usually you don't have to specify any
- extra include directory, in that case you should specify "none" here.
- If unsure, try "none" (without quotes) and see if all the '#include'
- header files are found during compilation.
-
-Which linker flags do you need
-LDFLAGS
- Here you can specify extra flags that will be passed to the linker.
- Usually you will not need to pass any flags and you can therefore
- specify "none" here (without the quotes).
- SunOS users may want to add "-Bstatic" (but only if you need it).
- You can also specify any "-L..." flags here if you need those for
- extra libraries.
-
-Which extra libraries do you need
-IRCDLIBS
- Some Operating Systems need linking with extra libraries for some of the
- functions used by the daemon. In some cases, it is not known which
- libraries are needed, even when the Operating System is known. This is
- for instance the case with SunOS, some need -lresolv, while others don't.
- If you forget to add a library then this will result in 'undefined variables'
- during linking. If you do not know which library to add, it might be
- helpful to use the unix command `nm', which lists the variables of a
- library. For instance, if you get "unknown variable '_res_mkquery'", and you
- wonder if this is in /usr/lib/libresolv.so, you can do:
- nm /usr/lib/libresolv.so | grep res_mkquery
- Do not use the leading '_' in the grep, this underscore is added by the
- assembler but is not part of the original variable name and does not show
- up in the output of nm.
- Most libraries are in /lib or /usr/lib, which are scanned by default. In
- some cases you will need to tell the linker where to search for a library.
- You can do this by adding an -L... option to IRCDLIBS. For instance:
- "-L/usr/ucblib -lucb" will look for 'libucb.so' in /usr/ucblib too.
- Here is a list of what you MAYBE need to specify depending on your
- Operating System:
- OS Specify here
- NeXT != 2.0 -lsys_s
- Dynix/ptx -lsocket -linet -lnsl -lseq
- Dell SVR4 -lsocket -lnsl -lucb
- All others Default provided by autoconf
- If unsure use the default provided by autoconf.
-
-Where should I install the ircd binary
-BINDIR
- After compilation (by typing 'make'), you can install the server with
- the command 'make install'. This will install the ircd in the directory
- you specify here. The package tries to use a meaningful name by naming
- the binary "ircd.<tag>", where <tag> is the name of the last patch that
- was applied by the maintainer. A symbolic link (to be specified next)
- will be used to point to this binary. This allows a /RESTART to
- immediately start the new version, while keeping the old binary.
- Note that you need to have write permissions in this directory during
- the install. Please re-check the permissions/owner and group after
- installation.
-
-What should the name of the installed symbolic link to the executable be
-SYMLINK
- 'make install' installs the binary with an unique name, however it makes
- a symbolic link to this newly installed executable which always has the
- same name, so you can use /RESTART and/or use this name in scripts that
- automatically restart the ircd after a reboot or crash.
- Here you can specify the name of that symbolic link. Note that it may
- not contain a '/'; it is just the name if the symbolic link and will be
- installed in BINDIR.
-
-Which permissions do you want the binary to have
-IRCDMODE
- Here you need to specify the octal file mode of the ircd binary.
- Recommended is 711 - but you might need setuid or something.
- Note that using a setuid and starting the daemon as another user
- does prohibit the daemon from core dumping in case of a crash on some
- Operating Systems.
-
-Which owner do you want the binary to have
-IRCDOWN
-This will be the owner of the ircd binary after installation.
-
-Which group do you want the binary to have
-IRCDGRP
-This will be the group of the ircd binary after installation.
-
-Where should I install the man page
-MANDIR
- This is the base directory where the manual page of the ircd is installed.
- If you are not root on your system, you can change it to your personal
- manpath directory (which of course should be in your MANPATH environment
- variable then).
-
-Use inlining for a few crucial functions
-FORCEINLINE
- This will increases the size of the executable with 7 kb, but it also
- speeds up execution a bit :). Your compiler needs to understand the
- keyword __inline__ (GNU gcc and egcs do).
- If unsure, try if `y' compiles. If it doesn't, you can try using a
- C++ compiler (ie, configure CC to be 'g++' instead 'gcc').
-
-You have poll(), but do you want to use it
-USE_POLL
- Some Operating Systems implement select() by calling poll(), others
- implement poll() by calling select(). The best performance will be
- achieved by calling the lowest (sys)call ourselves of course.
- The Undernet Daemon allows you to use select() or poll().
- If you specify 'y' here, the daemon will use poll() directly, otherwise
- it will use select(). If you don't know what your Operating System
- uses as syscall, you can compile the server with USE_POLL and detach
- the running process with 'strace -p <pid>', 'truss -p <pid>' or
- 'trace -p <pid>' depending on your Operating System, these UNIX commands
- will show you the syscalls and therefore show if you use poll() or select().
- The advantage of using poll() is that you are not bothered by the limits
- of select() and fd_set size (ie, the number of clients that connect).
- The following Operating Systems seem to use poll():
- Solaris 2.x, SunOS 4.x, AIX, Digital UNIX, and NetBSD.
- linux-2.2.x use poll(), but only of your glibc was compiled with that
- kernel (and it won't unless you compile it yourself).
- The following Operating Systems use select():
- linux-2.0.x.
- If unsure, test it (a ./configure check will be added in ircu2.10.06).
-
-What is the domain name of your network
-DOMAINNAME
- This define allows you to specify what you consider to be 'local'.
- It is only used for statistics. When you issue the IRC command /stats w,
- the server will respond with statistics of how many clients have been
- connecting to your server in the last minute, hour and day. It will
- give these statistics for all connections (including the servers), all
- clients (from anywhere) and also for clients whose hostname ends on
- the domain you specify here. So if you are an ISP and you want to know
- specifically the client load from your own domain, specify that domain
- here. If you are unsure what to do, then it isn't really important what
- you give here, just don't give an empty string. A good guess is the last
- two parts of your own hostname (ie, if your hostname is foo.bar.nowhere.org,
- specify 'nowhere.org'). Note that the string you give should NOT start
- with a '.' and you should not use quotes.
-
-Please give a random seed of eight characters
-RANDOM_SEED
- You should specify exactly eight characters (0-9A-Za-z) here. Do not use
- quotes or any other special characters. This value is used to initialize
- the random generator of the server which is used to generate PING/PONG
- cookies in order to stop spoofing IP-numbers (a PING with a random number is
- sent to this IP-number and if the client doesn't respond with the
- exact same number, access is denied). In order to make the random
- number impossible to guess, it is important that you use your own random
- seed here.
-
-Does your host have a reliable clock
-RELIABLE_CLOCK
- You should really ONLY specify 'y' here when your system clock is
- stable and accurate at all times (within a few seconds).
- If you are running ntpdate on a regular basis, or an equivalent
- like xntpd, to keep your system clock synchronized over the network,
- then you might have an accurate clock. However, this is not guaranteed,
- for example, it is known that xntpd gives unstable results on linux
- in some cases. Note that an unstable clock is worse then an clock that
- has a constant offset, because the servers attempt to correct for a
- constant offset, but do not correct jumps of your system clock !
- In general you SHOULD be running ntpdate or equivalent AND make sure it
- works when you run a production server on Undernet. Otherwise leave
- your clock alone and specify 'n' here.
- If unsure specify 'n' !
-
-Change root (/) after start of daemon
-CHROOTDIR
- If you are a security freak and you want to the daemon to run in
- its own environment, then you can specify 'y' here. The daemon will
- change '/' to 'DPATH' (which you will have to specify later).
- If this confuses you or if you are uncertain, specify 'n'.
-
-Do you want the daemon set its own uid/gid
-CONFIG_SETUGID
- If you specify 'y' here, then the daemon will attempt to set its
- User ID (uid) and Group ID (gid) to the numeric values that you will
- have to specify next. This only makes sense if you (have to) start
- the server as root. The most secure operation of the server is to
- not use setuid stuff (here or by means of setting the file mode)
- and to run the server as a special user only (ie 'irc'). Of course
- this user must have access to all log and configuration files.
- Note that using a setuid and starting the daemon as another user
- does prohibit the daemon from core dumping in case of a crash on some
- Operating Systems.
- This option is actually only necessary when you use the Change Root
- option, because otherwise you can use the file mode to set the uid
- and gid. Note that the server refuses to run as root.
- If unsure, specify 'n'.
-
-UID of irc daemon
-IRC_UID
- Ok, if you insist on using this option: Here you must specify the
- numeric value of the uid that you want the server to run as.
- Note that you need to look in the right /etc/passwd file, which isn't
- the same file when you used the Change Root option.
-
-GID of irc daemon
-IRC_GID
- Ok, if you insist on using this option: Here you must specify the
- numeric value of the gid that you want the server to run as.
- Note that you need to look in the right /etc/group file, which isn't
- the same file when you used the Change Root option.
-
-Allow to specify configuration file on command line
-CMDLINE_CONFIG
- If you specify 'y' here, you will be allowed to specify the ircd.conf
- path (the ircd daemon configuration file) on the command line when
- starting the daemon (with the -f <ircd.conf file> option).
- Note that defining this and installing ircd SUID or SGID is a MAJOR
- security problem - they can use the '-f' option to read any files
- that the 'new' access lets them. Note also that defining this is
- a major security hole if other users have accounts on the same machine;
- when your ircd goes down and some other user starts up the server with
- a new conf file that has some extra O-lines. So don't use this unless
- you're debugging.
-
-Set up a Unix domain socket to connect clients/servers
-UNIXPORT
- If there are lots of users having an account on the same machine
- (which is very unlikely because the server needs all cpu ;), then
- using a UNIX domain socket to connect these clients to is more
- efficient then letting them connect via TCP/IP. A UNIX domain
- socket is a special device that will be created in your File System.
- Your client must also support connecting to a UNIX domain socket.
- The name of the special device must be specified in the "ircd.conf"
- file by means of an extra 'P: line', see doc/example.conf for the
- syntax.
- If you don't have many IRC-ing users on the same host as the server,
- or when your local IRC client doesn't support UNIX domain sockets,
- specify 'n' here. Otherwise specify 'y'.
-
-Do you need virtual hosting
-VIRTUAL_HOST
- This is only needed when you want to run two or more servers on the
- same machine and on the same port (but different devices).
- In general you will only need this if you have at least two ethernet
- cards in your machine with a different IP-number.
- If you specify 'y' here, then you can "bind" a server to one of your
- interfaces. You should use the command line option '-w' to tell the
- server to which interface to bind to. No error is reported if this
- fails, the server will simply not run.
- If no '-w' option is given then the server name specified in the
- 'M: line' of the "ircd.conf" file of the server is used, provided it
- resolves to an IP-number of one of your interfaces. Note that
- normally the name does not have to resolve, but when you define this,
- it MUST resolve or you must use the -w command line option, or the
- "bind" will fail.
- If you are unsure, specify 'n'.
-
-Will you connect to more then one server at a time
-HUB
- All servers of one IRC "network" are connected in a "tree" (no loops).
- Servers that are only connected to one other server (called the
- 'uplink') are called "leafs", servers that are connected to more then
- one other server are called HUBs.
- If you specify 'n' here then your server will prevent itself from acciden-
- tally connecting to two servers at once, which is good because this is
- generally bad for servers in "leaf" positions (they are net.wise located
- too bad to route traffic). Note that on Undernet all newly linked servers
- are linked as leafs during their test phase, and should specify 'n' here.
-
-Send a short message instead of the MOTD to connecting clients
-NODEFAULTMOTD
- Every time a client connects to your server, the full Message Of
- The Day (as specified in its file MPATH) is sent to the client.
- Even while many clients allow the user to ignore the message of
- the day: the server still sends it. Many users never read the
- message of the day anyway, making it a huge waste of bandwidth.
- If you specify 'y' here than the server won't send the MOTD by
- default to the client, but rather tell the client when the MOTD
- was last changed and how to receive the MOTD by typing /MOTD.
- If unsure specify 'n'.
-
-Do you want to enable debugging output
-DEBUGMODE
- Sometimes things just don't work. This doesn't have to be a crash,
- but it is also possible that your server just doesn't want to start
- at all, or disallows clients to connect at all, etc.
- With all such drastic and REPRODUCIBLE problems, it makes sense to
- recompile the server with this option set and then running the
- ircd (irc daemon) with the (extra) command line options: -t -x9
- This will make the server run in the foreground and write debug output
- to the terminal; in a lot of cases this can give a clue on what is
- wrong (although more often it doesn't).
- Because defining DEBUGMODE uses a LOT of cpu and is never useful
- unless you are debugging a reproducible test case, you should never
- specify 'y' here except for the reason just mentioned.
- You should certainly NEVER specify 'y' for a server that runs on a
- production net.
-
-Do you want memory- allocation and/or leak checking
-DEBUGMALLOC
- If you specify 'y' here, then the server will start to do book keeping
- on the allocated memory blocks. This uses extra cpu and memory,
- so normally you do not want this - unless you are debugging.
- This option uses 8 bytes extra per allocated memory block.
- The main purpose of this option is to check if a call to free(2) is done
- with a valid pointer - if the pointer was not previously returned by
- malloc(2), calloc(2) or realloc(2), the server will core dump in a place
- that allows the maintainer to get an idea of what went wrong - but only
- when the server was compiled with the -g flag of course.
- You also need to specify 'y' here if you want to search for memory leaks.
- On a production server, specify 'n' - unless you have lots of cpu to
- spare and you volunteer to search for memory leaks - contact the
- maintainer in this case.
- If unsure, specify 'n'.
-
-Do you want to have boundary checking
-MEMMAGICNUMS
- One of the most nasty bugs are those where buffer overruns are involved.
- In an attempt to catch those in an early stage, this option will add
- so called "magic numbers" to the beginning and end of each allocated
- memory block. When a block is freed or reallocated, the magic numbers
- are checked and the server core dumps when they were corrupted.
- This option uses 12 bytes extra per allocated memory block.
- It doesn't really use much extra cpu compared to defining DEBUGMALLOC, so
- you might as well specify 'y' here, just in case. It only makes sense
- though if you compiled the server with compiler option '-g'.
- If unsure, specify 'n'.
-
-Do you want memory leak testing (stats M)
-MEMLEAKSTATS
- If you specify 'y' here then the server will start to do extra book keeping
- on the allocated memory blocks, counting the number of currently allocated
- blocks per source code location (file and line number). You will be able
- to retrieve these statistics with the command /stats M.
- When there is a memory leak, then allocated memory blocks that were allocated
- under certain conditions are never freed (however the contents of those
- memory blocks are never used anymore); this would result in a (slow?)
- increase of the count of allocated memory blocks. This option allows to
- find where these blocks were allocated which might give a clue on the memory
- leak problem.
- This option uses 4 bytes extra per allocated memory block.
- If you want to look for memory leaks, specify 'y' - otherwise specify 'n'.
-
-Do you want extra info on allocated sizes
-MEMSIZESTATS
- If you specify 'y' here then the server will start to do extra book keeping
- on the sizes of the allocated memory blocks. /stats M will not only return
- the number of allocated blocks, but also the total number of allocated
- bytes involved. If you defined MEMLEAKSTATS to look for memory leaks, it
- will give the total number of allocated memory per source code location
- (file and line number).
- This option uses 4 bytes extra per allocated memory block, unless you already
- specified 'y' for MEMMAGICNUMS (boundary checking), because in that case
- it was already included (and it doesn't matter what you specify here).
- I think you should specify 'y' here, its more fun to see the sizes :).
-
-Do you want support for a time interval with /stats M
-MEMTIMESTATS
- If you specify 'y' here then the server will start to do extra book keeping
- on the allocated memory blocks, storing the time at which the memory block
- was allocated. This especially slows down /stats M (but unless you use
- that command frequently, it shouldn't really matter) and uses again 4 bytes
- of extra memory per allocated memory block.
- This option is especially useful if you are looking for memory leaks
- because it allows you to specify a time window with /stats M for which
- counted blocks must be returned. This allows to ignore recently allocated
- blocks and permanently allocated blocks (since the start of the server).
-
-Are you testing on a host without DNS
-NODNS
- If you are playing with the server off-line, and no DNS is available, then
- long delays occur before the server starts up because it tries to resolv
- the name given on the M:line (which usually isn't given in /etc/hosts) and
- for each connecting client.
- If you specify 'y' here, then a call to gethostbyname() will be done only
- for the real hostname, and the server will not try to resolv clients that
- connect to `localhost'.
- Note that other calls to gethostbyname() are still done anyway if you
- use VIRTUAL_HOST and that the server still tries to resolv clients
- that connect to the real IP-number of the server.
-
-Directory where all ircd stuff sits
-DPATH
- DPATH is provided so that the other path names may be provided in just
- filename form. It is the Default PATH. When the server starts, it
- chdir's to DPATH before chroot or any other file operation, making
- it the "current directory" for the server. This is where core files
- will go if the server core dumps.
- Note that you should not include quotes here.
- Note also that the command line option "-d <dir>" overrides the DPATH
- you give here, except for the chroot (if you use that).
-
-Server configuration file
-CPATH
- This is the IRC daemon Configuration filename, mostly called "ircd.conf".
- If you just specify the filename, the server will read its configuration
- file from the Default Path "DPATH", which you specified above. However,
- you are also allowed to specify a full path.
- Note that you should not include quotes here.
-
-Server MOTD file
-MPATH
- MPATH is the filename, relative to DPATH, or the full path, of the
- "Message Of The Day" file; mostly called "ircd.motd". The contents
- of this file will be sent to every client that connects to the server,
- after registration.
- Note that you should not include quotes here.
-
-Server remote MOTD file (3 lines max)
-RPATH
- RPATH is the filename, relative to DPATH, or the full path, of the
- "Remote Message Of The Day" file; mostly called "remote.motd". The
- contents of this file will be sent to every remote client that issues
- a /MOTD <your server name>. Only the first three lines are sent, so
- you might want to keep it that short ;).
- Note that you should not include quotes here.
-
-File for server pid
-PPATH
- PPATH is the filename, relative to DPATH, or the full path, of the
- "PID file", mostly called "ircd.pid". It is used for storing the
- server's PID so a ps(1) isn't necessary.
- Note that you should not include quotes here.
-
-Use crypted passwords for operators
-CRYPT_OPER_PASSWORD
- In order to allow certain users to become IRC OPERators, they must
- authenticate themselves with a password. This password is matched
- against an 'O: line' in the "ircd.conf" configuration file, see
- doc/example.conf for more details. If you specify 'y' here, you are
- allowed to use the DES encrypted form of these passwords in your
- "ircd.conf" file (even more, your Opers don't have to tell you their
- real password, they can provide the DES encrypted form themselves).
- Since it has happened often in the past that the "ircd.conf" file
- was compromised somehow, you are highly encouraged to specify 'y' here
- and use the DES encrypted form. You can find a program 'mkpasswd' in
- the ircd/crypt directory that will allow you to generate the encrypted
- form.
-
-Max size of the total of of all sendqs (bytes)
-BUFFERPOOL
- This specifies the maximum amount of RAM that your server will allocate
- for buffering sendQ's. Small leafs can use a value as little as 1000000,
- while large HUBs need to specify a value as high as 20000000.
- If you run out of memory, clients and/or servers are dropped with the
- error "Buffer allocation error". Then you will have to up this number
- (and install more RAM if appropriate).
- If you want a more educated guess for this value then realize that any
- value is good if you _really_ rather want to drop servers and clients
- then allocate more memory; this will be the case when there is the
- danger to run out memory for other allocations.
- Even if you run the daemon on a dedicated machine, then specifying the
- maximum of the RAM you have is a Bad Thing because really running out
- of memory is a lot worse then dropping clients in a controlled way:
- if possible you should have memory left for all the internal structures
- (channels, clients, banlists, receive buffers) at all times.
- On average, clients seem to use 150 bytes of sendQ, but at peak moments
- this can easily increase to 2032 bytes per client (sendQs are allocated
- in chunks of 2032 bytes).
- The maximum possible ammount that can be allocated for sendQs is the
- number of connected clients times whatever you specified as maximum
- sendQ in your Y: lines in the ircd.conf file. Likely, that value will
- be larger then the ammount of RAM you have.
- The educated guess I talked about earlier would be 'number of clients'
- times * 2048 bytes + 'size of net.burst' * n, where `n' is 1 for leafs
- and up till 5 for HUB's. The 'size of net.burst' is about 125 bytes
- per online client (on the total network).
- For large HUBs with 4000 clients on undernet (30,000 users), this results
- in 27 Mb. Leafs could use 12 Mb. Of course you can use less when you
- have less than 4000 local clients.
- Don't forget to specify this value in bytes.
-
-Aggressively empty the sendqpool (Read Help!)
-HAS_FERGUSON_FLUSHER
- Instead of dropping clients with 'Buffer Allocation Error', try to send
- data to clients to try and drop the sendq buffer size as a last resort
- before dropping clients. This doesn't get rid of the problem, it just
- tries hard to limit it's impact.
- WARNING: *THIS PANICS UNCONFIGURED FREEBSD MACHINES*, make sure you've
- read doc/freebsd.txt before enabling this feature on a FreeBSD machine.
-
-Max receive queue for clients (bytes)
-CLIENT_FLOOD
- Currently, everything that a client sends to a server is read by the server
- and stored in a buffer (the clients receive queue). The server will
- process messages from this queue one by one (running over all clients
- each time). When a client sends new messages faster they get processed,
- and the size of its receive buffer reaches this value, the client is
- dropped with the error "Excess flood". A reasonable value is 1024 bytes.
- The maximum size is 8000 bytes.
-
-Maximum number of network connections (23 - (FD_SETSIZE-4))
-MAXCONNECTIONS
- This specifies the maximum number of network connections the server
- will use. You also need some non-network connects (log files etc), so
- the maximum value is "FD_SETSIZE-4". The minimum value is 23.
- The only benefit of using a small value is that your server uses less
- memory - but *only* when you really have a small (client) load.
- Routing server that hardly take clients can use 128 here for instance.
- Servers that are always full should just specify the maximum amount
- that still works (which might be less then FD_SETSIZE-4, some OS need
- kernel hacking to allow more then 1024 fds per process). The only max.
- value that is guaranteed to work is 252 ;). Note that if the value of
- FD_SETSIZE is for instance 1024, then that doesn't mean you can't
- connect MORE clients - but in this case you certainly need kernel
- hacking. Find an experienced admin with the same Operating System and
- ask him what the maximum is and how to achieve it.
-
-Nickname history length
-NICKNAMEHISTORYLENGTH
- This value specifies the length of the nick name history list, which
- is only used for /WHOWAS. It uses about 300 to 400 bytes per entry.
- Note that at a net.break so many client disappear that the whole
- "whowas" list refreshed a few times (unless you make it as big as
- 20,000 of course - but you shouldn't because thats a waste of ram
- and cpu). A reasonable value is 'total number of clients' / 25.
-
-Allow Opers to see (dis)connects of local clients
-ALLOW_SNO_CONNEXIT
- If you specify 'y' here, you will be allowed to see all client connects and
- disconnects as a server notice. The historical reason for adding this
- option was to detect clone bots that connected to your server. However,
- on a large IRC network like Undernet, the number of clients that connect
- are so huge that it is not possible to keep an eye on this and everyone
- has been filtering these notices out anyway. Next to that it turned out
- to use no less then 10% of the total cpu usage last time I measured it
- (this has been improved after that, but still).
- Unless you insist on seeing those notices you should specify 'n' here.
- Note that in the meantime Undernet has a LOT of other (semi- and fully-
- automated) ways to detect clone bots, which work a LOT better for this
- purpose.
-
-Show IP address in client connection notices
-SNO_CONNEXIT_IP
- Usually when showing a client connection, a nick, userid and hostname are
- displayed. Selecting 'y' here will also display the numeric IP and connection
- class of the connecting client. This can be useful for detecting spoofed DNS and
- virtual hosted clones. This does use extra CPU though and is generally not needed,
- however if a connection monitor bot is the only client that looks at these
- notices, it is more efficient than sending USERIP for every connection. This
- option makes the server compatible with Hybrid tcm bots.
-
-Do you want to use R: lines in your configuration file
-R_LINES
- If you specify 'y' here you will be allowed to use R:lines in the "ircd.conf".
- This allows more freedom in restricting connections to your server by
- calling an external program to determine whether to allow the connection.
- It also uses a lot of overhead however, and can bog things down, so you should
- consider whether you really need them, and if you can handle the extra load.
- If unsure, specify 'n'.
-
-Process R: lines every rehash
-R_LINES_REHASH
- You may not want to have the R: lines checks everywhere since this can
- cost a lot of time and delays. If you specify 'y' here, then R: lines are
- checked whenever the "ircd.conf" file is reloaded (when the REHASH command
- is used, or a signal SIGHUP is received by the daemon). This shouldn't be
- too much of a drain on the system if the R:lines programs are short.
-
-Process R: lines always
-R_LINES_OFTEN
- If you specify 'y' here then R: lines will be checked as often as K: lines.
- Note that this is -very- likely to cause a severe drain on your resources.
- Use at your own risk, specify 'n' unless your really sure.
-
-Do you want to have a default LIST parameter
-CONFIG_LIST
- Pre-Undernet, the LIST command could either be given with one channel
- name, or without any parameter. In the last case it would simply list
- all channels. In time the IRC networks grew big, until the output of
- the LIST command always filled up the sendQ of the client (and dis-
- connected it). This was fixed by Carlo Wood (Run@IRC) on request of a
- Dutch ISP whose users complained about this: The LIST output is now
- generated in small chunks, generating more each time when there is room
- in the clients sendQ. However, then it turned out that LIST (now it
- worked) used 50% of all cpu (not even mentioning the bandwidth)...
- This was unacceptable and the mentioned patch was disabled. On the
- other hand we wanted LIST to work at least partly, so a few new
- parameters have been added to LIST: <,>,C<,C>,T<,T> each followed by
- a number they filter respectively the number of users on the channel,
- the creation time of the channel (or age, depended on the value of
- the number) and the topic set time.
- If you specify 'y' here, then each time a "/LIST" (without parameter)
- is issued by a client, a default parameter is used. Note that when
- a parameter is used, the client can still max. sendq out - the send
- flood control only works without any parameter.
- If you specify 'n' here then a "/LIST" without parameters will list
- all channels (and work), but as just said: it uses a LOT of cpu and
- bandwidth on a large net.work.
- If you specify 'y' you will be prompted for the default parameter.
-
-Give default LIST parameter
-DEFAULT_LIST
- Here you need to specify the default LIST parameter which is used
- when the server receives a LIST without any parameter.
- You should use something that limits the output to a maximum of a
- few hundred channels; for instance "T<10" (topic is set less then
- 10 seconds ago) or ">10" (more then 10 users on the channel) or even
- a combination of this. Note that you should not include quotes here.
-
-K: line comments treated as a file
-COMMENT_IS_FILE
- If you specify 'y' here, then K: line comments (see doc/example.conf
- for more details on the K: line syntax) will be treated as a filename
- by default. The file needs to exist and will be written to clients
- that match that K: line.
- If you specify 'n' here, then K: line comments will be treated as
- a comments by default.
- In both cases you can override the default by prepending a filename
- with a '!' or enclose a comment between double quotes.
- If unsure, use the default.
-
-Only nullify idle-time on PRIVMSG
-IDLE_FROM_MSG
- The IRC command WHOIS gives an idle time for clients. If you want that
- this idle time is set to zero only when the clients send a PRIVMSG,
- then you should specify a 'y' here.
- If you specify a 'n' then the idle time will be nullified on all messages
- except the server PING/PONG.
-
-Check clone limit (2!)
-CHECK_CLONE_LIMIT
- Set this to 2.
-
-Check clone period (20!)
-CHECK_CLONE_PERIOD
- Set this to 20.
-
-Check clone delay (600!)
-CHECK_CLONE_DELAY
- Set this to 600.
-
-Max auto connects per class (1!)
-MAXIMUM_LINKS
- Set this to 1.
-
-Enable message logging
-MSGLOG_ENABLED
- Define this if you want the server to log received messages in static memory
- at parsing time. -This is for debugging purposes only-. You might want to
- redefine LOG_MASK_TYPE in s_debug.h and LOG_MASK_LEVEL in s_debug.c too.
- The default is to log all messages that change some status in server's data
- structures. Select 'n' unless you are debugging the server code.
- DO NOT SELECT THIS ON PRODUCTION SERVERS!
-
-Message log size
-MSGLOG_SIZE
- Number of messages to log. Keep this low as raising it to 1024 will use 800k
- of _static_ memory! Recommended value is 128. You must include this even if
- you selected 'n' for MSGLOG_ENABLED.
-
-Max server idle time (60)
-TIMESEC
- This is the maximum idle time for the server. If no messages are received
- in TIMSEC seconds, PINGFREQUENCY and CONNECTFREQUENCY are checked.
- Recommended value is 60 seconds.
-
-KILL nick chase time limit (30)
-KILLCHASETIMELIMIT
- This is the maximum amount of time a KILL command will automatically change
- to the current nick of a user that has just changed nicks from the one given
- with the original KILL. Don't change this unless you really need to.
-
-Max number of channels per user (recommended: 5)
-MAXCHANNELSPERUSER
- This is the maximum number of channels a user can be in at a time.
- The "mandatory" value on Undernet is currently 10. Since it only
- influences the local server when you decrease it, its up to you to decide
- if you want to use a smaller value. Do not use a larger value however,
- because it DOES cost more memory and bandwidth on all other servers
- when you allow users to join more channels simultaneously.
- One of the most important reasons to choose a smaller value is the fact
- that the now-a-days 'GUI' clients tend to stay on every channel they
- join (they aren't bothered by flooding in other channels). It DOES take
- your bandwidth however to send all those messages for 10 different
- channels to all your users.
-
-Max number of silence masks (15!)
-MAXSILES
- This is the maximum number of masks a user can silence at a time.
- The silence command allows users to filter messages directed at them
- from certain users or domains, at the source server. Increasing this
- number allows users to use up more memory with inefficient use of the
- command. If your not sure, don't change this.
-
-Expected average banmask length (40!)
-AVBANLEN
- This is the expected average banmask length. Leave it at 40.
-
-Use .config of THIS source tree as your upgrade default
-CONFIG_NEW
- Each source tree keeps its *own* config/.config file with the default
- values for all questions (those that you gave the last time you did a
- 'make config'). Whenever you do 'make config' again in this source tree,
- you will get these defaults.
- However, when you *upgrade* to a new version (and get a NEW source tree),
- it doesn't have a .config yet and will (try to) use a .config of one of
- your previous source trees.
- If you specify 'y' here, then the last defaults of THIS source tree will
- be used in your next upgrade. Note that any changes you make later to
- config/.config (by running 'make config' again) will also take effect
- on this later upgrade.
- You can always change this by making a new hard link from .config ->
- ircu2.10.xx/config/.config in the directory where you keep the source
- trees.
- If unsure, and you are not currently installing a test source tree,
- specify 'y'. If this is a second source tree that you will only be
- experimenting with, specify 'n'.
-
-Class 0 ping frequency (120)
-PINGFREQUENCY
- If the daemon doesn't receive anything from any of its links within
- PINGFREQUENCY seconds, then the it will attempt to check for an active link
- with a PING message. If no reply is received within (PINGFREQUENCY * 2)
- seconds, then the connection will be closed. This value is overridden by
- a Y:line in "ircd.conf" if the connections I/C/N: line in "ircd.conf" assigns
- a specific class to the connection (recommended).
-
-Class 0 connect frequency (600)
-CONNECTFREQUENCY
- This is the default frequency that the server attempts to reconnect with
- its uplink server if it is set to auto connect to it. Note that this value
- is overridden by a Y:line in ircd.conf if the C/N:lines in ircd.conf
- assigns a specific class to the connection (recommended).
-
-Min time before a link is good (300)
-HANGONGOODLINK
- Often the net breaks for a short time and its useful to reestablish the
- same connection faster than CONNECTFREQUENCY would allow, but to keep
- from trying again on a bad connection, we require that the connection be
- open for a certain minimum time. The recommended value is 300 seconds.
-
-Wait before reconnecting to good link (10!)
-HANGONRETRYDELAY
- When attempting to quickly reestablish a connection to a good link, we
- give the net a few seconds to steady. This time must be long enough for
- the other end to notice it broke too. The recommended value is 10 seconds.
-
-connect(2) timeout (90!)
-CONNECTTIMEOUT
- Number of seconds to wait for a connect(2) call to complete. NOTE: this
- must be at *LEAST* 10. When a client connects, it has CONNECTTIMEOUT - 10
- seconds for its host to respond to an ident lookup query and for a DNS
- lookup to complete. It is recommended you don't change this value, but if
- you do, consider the fact that users whose clients do not support NOSPOOF
- will have to type /QUOTE PING <big number> before registration.
-
-Max send queue (40000)
-DEFAULTMAXSENDQLENGTH
- This is the default value of the "max. sendq length" of Y: line classes
- (see doc/example.conf for details on Y: lines). You will probably
- always override this value in your "ircd.conf" with the Y: lines.
- The given value used to be an often used value for client sendqs.
+++ /dev/null
-#!/bin/sh
-#
-# IRC - Internet Relay Chat, tools/transition
-# Copyright (C) 2001 Kevin L. Mitchell <klmitch@mit.edu>
-#
-# This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 1, or (at your option)
-# any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program; if not, write to the Free Software
-# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
-#
-# $Id: transition,v 1.1 2001-06-21 23:28:53 kev Exp $
-
-# Better than having evals all over the place
-setvar () {
- eval $1=\$2
-}
-getvar () {
- eval echo \$$1
-}
-
-# Set up an echo that doesn't newline-terminate
-if test x`echo -n` = x-n; then
- echo_n () {
- echo "$@"'\c'
- }
-else
- echo_n () {
- echo -n "$@"
- }
-fi
-
-# Debugging notices, enabled only if $DEBUG has something in it
-if test x"$DEBUG" = x; then
- deb () {
- :
- }
- deb_n () {
- :
- }
-else
- deb () {
- echo "$@"
- }
- deb_n () {
- echo_n "$@"
- }
-fi
-
-# Get base directory; first step, how were we called?
-case $0 in
-*/*)
- basedir=`echo $0 | sed -e 's@/[^/]*@@g'`
- ;;
-
-*)
- basedir=`pwd`
- ;;
-esac
-
-# Now locate the ircd subdirectory
-if test -d $basedir/ircd; then
- :
-elif test -d $basedir/../ircd; then
- basedir=$basedir/..
-elif test -d ./ircd; then
- basedir=`pwd`
-else
- echo "Cannot find base ircd directory!" >&2
- exit 1
-fi
-
-# Finally, canonicalize it
-cwd=`pwd`
-cd $basedir
-basedir=`pwd`
-cd $cwd
-
-deb "Base directory: $basedir"
-
-# This is where our ./configure-parsable results will go
-cache_file=$basedir/config.cache
-
-# Now locate .config and config.cache
-config_in=
-config_cache_in=
-
-# If the config subdirectory isn't there anymore, don't bother checking there
-if test -d $basedir/config; then
- if test -r $basedir/config/.config; then
- config_in=$basedir/config/.config
- fi
-
- if test -r $basedir/config/config.cache; then
- config_cache_in=$basedir/config/config.cache
- fi
-fi
-
-# Last ditch effort...try ../.config
-if test x"$config_in" = x; then
- if test -r $basedir/../.config; then
- config_in=$basedir/../.config
- else
- echo "Cannot find original .config file!" >&2
- exit 2
- fi
-fi
-
-# Last ditch effort...try ../.config.cache
-if test x"$config_cache_in" = x; then
- if test -r $basedir/../.config.cache; then
- config_cache_in=$basedir/../.config.cache
- else
- echo "Cannot find original config.cache file!" >&2
- exit 3
- fi
-fi
-
-# Now load the two data files
-echo "Loading old config.cache file $config_cache_in"
-. $config_cache_in
-echo "Loading old .config file $config_in"
-. $config_in
-
-# Now we have to track down the defaults so we will know what to generate
-# F-lines for
-if test ! -r $basedir/ircd/ircd_features.c; then
- echo "Cannot find default features!" >&2
- exit 4
-fi
-
-echo_n "Loading feature default values; please be patient... "
-deb ""
-features=
-exec 4<$basedir/ircd/ircd_features.c
-while read line <&4; do
- # if a line has '(' but not ')', then we hang them until we find the
- # matching ')'; this is not robust!
- if test x"$hangline" != x; then
- line="$hangline $line"
- hangline=
- fi
-
- if test x"`echo "$line" | grep '(' 2>/dev/null`" != x -a \
- x"`echo "$line" | grep ')' 2>/dev/null`" = x; then
- hangline=$line
- continue
- fi
-
- # Now we process the line we read...
- case $line in
- \#*) # We want to ignore the #define, since it's a false positive
- ;;
-
- F_[NIBS]*) # Found one of the feature define macros
- type=`echo "$line" | sed -e 's/^F_\([NIBS]\).*$/\1/g'`
- arglist=`echo "$line" | sed -e 's/^F_[NIBS](\(.*\)),.*/\1/g' \
- -e 's/ | /|/g'`
-
- # Now we must parse the arguments
- tIFS=$IFS
- IFS=,$IFS
- name=
- value=
- argnum=0
- for arg in $arglist; do
- case $type$argnum in
- [NIBS]0) # First argument is always the name of the feature
- name=$arg
- ;;
-
- I2) # Second argument of F_I() is the numerical value
- value=$arg
- ;;
-
- B2) # Second argument of F_B() is a numerical value
- # We must convert this numerical value to "y" or "n"
- if test x"$arg" = x0; then
- value=n
- else
- value=y
- fi
- ;;
-
- [ST]2) # Second argument of F_S() is a string value; must
- # take into account unquoted possibilities, though
- dequote=`echo "$arg" | sed -e 's/^"\(.*\)"$/\1/g'`
- if test x"$dequote" = x"$arg"; then
- type=T
- value=$arg
- else
- value=$dequote
- fi
- ;;
- esac
-
- # Next time through, we'll be testing the next argument
- argnum=`expr $argnum + 1`
- done
- IFS=$tIFS
-
- deb "Loaded feature \"$name\" of type \"$type\"; default: \"$value\""
-
- # Store the information we extracted
- setvar type_$name $type
- setvar def_$name "$value"
-
- # Keep a list of features we've checked
- features="$features $name"
- ;;
- esac
-done
-exec 4<&-
-echo "done"
-
-echo "Converting some options that are still compile-time"
-
-unet_cv_prefix=`echo $SPATH | sed -e 's@/bin/ircd@@g'`
-deb "Installation directory (derived from SPATH)... $unet_cv_prefix"
-
-deb_n "Enable debugging (DEBUGMODE)... "
-if test x"$DEBUGMODE" = xy; then
- unet_cv_enable_debug=yes
-else
- unet_cv_enable_debug=no
-fi
-deb "$unet_cv_enable_debug"
-
-deb_n "Enable assertion checking (CONFIG_NDEBUG)... "
-if test x"$CONFIG_NDEBUG" = xy; then
- unet_cv_enable_asserts=yes
-else
- unet_cv_enable_asserts=no
-fi
-deb "$unet_cv_enable_asserts"
-
-deb_n "Force inlining of some critical functions (FORCEINLINE)... "
-if test x"$FORCEINLINE" = xy; then
- unet_cv_enable_inlines=yes
-else
- unet_cv_enable_inlines=no
-fi
-deb "$unet_cv_enable_inlines"
-
-unet_cv_with_symlink=$SYMLINK
-deb "Symlink name (SYMLINK)... $unet_cv_with_symlink"
-
-unet_cv_with_mode=$IRCDMODE
-deb "Binary permissions (IRCDMODE)... $unet_cv_with_mode"
-
-unet_cv_with_owner=$IRCDOWN
-deb "Binary owner (IRCDOWN)... $unet_cv_with_owner"
-
-unet_cv_with_group=$IRCDGRP
-deb "Binary group owner (IRCDGRP)... $unet_cv_with_group"
-
-unet_cv_with_domain=$DOMAINNAME
-deb "Local domain name (DOMAINNAME)... $unet_cv_with_domain"
-
-deb_n "Enable CHROOT operation (CHROOTDIR)... "
-if test x"$CHROOTDIR" = xy; then
- deb_n "yes, path "
- unet_cv_with_chroot=$DPATH
-else
- unet_cv_with_chroot=no
-fi
-deb "$unet_cv_with_chroot"
-
-unet_cv_with_dpath=$DPATH
-deb "Data path (DPATH)... $unet_cv_with_dpath"
-
-unet_cv_with_cpath=$CPATH
-deb "Configuration file (CPATH)... $unet_cv_with_cpath"
-
-# LPATH may not be set; if it's not, we'll just ignore it here and let
-# ./configure fill it in appropriately
-if test x"$LPATH" != x; then
- unet_cv_with_lpath=$LPATH
- deb "Debug log file (LPATH)... $unet_cv_with_lpath"
-fi
-
-unet_cv_with_maxcon=$MAXCONNECTIONS
-deb "Maximum number of connections (MAXCONNECTIONS)... $unet_cv_with_maxcon"
-
-# Shouldn't run ./configure before the transition script, but we can deal
-if test -r "$cache_file"; then
- echo "WARNING: Destroying new config.cache file $cache_file" >&2
- rm $cache_file
-fi
-
-# Create the cache file...
-echo "Creating new config.cache file $cache_file"
-> $cache_file
-
-# This section is copied from a GNU autoconf-generated configure script
-###############################################################################
-cat > confcache <<\EOF
-# This file is a shell script that caches the results of configure
-# tests run on this system so they can be shared between configure
-# scripts and configure runs. It is not useful on other systems.
-# If it contains results you don't want to keep, you may remove or edit it.
-#
-# By default, configure uses ./config.cache as the cache file,
-# creating it if it does not exist already. You can give configure
-# the --cache-file=FILE option to use a different cache file; that is
-# what configure does when it calls configure scripts in
-# subdirectories, so they share the cache.
-# Giving --cache-file=/dev/null disables caching, for debugging configure.
-# config.status only pays attention to the cache file if you give it the
-# --recheck option to rerun configure.
-#
-EOF
-# The following way of writing the cache mishandles newlines in values,
-# but we know of no workaround that is simple, portable, and efficient.
-# So, don't put newlines in cache variables' values.
-# Ultrix sh set writes to stderr and can't be redirected directly,
-# and sets the high bit in the cache file unless we assign to the vars.
-(set) 2>&1 |
- case `(ac_space=' '; set | grep ac_space) 2>&1` in
- *ac_space=\ *)
- # `set' does not quote correctly, so add quotes (double-quote substitution
- # turns \\\\ into \\, and sed turns \\ into \).
- sed -n \
- -e "s/'/'\\\\''/g" \
- -e "s/^\\([a-zA-Z0-9_]*_cv_[a-zA-Z0-9_]*\\)=\\(.*\\)/\\1=\${\\1='\\2'}/p"
- ;;
- *)
- # `set' quotes correctly as required by POSIX, so do not add quotes.
- sed -n -e 's/^\([a-zA-Z0-9_]*_cv_[a-zA-Z0-9_]*\)=\(.*\)/\1=${\1=\2}/p'
- ;;
- esac >> confcache
-if cmp -s $cache_file confcache; then
- :
-else
- if test -w $cache_file; then
- echo "updating cache $cache_file"
- cat confcache > $cache_file
- else
- echo "not updating unwritable cache $cache_file"
- fi
-fi
-rm -f confcache
-###############################################################################
-
-# If they ran ./configure before, there'll be a config.status hanging around;
-# if so, we can run that to integrate the config.cache we just generated.
-if test -x $basedir/config.status; then
- echo "Running $basedir/config.status to update configuration"
- cwd=`pwd`
- cd $basedir
- # Have to run it twice to get the Makefile recreated
- ./config.status --recheck
- ./config.status
- cd $cwd
-fi
-
-# Now we need to track down ircd.conf so we can add the F-lines.
-echo_n "Locating IRCD configuration file... "
-case $unet_cv_with_cpath in
-/*) # CPATH is absolute
- conf_file=$unet_cv_with_cpath
- ;;
-
-*) # CPATH is relative to DPATH
- conf_file=$unet_cv_with_dpath/$unet_cv_with_cpath
- ;;
-esac
-# suppress duplicate '/'
-conf_file=`echo "$conf_file" | sed -e 's@//*@/@g'`
-echo "$conf_file"
-
-# if we can't find the .conf, use "flines.conf" in the base directory (so
-# they'll be easy to find).
-if test ! -r $conf_file; then
- fline_conf=yes
- conf_file=$basedir/flines.conf
- if test ! -r $conf_file; then
- > $conf_file
- fi
- echo "WARNING: Unable to read ircd.conf; you will need to add the" >&2
- echo " F-lines manually. For your convenience, they will be" >&2
- echo " placed in $conf_file." >&2
-fi
-
-# here's where we take the old .config and compare it to the feature defaults
-echo_n "Building feature table... "
-for feature in $features; do
- defval=`getvar def_$feature`
- value=`getvar $feature`
-
- if test x"$value" = x -o x"$value" = x"$defval"; then
- setvar FEAT_$feature $defval
- else
- setvar FEAT_$feature $value
- fi
-done
-
-# We won't add an F-line for DOMAINNAME, since (hopefully) the right one is
-# already compiled in
-FEAT_DOMAINNAME=DOMAINNAME
-
-# Have to make sure we have a RANDOM_SEED to enhance randomness...
-FEAT_RANDOM_SEED=$RANDOM_SEED
-
-# This feature changed names to be consistent...
-FEAT_OPER_LBADCHAN=$LOCAL_BADCHAN
-
-# DEFAULT_LIST_PARAM is perhaps the most complicated to transition, but
-# this'll do the trick...
-if test x"$CONFIG_LIST" = xy; then
- FEAT_DEFAULT_LIST_PARAM=$DEFAULT_LIST_PARAM
-else
- FEAT_DEFAULT_LIST_PARAM=0
-fi
-
-echo "done"
-
-# Now we just generate the F-lines
-echo_n "Generating F-lines... "
-exec 4>>$conf_file
-
-# The various log files are set up first--these are all that were defined
-# in u2.10.10.pl15
-if test x"$CONFIG_LOG_WHOX" = xy; then
- echo "F:LOG:WHO:FILE:$WPATH" >&4
-fi
-if test x"$CONFIG_LOG_GLINES" = xy; then
- echo "F:LOG:GLINE:FILE:$GPATH" >&4
-fi
-if test x"$CONFIG_LOG_USERS" = xy; then
- echo "F:LOG:USER:FILE:$FNAME_USERLOG" >&4
-fi
-if test x"$CONFIG_LOG_OPERS" = xy; then
- echo "F:LOG:OPER:FILE:$FNAME_OPERLOG" >&4
-fi
-
-# Now we traverse the entire feature table and compare values with their
-# defaults
-for feature in $features; do
- type=`getvar type_$feature`
- defval=`getvar def_$feature`
- value=`getvar FEAT_$feature`
-
- if test x"$defval" != x"$value"; then
- if test x"$type" = xB; then
- # Must map booleans yet again; I prefer TRUE/FALSE
- if test x"$value" = xy; then
- value=TRUE
- else
- value=FALSE
- fi
- fi
-
- # Write the F-line
- echo "F:$feature:$value" >&4
- fi
-done
-exec 4>&-
-echo "done"
-
-echo_n "Transition is complete."
-if test ! -r $basedir/config.status; then
- echo_n " You should now run ./configure."
-fi
-
-echo ""
-
-if test x"$fline_conf" = xyes; then
- echo "Don't forget to add the F-lines to your ircd.conf. They can be"
- echo "found in $conf_file."
-else
- echo "Don't forget to verify the F-lines in your ircd.conf!"
-fi