/**
    \mainpage Services Documentation
    \section Installation
    \a Installation

         Preqrequisites:
           - System must have a make utility, awk, sed, a C and 
             C++ compiler (preferably GCC)
           - System must have an 'ar' utility
           - System must have a mail transport agent that supports the
             sendmail -T interface.
           - Must have installed an IRC server compatible with dal4.4.10
             or sor1.3.x.
           - Must have installed the 'services helpfiles' package
           - Should have the 'services documentation' package
           - The system needs to support BSD sockets and
             signals (currently).

         -#  Untar the package (where XXX is the version number)
\verbatim
             gunzip services-XXX.tar.gz
             tar xvf services-XXX.tar
\endverbatim
         -#  Build the package
             -# cd services
             -# Run configure with appropriate options (see ./configure --help)
                Example:
\verbatim
                ./configure --with-cfgpath=/usr/local/lib/services \
                            --with-help=/usr/local/lib/services/help \
                            --with-network='sorcery.net' \
                            --with-klinemail='kline@sorcery.net' \
                            --with-md5 \
                            --with-sendmail='/usr/sbin/sendmail -T' \
                            --disable-grpops
\endverbatim
             -# Run make
         -# Copy the services binary to the configuration directory or
            hard-link it.
             Example:
\verbatim
                ln ./services /usr/local/lib/services/services
\endverbatim
         -# Switch to the config path and make directories for each 
            service and start a new database file each service, example:
\verbatim
             cd /usr/local/lib/services
             mkdir chanserv nickserv memoserv operserv
             echo 'done' > nickserv/nickserv.db
             echo 'done' > chanserv/chanserv.db
             echo 'done' > memoserv/memoserv.db
             echo 'done' > operserv/trigger.db
\endverbatim
         -#   Write a \link services.conf services.conf file. \endlink
              Also, an example configuration can be found in
             `services.conf.example' from the documentation package or 
              in the `docs' directory of a full distribution.
         -#   Add appropriate matching C and N lines for your
              services.conf configuration to your IRC server.
              The C-line and the N-line should be identical.
              The N-line password should match the W-line in
              services.conf, and the server name in the C and 
              N-lines should match the H-line in services.conf.
         -#   Add a U-line to your IRC server's configuration
              file, the server name in the U-line should match
              the W-line in services.conf

    \link Files files.html
 */

/**
 \page services.conf
   \section Intro
   \a Introduction

   A services.conf file consists of a number of lines read by services
   at startup.

   Each `line' consists of a word, followed by a colon, and then a 
   value.  At this time there are no complex (multi-value) config
   items.

   Lines starting with a `#' symbol are comments and services does
   not use them.

   Certain parameters must be configured in any services.conf file.

   \section ServicesConfLines
   \a Configuration \a Lines

 [MANDATORY]
   - Host configuration (H line):
     - A H line contains the name of the services server.
       Example:
\verbatim
                H:warlock.sorcery.net
\endverbatim
   - Port configuration (P line):
     - A P line tells services what port on the IRC server to
       connect to as a server.
       Example:
\verbatim
                P:9000
\endverbatim
   - Password configuration (W line):
     - A W line tells services what password to use when connecting
       connect to an IRC server.
       Example:
\verbatim
                W:mypassword
\endverbatim
   - IRC Server configuration (C line):
     - A C line tells services the address of the IRC server to connect
       to (note, the IRC server must have a C-line and a N-line for
       services using a password specified in the services W line for
       services to connect to IRC.)
       Example:
\verbatim
                C:localhost
\endverbatim
   - Services client configuration (XX lines):
     - An ON-line tells services what OperServ's nickname should be
     - An OU-line tells services what OperServ's username should be
     - An OH-line tells services what OperServ's hostname should be
     - An OR-line tells services what OperServ's realname should be
     - An OM-line tells services what OperServ's usermode should be
     - Nx, Cx, Mx, and Ix are the same respectively for NickServ,
       ChanServ, MemoServ, and InfoServ.
\verbatim
                C:localhost
                ### OperServ ###
                ON:OperServ
                OU:warlock
                OH:sorcery.net
                OR:Operator Services
                OM:+oi

                ### NickServ ###
                NN:NickServ
                NU:sorceress
                NH:sorcery.net
                NR:Nickname Services
                NM:

                ### ChanServ ###
                CN:ChanServ
                CU:wizard
                CH:sorcery.net
                CR:Channel Services
                CM:

                ### MemoServ ###
                MN:MemoServ
                MU:witch
                MH:sorcery.net
                MR:Memo Services
                MM:

                ### InfoServ ###
                IN:InfoServ
                IU:sorcerer
                IH:sorcery.net
                IR:Information Services
                IM:
\endverbatim

 [RECOMMENDED]

   - Limits (CL, NL, OL, BL, LL lines)
     - These configuration lines are used to set limits
       on user data within services.
     - CL Maximum number of registered channels (Default: 10)
     - NL Maximum number registered nicknames (Default: 5) [not enforced]
     - OL Maximum number channel operator access entries per channel (Default: 25)
     - BL Maximum number akick list entries per channel (Default: 30)
     - LL Maximum number nickserv access entries per nickname (Default: 3)
\verbatim
                OL:251
                BL:100
                LL:10
                CL:10
                NL:5
\endverbatim   

 [OPTIONAL]
   - Services IPC port configuration (IPCPORT line):
     - A IPCPORT line tells services to enable IPC 
       (inter-process communication) and listen on a particular
       port for connections.
       Example:

\verbatim
                IPCPORT:8560
\endverbatim
     - Note that it is necessary to set up IPC logins and be using
       proper software for IPCPORT to be useful.
     - If an IPCPORT line is not specified, then IPC is disabled.
   - Services root configuration (SRA line):
     - A SRA line tells services that a particular registered nickname
       should be given Services Root access.
       Example:

\verbatim
                SRA:Joe
\endverbatim
     - Warning: Services root access allows a user to make any change
       available to be made online.  It is advisable to limit this
       permission flag to trusted, competent users and developers
       who are familiar with the internals of this software.
     - SRA lines should not be added for a nickname until that nickname
       is registered.
     - Services.conf can be reloaded to make a new SRA (if there is
       not one yet) by kill ing services with the `HUP' signal.
       Example:
\verbatim
                ps xwu |grep services
                kill -HUP 1234
\endverbatim
     - Services.conf can also be reloaded by a SRA with the
       command: \b /OperServ \b REHASH.
   - Services Operator configuration (SERVOP line):
     - A SERVOP line tells services that a particular registered nickname
       should be given ServOP access.
       Example:
\verbatim
                SERVOP:Joe
\endverbatim
     - ServOp access grants many of the SRA features such as the
       ability to delete nicknames, channels, perm akills, ignores, 
       autohurts; however, it does not grant the ability to change
       operator access flags, directly modify things, shutdown 
       services, or access internal debugging commands.
     - ServOps can be added or removed when services is online using
       the \b /OperServ \b SETOP command.

 */

