aboutsummaryrefslogtreecommitdiff
path: root/doc/INSTALL.txt
diff options
context:
space:
mode:
Diffstat (limited to 'doc/INSTALL.txt')
-rw-r--r--doc/INSTALL.txt1716
1 files changed, 1716 insertions, 0 deletions
diff --git a/doc/INSTALL.txt b/doc/INSTALL.txt
new file mode 100644
index 0000000..b8dbc63
--- /dev/null
+++ b/doc/INSTALL.txt
@@ -0,0 +1,1716 @@
+ Installing IRC - The Internet Relay Chat Program
+ SGML version by Christophe Kalt
+ $Id: INSTALL.txt,v 1.38 1999/08/13 17:22:12 kalt Exp $
+
+ This document describes how to install, and configure IRC 2.10.3.
+
+ 11.. IInnssttaalllliinngg IIRRCC..
+
+ 11..11.. TThhee ccoonnffiigguurree ssccrriipptt
+
+ This package uses a GNU configure script for its configuration. You
+ simply need to untar the distribution and run the ``configure''
+ script. This will run configure which will probe your system for any
+ peculiarities it has and setup the Makefile and a file of default
+ #define's ($arch/setup.h).
+
+ There are a few options to ``configure'' to help it out, or change the
+ default behaviour:
+
+ ----pprreeffiixx==DDIIRR
+ changes the default directory into which ircd will install using
+ ``make install''. This defaults to /usr/local
+
+ ----ssbbiinnddiirr==DDIIRR
+ changes the default directory where the system admin executable
+ files will go. It is important to set this properly. (default is
+ prefix/sbin)
+
+ ----llooggddiirr==DDIIRR
+ changes the default directory where the irc log files will go.
+ (default is prefix/var/log/ircd)
+
+ ----ssyyssccoonnffddiirr==DDIIRR
+ changes the default directory where the irc server configuration
+ files will go. (default is prefix/etc)
+
+ ----llooccaallssttaatteeddiirr==DDIIRR
+ changes the default directory where the irc server state files
+ will go. (default is prefix/var/run)
+
+ ----rreessccoonnff==FFIILLEE
+ defines the file to be used by ircd to initialize its resolver.
+ (default is /etc/resolv.conf)
+
+ ----zzlliibb--iinncclluuddee==DDIIRR
+ specifies in which directory the include file from the zlib is
+ located.
+
+ ----zzlliibb--lliibbrraarryy==DDIIRR
+ specifies in which directory the zlib library is located.
+
+ ----zzlliibb--pprreeffiixx==DDIIRR
+ specifies the prefix for zlib location. It overrides the 2
+ previous options. (The include directory is supposed to be in
+ prefix/include, and the library in prefix/lib).
+
+ ----wwiitthh--zzlliibb
+ is the default. ``configure'' looks on your system to find the
+ zlib. If found, ircd will be linked using it. This does NOT
+ mean you can use server link compression, for this you also need
+ to define ZIP_LINKS (see section below).
+
+ ----wwiitthhoouutt--zzlliibb
+ tells ``configure'' not to look for the zlib. Defining this
+ will keep you from using server link compression.
+
+ ----eennaabbllee--iipp66
+ Enable IPv6 support (See notes below)
+
+ ----eennaabbllee--ddssmm
+ Enable Dynamically Shared Modules support for iauth
+
+
+ 11..22.. NNootteess ffoorr CCyyggwwiinn3322 uusseerrss
+
+ The daemon of 2.10.3 release compiles properly on W32 systems which
+ have the GNU-Win32 environment ( <http://www.cygnus.com/misc/gnu-
+ win32/>) setup. At the time of the release, tests were made using the
+ version b20.1 of the Cygwin32 library.
+
+ When compiling on such system, you want to make sure that you have
+ carefully followed the Cygwin32 installation notes. In particular,
+ you will need to make sure that the following files exist:
+ //bbiinn//ccpp..eexxee, //bbiinn//mmvv..eexxee, //bbiinn//rrmm..eexxee and //bbiinn//sshh..eexxee.
+
+ Also, the IRC server needs a rreessoollvv..ccoonnff file in order to initialize
+ the resolver. This file can be anywhere (see configure options), and
+ is typically in //eettcc on UNIX systems.
+
+ Finally, iauth is automatically disabled. Even though the iauth
+ program compiles properly, extra work is required to have a working
+ communication channel between the IRC server and the iauth program.
+
+
+ 11..33.. NNootteess ccoonncceerrnniinngg IIPPvv66 ssuuppppoorrtt
+
+ The only part of the software that doesn't use IPv6 is the server
+ internal resolver. It relies on the name servers defined in
+ ``/etc/resolv.conf'' to be IPv4 addresses.
+
+ This version was tested on the following IPv6 systems: BSD/OS+KAME,
+ Digital Unix, FreeBSD+KAME, Linux, NetBSD+INRIA.
+
+ Because IPv6 numeric addresses contain ``:'' characters, tthhee sseeppaarraattoorr
+ ffoorr tthhee sseerrvveerr ccoonnffiigguurraattiioonn ffiillee wwaass cchhaannggeedd ttoo ````%%''''.
+
+
+ 22.. TThhee ccoonnffiigg..hh ffiillee
+
+ The second step consists of defining options before the compilation.
+ This is done by editing the ``config.h'' file and changing the various
+ #DEFINE's.
+
+
+ 22..11.. DDeeffiinnee wwhhaatt ttyyppee ooff UUNNIIXX yyoouurr mmaacchhiinnee uusseess..
+
+ Pick the machine type which best describes your machine and change the
+ #undef to #define (if needed).Some flavours of Unix require no #define
+ and in such cases all others should be #undef'd.
+
+
+ 22..22.. DDEEBBUUGGMMOODDEE
+
+ Define DEBUGMODE if you want to see the ircd debugging information as
+ the daemon is running. Normally this function will be undefined as
+ ircd produces a considerable amount of output. DEBUGMODE must be
+ defined for either of -t or -x command line options to work. Defining
+ this induces a large overhead for the server as it does a large amount
+ of self diagnostics whilst running.
+
+ TThhiiss sshhoouulldd oonnllyy bbee ddeeffiinneedd ffoorr tteesstt ppuurrppoosseess,, aanndd nneevveerr uusseedd oonn aa
+ pprroodduuccttiioonn sseerrvveerr..
+ 22..33.. CCPPAATTHH,, MMPPAATTHH,, LLPPAATTHH,, PPPPAATTHH,, TTPPAATTHH,, QQPPAATTHH,, OOPPAATTHH
+
+ Define CPATH to be the directory path to the ``ircd.conf'' file. This
+ path is usually /usr/local/lib/ircd/ircd.conf. The format of this file
+ will be discussed later.
+
+ The LPATH #define should be set to ``/dev/null'' unless you plan to
+ debug the ircd program. Note that the logfile grows very quickly.
+
+ Define MPATH to be the path to the ``motd'' (message of the day) file
+ for the server. Keep in mind this is automatically displayed whenever
+ anyone signs on to your server.
+
+ The PPATH is optional, but if defined, should point to a file which
+ either doesn't exist (but is creatable) or a previously used PPATH
+ file. It is used for storing the server's PID so a ps(1) isn't
+ necessary.
+
+ Define QPATH to be the directory path to the ``iauth.conf'' file. This
+ path is usually /usr/local/lib/ircd/iauth.conf. The format of this
+ file is described by a manual page.
+
+ The OPATH #define should be set to ``/dev/null'' unless you plan to
+ debug the iauth program. Note that the logfile grows very quickly.
+
+
+ 22..44.. CCAACCHHEEDD__MMOOTTDD
+
+ The server sends the ``motd'' to every client connecting. Every time,
+ it reads it from the disk. This is quite intensive and can be
+ undesirable for busy servers.
+
+ Defining CACHED_MOTD will make the server store the ``motd'' in
+ memory, and only read it again from the disk when rehashing if the
+ file has changed.
+
+
+ 22..55.. CCHHRROOOOTTDDIIRR
+
+ To use the CHROOTDIR feature, make sure it is #define'd and that the
+ server is being run as root. The server will chroot to the directory
+ name provded by ``IRCDDIR'' (in Makefile).
+
+
+ 22..66.. EENNAABBLLEE__SSUUMMMMOONN,, EENNAABBLLEE__UUSSEERRSS
+
+ For security conscious server admins, they may wish to leave
+ ENABLE_USERS undefined, disabling the USERS command which can be used
+ to glean information the same as finger can. ENABLE_SUMMON toggles
+ whether the server will attempt to summon local users to irc by
+ writing a message similar to that from talk(1) to a user's tty.
+
+
+ 22..77.. SSHHOOWW__IINNVVIISSIIBBLLEE__LLUUSSEERRSS,, NNOO__DDEEFFAAUULLTT__IINNVVIISSIIBBLLEE
+
+ On large IRC networks, the number of invisible users is likely to be
+ large and reporting that number cause no pain. To aid and effect
+ this, SHOW_INVISIBLE_LUSERS is provided to cause the LUSERS command to
+ report the number of invisible users to all people and not just
+ operators. The NO_DEFAULT_INVISIBLE define is used to toggle whether
+ clients are automatically made invisible when they register.
+
+
+
+
+
+ 22..88.. OOPPEERR__KKIILLLL,, OOPPEERR__RREEHHAASSHH,, OOPPEERR__RREESSTTAARRTT,, LLOOCCAALL__KKIILLLL__OONNLLYY
+
+ The three operator only commands, KILL, REHASH and RESTART, may all be
+ disabled to ensure that an operator who does not have the correct
+ privilidges does not have the power to cause untoward things to occur.
+ To further curb the actions of guest operators, LOCAL_KILL_ONLY can be
+ defined to only allow locally connected clients to be KILLed.
+
+
+ 22..99.. ZZIIPP__LLIINNKKSS,, ZZIIPP__LLEEVVEELL
+
+ As of the 2.9.3 version of the server, server-server connections may
+ be compressed using the zlib. In order to compile the server with
+ this feature, you MUST have the zlib package (version 1.0 or higher)
+ already compiled and define ZIP_LINKS in the config.h file.
+ Compression use for server-server connections is separately configured
+ in the ircd.conf file for each server-server link. ZIP_LEVEL allows
+ you to control the compression level that will be used. Values above
+ 5 will noticeably increase the CPU used by the server.
+
+ The zlib package may be found at
+ <http://www.cdrom.com/pub/infozip/zlib/>. The data format used by the
+ zlib library is described by RFCs (Request for Comments) 1950 to 1952
+ in the files <ftp://ds.internic.net/rfc/rfc1950.txt> (zlib format),
+ rfc1951.txt (deflate format) and rfc1952.txt (gzip format). These
+ documents are also available in other formats from
+ <ftp://ftp.uu.net/graphics/png/documents/zlib/zdoc-index.html>
+
+
+ 22..1100.. SSLLOOWW__AACCCCEEPPTT
+
+ This option is defined by default and is needed on some OSes. It
+ creates an artificial delay in processing incoming connections. On a
+ given port, no more than 1 connection per 2 seconds will be processed.
+
+ Undefining this will let the server process connections as fast as it
+ can which can cause problems on some OSes (such as SunOS) and be
+ abused (fast massive join of clonebots..), for these reasons, if you
+ decide to undefine SLOW_ACCEPT you MUST define CLONE_CHECK.
+
+
+ 22..1111.. CCLLOONNEE__CCHHEECCKK
+
+ This option acts as a wrapper, by checking incoming connections early
+ before starting ident query. By default, the server will not accept
+ more than 2 connections from the same host within 10 seconds.
+
+
+ 22..1122.. OOtthheerr ##ddeeffiinnee''ss
+
+ The rest of the user changable #define's should be pretty much self
+ explanatory in the config.h file. It is *NOT* recommended that any of
+ the file undef the line with "STOP STOP" in it be changed.
+
+
+ 33.. EEddiittiinngg tthhee MMaakkeeffiillee,, aanndd ccoommppiilliinngg
+
+ This package now uses GNU autoconf to probe your system and generate
+ the correct Makefile. However you need to edit it to specify specific
+ information, such as ``prefix'', ``irc_mode'', ``ircd_mode'' and
+ ``ircd_dir''.
+
+ Now to build the package, type ``make all''. If everything goes will,
+ you can then install it by typing ``make install''.
+
+
+ If you have trouble compiling ircd, copy Makefile.in to Makefile and
+ edit Makefile as appropriate.
+
+
+ 44.. TThhee iirrccdd..ccoonnff ffiillee
+
+ After installing the ircd and irc programs, edit the ircd.conf file as
+ per the instructions in this section and install it in the location
+ you specified in the config.h file. There is a sample conf file
+ called example.conf in the doc/ directory.
+
+ Appendix A (See INSTALL.appendix) describes the differences between IP
+ addresses and host names. If you are unfamiliar with this, you should
+ probably scan through it before proceeding.
+
+ The ircd.conf file contains various records that specify configuration
+ options. The record types are as follows:
+
+ 1. Machine information (M)
+
+ 2. Administrative info (A)
+
+ 3. Port connections (P)
+
+ 4. Connection Classes (Y)
+
+ 5. Client connections (I,i)
+
+ 6. Operator privileges (O)
+
+ 7. Restrict lines (R)
+
+ 8. Excluded accounts (K,k)
+
+ 9. Server connections (C,c,N)
+
+ 10.
+ Deny auto-connections (D)
+
+ 11.
+ Hub connections (H)
+
+ 12.
+ Leaf connections (L)
+
+ 13.
+ Version limitations (V)
+
+ 14.
+ Excluded machines (Q)
+
+ 15.
+ Service connections (S)
+
+ 16.
+ Bounce server (B)
+
+ 17.
+ Default local server (U)
+
+ Except for types ``M'' and ``A'', you are allowed to have multiple
+ records of the same type. In some cases, you can have concurrent
+ records. IItt iiss iimmppoorrttaanntt ttoo nnoottee tthhaatt tthhee llaasstt mmaattcchhiinngg rreeccoorrdd wwiillll
+ bbee uusseedd. This is especially useful when setting up I records (client
+ connections).
+
+ 44..11.. MMaacchhiinnee iinnffoorrmmaattiioonn
+
+
+ IInnttrroodduuccttiioonn
+ IRC needs to know a few things about your UNIX site, and the
+ ``M'' command specifies this information for IRC. The fomat of
+ this command is:
+
+ FFoorrmmaatt
+
+ M:<Server NAME>:<YOUR Internet IP#>:<Geographic Location>:<Port>
+
+
+
+ MM ``M'' specifies a Machine description line
+
+ SSeerrvveerr NNAAMMEE
+ The name of YOUR server adding any Internet DOMAINNAME that
+ might also be present. If this hostname can be resolved, the IP#
+ found will be used to for outgoing connections. Otherwise the
+ default interface address of the host is used. The server name
+ may not be FQDN of another host. (This means all outgoing
+ connections will be done from the same IP#, even if your host
+ has several IP#).
+
+ YYOOUURR IInntteerrnneett IIPP##
+ If the machine on which you run the server has several IP
+ addresses, you can define which IP# to use for outgoing
+ connections. This overrides overrides the ``Server NAME''.
+
+ See Also the ``Port Connections'' section.
+
+ GGeeooggrraapphhiicc LLooccaattiioonn
+ Geographic Location is used to say WHERE YOUR SERVER is, and
+ gives people in other parts of the world a good idea of where
+ you are! If your server is in the USA, it is usually best to
+ say: <CITY> <STATE>, USA. Like for Denver I say: ``Denver
+ Colorado, USA''. Finnish sites (like tolsun.oulu.fi generally
+ say something like ``Oulu, Finland''.
+
+ PPoorrtt
+ Defines the port on which your server will listen for UDP pings
+ from other servers. This should be the port were other servers
+ are set to autoconnect. (Also see the port field description in
+ connect lines).
+
+ EExxaammppllee::
+ M:tolsun.oulu.fi::Oulu, Finland:6667:
+
+ This line reads: My Host's name is ``tolsun.oulu.fi'' and my
+ site is located in ``Oulu, Finland''.
+
+ M:orion.cair.du.edu::Denver Colorado, USA:6667:
+
+ This line reads: My Hosts name is ``orion.cair.du.edu'' and my
+ site is located in ``Denver Colorado, USA''.
+
+
+
+ 44..22.. AAddmmiinniissttrraattiivvee iinnffoo
+
+
+ IInnttrroodduuccttiioonn
+ The ``A'' line is used for administrative information about a
+ site. The e-mail address of the person running the server should
+ be included here in case problems arise.
+ FFoorrmmaatt
+
+ A:<Your Name/Location>:<Your Electronic Mailing Addr>:<other>::
+
+
+
+ AA This specifies an Admin record.
+
+ YYoouurr NNaammee && LLooccaattiioonn
+ Use this field to say tell your FULL NAME and where in the world
+ your machine is. Be sure to add your City, State/Province and
+ Country.
+
+ YYoouurr EElleeccttrroonniixx MMaaiilliinngg AAddddrr
+ Use this field to specify your Electronic Mailing Address
+ preferably your Internet Mailing Address. If you have a UUCP or
+ ARAPnet address - please add that as well. Be sure to add any
+ extra DOMAIN information that is needed, for example ``mail
+ jtrim@orion'' probably won't work as a mail address to me if you
+ happen to be in Alaska. But ``mail jtrim@orion.cair.du.edu''
+ would work because you know that ``orion'' is part of the DOMAIN
+ ``cair.du.edu''. So be sure to add your DOMAINNAMES to your
+ mailing addresses.
+
+ OOtthheerr
+ This is really an OTHER field - you can add what you want here.
+
+ EExxaammppllee
+ (the line is just one line in the confuration file, here it is
+ cut into two lines to make it clearer to read):
+
+ A:Jeff Trim - Denver Colorado, USA:INET jtrim@orion.cair.du.edu
+ UUCP {hao,isis}!udenva!jtrim:Terve! Heippa! Have you said hello
+ in Finnish today?;)::
+
+ Would look like this when printed out with the /admin command:
+
+ Jeff Trim - Denver Colorado, USA INET jtrim@orion.cair.du.edu
+ UUCP {hao,isis}!udenva!jtrim Terve! Hei! Heippa! Have you said
+ hello in Finnish today? ;)
+
+
+ Note that the A record cannot be split across multiple lines; it
+ will typically be longer than 80 characters and will therefore
+ wrap around the screen.
+
+
+ 44..33.. PPoorrtt ccoonnnneeccttiioonnss
+
+
+ IInnttrroodduuccttiioonn
+ The port line adds flexibility to the server's ability to accept
+ connections. By use of this line in the ircd.conf file, it is
+ easy to setup both Unix Domain ports for the server to accept
+ connections on as well as extra internet ports.
+
+ FFoorrmmaatt
+
+ P:<Internet IP#>:<*>:<Internet IP Mask>:<Port>:
+ P:<Directory>:<*>:<*>:<Port>:
+
+
+
+
+ +o Internet Ports
+
+ IInntteerrnneett IIPP##
+ If the host on which the server runs has several IP addresses,
+ you can define for which IP address connections will be
+ accepted. If no is defined here, server will bind to all
+ interfaces (INADDR_ANY). See also MACHINE CONFIGURATION section
+ to properly configure outgoing connections.
+
+ P:192.168.1.194:::6664:
+
+ IInntteerrnneett IIPP## MMaasskk
+ This defines where connections may come from and be accepted.
+ The IP mask uses either *'s or 0's as wildcards. The following
+ two lines are the same:
+
+
+ P:::128.2.*:6664:
+ P:::128.2.0.0:6664:
+
+
+
+ The incoming isn't matched against the mask, rather the ip# string
+ is decoded and compared segment by segment. Thus
+
+ P:::128.2*.1.2:6664:
+
+ will not match 128.20.1.2.
+
+ PPoorrtt
+ The port number field tells the server which port number it
+ should listen on for incoming connections.
+
+ +o Unix Socket Ports.
+
+ DDiirreeccttoorryy
+ The path set in this field should be the directory name in which
+ to create the unix socket for later listening to. The server
+ will attempt to create the directory before creating the unix
+ socket.
+
+ PPoorrtt
+ The port field when used in combination with a pathname in a P-
+ line is the filename created in the directory set in the first
+ field.
+
+ EExxaammppllee
+ P:/tmp/.ircd:::6667:
+
+ Creates a unix socket in the /tmp/.ircd directory called
+ ``6667''. The unix socket (file) must be a numerical.
+
+
+ NNoottee
+ You need at least one P line.
+
+
+ 44..44.. CCoonnnneeccttiioonn CCllaasssseess
+
+
+ IInnttrroodduuccttiioonn
+ To enable more efficient use of MAXIMUM_LINKS, connection
+ classes were implemented. All clients belong to a connection
+ class.
+
+ Each line for a server should have the same number as the sixth
+ field. If it is absent, the server deaults it to 0, using the
+ defaults from the config.h file.
+ To define a connection class, you need to include a Y: line in
+ the ircd.conf file. This enables you to define the ping
+ frequency, connection frequency (for servers) and maximum number
+ of links that class should have.
+
+ Currently, the Y: line MMUUSSTT appear in the ircd.conf file BBEEFFOORREE
+ it is used in any other way.
+
+ FFoorrmmaatt
+
+ Y:<Class>:<Ping Frequency>:<Connect freq>:<Max Links>:<SendQ>:<Local Limit>:<Global Limit>
+
+
+
+ YY This specifies a Class record.
+
+ CCllaassss
+ This is the class number which gains the following attributes
+ and should match that which is on the end of the C/c/N/I/O/S
+ line.
+
+ PPiinngg FFrreeqquueennccyy
+ This field defines how long the server will let the connection
+ remain ``silent'' before sending a PING message to make sure it
+ is still alive. Unless you are sure of what you are doing, use
+ the default value which is in your config.h file.
+
+ CCoonnnneecctt FFrreeqquueennccyy
+ By changing this number, you change how often your server checks
+ to see if it can connect to this server. If you want to check
+ very occasionally, use a large value, but if it is an important
+ connection, you might want a smaller value so that you connect
+ to it as soon as possible.
+
+ MMaaxx LLiinnkkss
+ This field defines the maximum number of links this class will
+ allow from automatic connections (C lines). Using /CONNECT
+ overrides this feature. Also defines the maximum number of
+ users in this class for I/O lines per I/O line.
+
+ SSeennddQQ
+ This field defines the ``SendQ'' value for this class. If this
+ field is not present, the default (from config.h) is assigned.
+
+ LLooccaall lliimmiitt
+ This field is used to limit the number of local concurrent
+ connections. The format is <x>.<y>
+
+ +o x: defines the maximum number of clients from the same host (IP)
+ will be allowed.
+
+ +o y: defines the maximum number of clients from the same user@host
+ (IP) will be allowed. Read note below.
+
+ Only x or y may be set, any unset value defaults to zero.
+
+ GGlloobbaall lliimmiitt
+ This field has the same use as the ``Local limit'' field. But,
+ the connection counts are done for all clients present on the
+ net instead of only counting local clients.
+
+ NNoottee
+ leaving any of the fields (except SendQ) out means their value
+ is 0 (ZERO)!! The SendQ field default value is dynamically
+ determined.
+
+ NNoottee
+ If you plan to use the local user@host limit, please read the
+ following very carefully. The ``user'' value is the ident reply
+ for the connection. If no reply was given then it defaults to
+ ``unknown'' and thus the effective limit will be per host, not
+ per user@host. Also, some ident servers return encrypted data
+ which changes for every connection making the limit void.
+
+ NNoottee
+ Only the local limitation is accurate.
+
+ NNoottee
+ If you define a gobal limit, you should also define a local
+ limit (same or lower) as it won't take more CPU and will make
+ the global limit more accurate.
+
+ NNoottee
+ The local and global limits only affect users (I lines), not
+ servers nor services.
+
+ EExxaammppllee
+ Y:23:120:300:5:100000:0:0: (server class)
+
+ This defines class 23 to allow 5 auto-connections, which are
+ checked every 300 seconds. The connection is allowed to remain
+ silent for 120 seconds before a PING is sent. NOTE: fields 3 &
+ 4 are in seconds. The SendQ is set to 100000 bytes.
+
+ Another feature of connection class is the ability to do
+ automatic routing by using the class as a ``priority''. If you
+ are connected to a server which has a class lower than one of
+ the servers that is ``behind'' it, the server will disconnect
+ the lower class one and schedule a ``new'' connection for the
+ higher class server.
+
+ Y:1:60:0:50:20000:2:5: (client class)
+
+ In case of a client class, the fields are interpreted a bit
+ differently. This class (number 1) can be used by up to 50
+ users. The connections are allowed to remain silent for 60
+ seconds before a PING is set. The SendQ is set to 20000 bytes.
+ A new connection in this class will only be allowed if there
+ aren't more than 2 other local connections from the same IP
+ address, or more than 5 other connections on the net from the
+ same hostname.
+
+ Y:2:60:0:50:20000:2.1:5: (client class)
+
+ In case of a client class, the fields are interpreted a bit
+ differently. This class (number 1) can be used by up to 50
+ users. The connections are allowed to remain silent for 60
+ seconds before a PING is set. The SendQ is set to 20000 bytes.
+ A new connection in this class will only be allowed if there
+ aren't more than 2 other local connections from the same IP
+ address, 1 other local connection from the same user from the
+ same IP address, or more than 5 other connections on the net
+ from the same hostname.
+
+
+ 44..55.. CClliieenntt ccoonnnneeccttiioonnss
+
+ How to let clients connect to your IRCD.
+
+ IInnttrroodduuccttiioonn
+ A client is a program that connects to the ircd daemon (ircd).
+ There are clients written in C, GNU Emacs Lisp and many other
+ languages. The ``irc'' program is the C client. Each person
+ that talks via IRC is running their own client.
+
+ The ircd.conf files contains entries that specify which clients
+ are allowed to connect to your irc daemon. Obviously you want
+ to allow your own machine's clients to connect. You may want to
+ allow clients from other sites to connect. These remote clients
+ will use your server as a connection point. All messages sent
+ by these clients will pass through your machine.
+
+ FFoorrmmaatt
+
+ I:<TARGET Host Addr>:<Password>:<TARGET Hosts NAME>:<Port>:<Class>
+ i:<TARGET Host Addr>:<Password>:<TARGET Hosts NAME>:<Port>:<Class>
+
+
+
+ TTAARRGGEETT HHoosstt AAddddrr
+ Specifies the IP address(es) of the machine(s) that are allowed
+ to connect. If ``user@'' prefixes the actual IP address the
+ server will require that the remote username returned by the
+ ident server be the same as the one given before the ``@''.
+ Wildcards are permitted unless using a bitmask (e.g.
+ 1.2.3.0/24).
+
+ PPaasssswwoorrdd
+ The password that must be given by the client to be allowed on
+ the server.
+
+ TTAARRGGEETT HHoosstt NNAAMMEE
+ Specifies the host name(s) of the machines allowed to connect to
+ the server. If ``user@'' prefixes the actual IP address the
+ server will require that the remote username returned by the
+ ident server be the same as the one given before the ``@''.
+ Wildcards are permitted.
+
+ This field can be empty, it then has a special meaning. See
+ Below.
+
+ PPoorrtt
+ Specifies the port number for which this configuration line is
+ valid. An empty field, or ``0'' matches all ports.
+
+ CCllaassss
+ This field should refer to an existing class. Connections
+ classes are usefull to limit the number of users allowed on the
+ server.
+
+ NNoottee
+ The server first checks if the client hostname (or any aliases)
+ matches the TTAARRGGEETT HHoosstt NNAAMMEE field. If a match is found, the
+ client is accepted. If not, the server checks if the IP address
+ of the client matches the TTAARRGGEETT HHoosstt AAddddrr field. The matching
+ field is used to set the name of the client: for example, if the
+ client matches the TTAARRGGEETT HHoosstt AAddddrr field, it will show on IRC
+ with a numerical address (even if this address is resolvable).
+ If the TTAARRGGEETT HHoosstt NNAAMMEE field is empty, then the host name is
+ always used (when available).
+
+ EExxaammpplleess
+ For example, if you were installing IRC on tolsun.oulu.fi and
+ you wanted to allow examples sake let us assume you were making
+ this file for tolsun and you wanted to let your own clients to
+ connect to your server, you would add this entry to the file:
+
+ I:x::tolsun.oulu.fi::1
+ If you wanted to let remote clients connect, you could add the
+ following lines:
+
+ I:x::*.du.edu::1
+
+ Allow any clients from machines whose names end in ``.du.edu''
+ to connect with no password.
+
+ I:128.214.6.100::nic.funet.fi::1
+
+ Allow clients from a machine with that IP number to connect.
+ Numeric match is enough, name is not required anymore.
+
+ I:x:secret:*.tut.fi::1
+
+ Allow clients from machines matching ``*.tut.fi'' to connect
+ with the password ``secret''.
+
+ I:*::*::1
+
+ Allow anyone from anywhere to connect your server.
+
+ This is the easiest way, but it also allows people to for
+ example dump files to your server, or connect 1000 (or how many
+ open sockets per process your OS allows) clients to your machine
+ and take your network ports. Of course the same things can be
+ done by simply telnetting to your machine's SMTP port (for
+ example).
+
+ I:x::*.fi:6667:1
+
+ Allow clients from machines matching ``*.fi'' to connect on the
+ port 6667.
+
+ I:135.11.35.*::*.net::1
+
+ Allows clients from machines which host name matches ``*.net''
+ or which IP address matches ``135.11.35.*'' to connect to the
+ server. If the host name does not match ``*.net'' then the IP
+ address is used for these clients, even if the host name is
+ known.
+
+ I:135.11.35.*::::1
+
+ Allows clients from machines which IP address matches
+ ``135.11.35.*'' to connect to the server. If the host name is
+ known, is it used as address for these clients.
+
+ NNEEWW!!!!!!
+ As of the 2.7.2d version of the server, the server is able to
+ accept connections on multiple ports. I-lines are required for
+ each P-line to allow connections to be accepted. For unix
+ sockets, this means either adding I:/path/port::/path/port or
+ some variation (wildcards are recognised here). For internet
+ ports, there must be an I-line which allows the host access as
+ normal, but the port field of the I-line must match that of the
+ port of the socket accepting the connectiion. A port number of 0
+ is a wildcard (matches all ports).
+
+ NNEEWW!!!!!!
+ As of the 2.9.1 version of the server, i lines are introduced.
+ They work the same way as I lines, but the clients matching an i
+ line will have a restricted connection. (no nick/mode change, no
+ kick). Such users will have their username prefixed by +, = or -
+ depending on the ident reply.
+
+ 44..66.. OOppeerraattoorr pprriivviilliiggeess
+
+ How to become the IRC administrator on your site
+
+ IInnttrroodduuccttiioonn
+ To become an IRC Administrator, IRC must know who is authorized
+ to become an operator and what their ``Nickname'' and
+ ``Password'' is.
+
+ FFoorrmmaatt
+
+ O:<TARGET Host NAME>:<Password>:<Nickname>:<Port>:<Class>
+
+
+
+ OO Speficies Operator record. If you use capital letter (``O'') in
+ it, it specifies a global operator. Small letter (``o'')
+ specifies a local operator. Local operator has basically the
+ same rights except global operator with some restrictions.
+
+ TTAARRGGEETT HHoosstt NNAAMMEE
+ Tells IRC which host you have the privileges FROM. This means
+ that you should be logged into this host when you ask for the
+ priviliges. If you specify ``tolsun.oulu.fi'' then IRC will
+ expect your CLIENT to be connected at ``tolsun.oulu.fi'' - when
+ you ask for OPERATOR privileges from ``tolsun.oulu.fi''. You
+ cannot be logged in at any other host and be able to use your
+ OPERATOR privileges at tolsun, only when you are connected at
+ TOLSUN will this work - this is a safeguard against unauthorized
+ sites.
+
+ PPaasssswwoorrdd
+ If your AUTHORIZATION Password - this is the password that let's
+ IRC know you are who you say you are! Never tell anyone your
+ password and always keep the ``ircd.conf'' file protected from
+ all of the other users.
+
+ NNiicckknnaammee
+ The Nickname you usually go by - but you can make this what you
+ want.
+
+ PPoorrtt
+ Unused.
+
+ CCllaassss
+ The class field should refer to an existing class (preferably
+ having a lower number than that for the relevant I-line) and
+ determines the maximum number of simultaneous uses of the O-line
+ allowable through the max. links field in the Y-line.
+
+ EExxaammppllee
+ O:orion.cair.du.edu:pyunxc:Jeff::1
+
+ There is an OPERATOR at ``orion.cair.du.edu'' that can get
+ Operator priviliges if he specifies a password of ``pyunxc'' and
+ uses a NICKNAME of ``Jeff''.
+
+
+ 44..77.. RReessttrriicctt ccoonnnneeccttiioonnss
+
+ Let an external program decide if a client should be allowed or not.
+
+ IInnttrroodduuccttiioonn
+ R lines provide a convenient way to handle user access to the
+ server with an external program. The outside program given
+ three parameters: the client's username (set by the USER
+ command), the client's hostname, and the client's ident reply
+ (``unknown'' if none).
+
+ It is expected to return a reply line where the first word is
+ either ``Y'' or ``N'' meaning `Yes Let them in'' or ``No don't
+ let them in''. If the first word begins with neither ``Y'' or
+ ``N'' the default is to let the person on.
+
+ FFoorrmmaatt
+
+ R:<Target Host Name>:<Program>:<User>:::
+
+
+
+ RR This specifies a restrict record.
+
+ TTaarrggeett HHoosstt NNaammee
+ In this field you specify the Hostname that the user is
+ connecting from. If you wanted to restrict connects to IRC from
+ ``orion.cair.du.edu'' then you would want to enter
+ ``orion.cair.du.edu''.
+
+ PPrrooggrraamm
+ This is the external program to run to know if the user is
+ allowed on your server.
+
+ UUsseerr
+ The Username of the user you want removed from IRC. For example
+ ``root''.
+
+
+ 44..88.. EExxcclluuddeedd aaccccoouunnttss
+
+ Remove an errant user from IRC on your site.
+
+ IInnttrroodduuccttiioonn
+ Obviously it is hoped that you wouldn't have to use this
+ command. Unfortunately sometimes a user can become unmanageable
+ and this is your only recourse - the KILL USER command. THIS
+ COMMAND ONLY AFFECTS YOUR SERVER - If this user can connect to
+ another SERVER somewhere else in the IRC-Network then you would
+ have to talk to the administrator on that site to disable his
+ access from that IRCD Server as well.
+
+ FFoorrmmaatt
+
+ K:<Host Name>:<time interval(s)|comment>:<User>:<port>:
+
+
+
+ FFoorrmmaatt
+
+ k:<Host Name>:<time interval(s)|comment>:<Auth>:<port>:
+
+
+
+ KK ``K'' tells the IRCD that you are making a KILL USER command
+ entry.
+
+ HHoosstt NNaammee
+ In this field you specify the Hostname or the IP address (Single
+ IP, Wildcard notation or bitmask notation) that the user is
+ connecting from. If you wanted to REMOVE connects to IRC from
+ ``orion.cair.du.edu'' then you would want to enter
+ ``orion.cair.du.edu''. If you want to REMOVE ALL HOSTS access
+ you can use ``*'' (Wild Card notation) and no matter what host
+ the USERNAME (specified in Field 4) connects from s/he will be
+ denied access. Removing all hosts isn't very smart thing to do
+ though, why would you run an ircd if you allow nobody to connect
+ to it anyways ?
+
+ If you specify an IP address, IP mask, or an IP bitmask, it will
+ match clients connecting from the matching addresses, no matter
+ if they resolve or not.
+
+ You can prefix an IP address, an IP mask, or IP bitmask by ``=''
+ in which case only non resolving matching hosts will be banned.
+
+ ttiimmee iinntteerrvvaall((ss))||ccoommmmeenntt
+ Either leave this field empty or put a comment, then the line
+ active continuously for the specified user/host machine. You
+ may also specify intervals during the line should be active, see
+ examples below.
+
+ UUsseerr
+ The USERNAME of the user you want removed from IRC. For example
+ ``root''.
+
+ AAuutthh
+ If the user's ident server replies with the OTHER type (as
+ opposed to the UNIX type), the reply is not used to set the
+ user's username. (lowercase) k lines can be used in these case
+ to reject users based on their ident reply.
+
+ This field will be matched against the ident server reply. It
+ is important to note that OTHER replies are prefixed with a
+ ``-'' by the ircd, while UNIX replies are not.
+
+ PPoorrtt
+ The port on which the Kill line will be effective. 0 means all
+ ports.
+
+ EExxaammpplleess
+ K:orion.cair.du.edu::jtrim:0:
+
+
+ If user ``jtrim'' connects to IRC from host
+ ``orion.cair.du.edu'' then IMMEDIATELY REMOVE HIM from my IRCD.
+
+ k:*.stealth.net::-43589:0:
+
+ If a user connects from any host that has the suffix
+ ``stealth.net'' and if that host ident server returns ``-43589''
+ - then IMMEDIATELY REMOVE THEM from my IRCD.
+
+ K:*.cair.du.edu::root:0:
+
+ If user ``root'' connects to IRC from any host that has the
+ suffix ``cair.du.edu'' - then IMMEDIATELY REMOVE THEM from my
+ IRCD.
+
+ K:*::vijay:0:
+
+ This line reads ``I don't care WHAT HOST user ``vijay'' is on, I
+ will NEVER allow username ``vijay'' to login to my IRCD.''
+
+ K:*.oulu.fi:0800-1200,1400-1900:*:0:
+
+ This disallows all users from hosts with enddomain ``oulu.fi''
+ access to your server between 8 and 12am, 2 and 7pm. Users get
+ kicked off if they're already signed on when the line becomes
+ active (they'll get a warning 5 minutes before).
+ K:192.11.35.*::*:0:
+
+ This line disallows all hosts whose IP address matches
+ ``192.11.35.*'' to login to the ircd.
+
+ K:=192.11.35.*::*:0:
+
+ This line disallows all hosts whose IP address matches
+ ``192.11.35.*'' and which didn't resolve to login to the ircd.
+
+
+ 44..99.. SSeerrvveerr ccoonnnneeccttiioonnss
+
+ How to connect to other servers, How other servers can connect to you
+
+ WWAARRNNIINNGG:: The hostnames used as examples are really only examples and
+ not meant to be used (simply because they don't work) in real life.
+
+
+ Now you must decide WHICH hosts you want to connect to and WHAT ORDER
+ you want to connect to them in. For my example let us assume I am on
+ the machine "rieska.oulu.fi" and I want to connect to irc daemons on 3
+ other machines:
+
+ +o ``garfield.mit.edu'' - Tertiary Connection
+
+ +o ``irc.nada.kth.se'' - Secondary Connection
+
+ +o ``nic.funet.fi'' - Primary Connection
+
+
+ And I prefer to connect to them in that order, meaning I first want to
+ try connecting to ``nic.funet.fi'', then to ``irc.nada.kth.edu'', and
+ finally to ``garfield.mit.edu''. So if ``nic.funet.fi'' is down or
+ unreachable, the program will try to connect to ``irc.nada.kth.se''.
+ If irc.nada.kth.se is down it will try to connect to garfield and so
+ forth.
+
+ PLEASE limit the number of hosts you will attempt to connect to down
+ to 3. This is because of two main reasons:
+
+ 1. to save your server from causing extra load and delays to users
+
+ 2. to save internet from extra network traffic (remember the old rwho
+ program with traffic problems when the number of machines
+ increased).
+
+
+ FFoorrmmaatt
+
+ C:<TARGET Host Addr>:<Password>:<TARGET Host NAME>:<TARGET PORT>:<Class>
+
+
+
+ for example:
+
+ C:nic.funet.fi:passwd:nic.funet.fi:6667:1
+
+ - or -
+
+ C:128.214.6.100:passwd:nic.funet.fi:6667:1
+
+ - or -
+
+ C:root@nic.funet.fi:passwd:nic.funet.fi:6667:1
+
+ Each field is separated with a ":" charcter:
+
+ CC This field tells the IRC program which option is being
+ configured. "C" corresponds to a server Connect option.
+
+ TTAARRGGEETT HHoosstt AAddddrr
+ Specifies the host name or IP address of the machine to connect
+ to. If ``user@'' prefixes the actual hostname or IP address the
+ server will require that the remote username returned by the
+ ident server be the same as the one given before the ``@''.
+
+ PPaasssswwoorrdd
+ The password of the other host. A password must always be
+ present for the line to be recognized.
+
+ TTAARRGGEETT HHoosstt NNAAMMEE
+ The full hostname of the target machine. This is the name that
+ the TARGET server will identify itself with when you connect to
+ it. If you were connecting to nic.funet.fi you would receive
+ ``nic.funet.fi'' and that is what you should place in this
+ field.
+
+ TTAARRGGEETT PPOORRTT
+ The INTERNET Port that you want to connect to on the TARGET
+ machine. Most of the time this will be set to ``6667''. If this
+ field is left blank, then no connections will be attempted to
+ the TARGET host, and your host will accept connections FROM the
+ TARGET host instead. The port field can contain 2 ports,
+ separated by a . In this case, the first port is used when auto-
+ connecting, the second port is used for the UDP pings to the
+ targer server.
+
+ CCllaassss
+ The class field should refer to an existing class and determines
+ the maximum number of simultaneous uses of the C-line allowable
+ through the max. links field in the Y-line.
+
+ NNEEWW!!!!!!
+ As of the 2.9.3 version of the server, server connections can be
+ compressed with the zlib library. To define a compressed
+ connection, you must have compiled the server with ZIP_LINKS
+ defined (cf 2.h), and use a _lowercase_ C line.
+
+ Some examples:
+
+ +o C:nic.funet.fi::nic.funet.fi:6667:1
+
+ This reads: Connect to host ``nic.funet.fi'', with no password and
+ expect this server to identify itself to you as ``nic.funet.fi''.
+ Your machine will connect to this host to port 6667.
+
+ +o C:18.72.0.252:Jeff:garfield.mit.edu:6667:1
+
+ This reads: Connect to a host at address ``18.72.0.252'', using a
+ password of ``Jeff''. The TARGET server should identify itself as
+ ``garfield.mit.edu''. You will connect to Internet Port 6667 on
+ this host.
+
+ +o C:irc.nada.kth.se::irc.nada.kth.se:1
+
+ This reads: do not attempt to connect to ``irc.nada.kth.se'', if
+ ``irc.nada.kth.se'' requests a connection, allow it to connect.
+
+ Now back to our original problem, we wanted OUR server CONNECT to 3
+ hosts, ``nic.funet.fi'', ``irc.nada.kth.se'' and ``garfield.mit.edu''
+ in that order. So as we enter these entries into the file they must
+ be done in rreevveerrssee order of how we could want to connect to them.
+
+ Here's how it would look if we connected ``nic.funet.fi'' first:
+
+ C:garfield.mit.edu::garfield.mit.edu:6667:1
+ C:irc.nada.kth.se::irc.nada.kth.se:6667:1
+ C:nic.funet.fi::nic.funet.fi:6667:1
+
+ Ircd will attempt to connect to nic.funet.fi first, then to irc.nada
+ and finally to garfield.
+
+ RReecciipprrooccaall eennttrriieess:: Each ``C'' entry requires a corresponding ``N''
+ entry that specifies connection priviliges to other hosts. The ``N''
+ entry contains the password, if any, that you require other hosts to
+ have before they can connect to you. These entries are of the same
+ format as the ``C'' entries.
+
+
+
+ FFoorrmmaatt
+ The format for the NOCONNECT entry in the ``ircd.conf'' is:
+
+ N:<TARGET Host Addr>:<Password>:<TARGET Host NAME>:<Domain Mask>:<Class>
+
+
+
+ Let us assume that ``garfield.mit.edu'' connects to your server and
+ you want to place password authorization authorization on garfield.
+ The ``N'' entry would be:
+
+ N:garfield.mit.edu:golden:garfield.mit.edu::
+
+ This line says: expect a connection from host ``garfield.mit.edu'',
+ and expect a login password of ``golden'', and expect the host to
+ identify itself as ``garfield.mit.edu''.
+
+ N:18.72.0.252::garfield.mit.edu::
+
+ This line says: expect a Connection from host ``18.72.0.252'', and
+ don't expect login password. The connecting host should identify
+ itself as ``garfield.mit.edu''.
+
+ NN ``N'' corresponds to a server Noconnect option.
+
+ TTAARRGGEETT HHoosstt AAddddrr
+ Specifies the host name or IP address of the machine to connect
+ to. If ``user@'' prefixes the actual hostname or IP address the
+ server will require that the remote username returned by the
+ ident server be the same as the one given before the ``@''.
+
+ PPaasssswwoorrdd
+ The password of the other host. A password must always be
+ present for the line to be recognized. If CRYPT_LINK_PASSWORD is
+ defined in config.h, this password must be crypted.
+
+ TTAARRGGEETT HHoosstt NNAAMMEE
+ The full hostname of the target machine. This is the name that
+ the TARGET server will identify itself with when you connect to
+ it. If you were connecting to nic.funet.fi you would receive
+ ``nic.funet.fi'' and that is what you should place in this
+ field.
+
+ DDoommaaiinn MMaasskk
+ Domain masking, see below.
+
+
+ CCllaassss
+ The class field should refer to an existing class.
+
+ WWiillddccaarrddss ddoommaaiinnss
+ To reduce the great amount of servers in IRCnet wildcard DOMAINS
+ were introduced in 2.6. To explain the usage of wildcard domains
+ we take an example of such:
+
+ *.de - a domain name matching all machines in Germany.
+
+ Wildcard domains are useful in that ALL SERVERS in Germany (or
+ any other domain area) can be shown as one to the rest of the
+ world. Imagine 100 servers in Germany, it would be incredible
+ waste of netwotk bandwidth to broadcast all of them to all
+ servers around the world.
+
+ So wildcard domains are a great help, but how to use them ?
+
+ They can be defined in the N-line for a given connection, in
+ place of ``Domain Mask'' you write a magic number called
+ wildcard count.
+
+ Wildcard count tells you HOW MANY PARTS of your server's name
+ should be replaced by a wildcard. For example, your server's
+ name is ``tolsun.oulu.fi'' and you want to represent it as
+ ``*.oulu.fi'' to ``nic.funet.fi''. In this case the wildcard
+ count is 1, because only one word (tolsun) is replaced by a
+ wildcard.
+
+ If the wildcard count would be 2, then the wildcard domain would
+ be ``*.fi''. Note that with wildcard name ``*.fi'' you could NOT
+ connect to ``nic.funet.fi'' because that would result in a
+ server name ccoolllliissiioonn (*.fi matches nic.funet.fi).
+
+ I advice you to not to use wildcard servers before you know for
+ sure how they are used, they are mostly beneficial for backbones
+ of countries and other large areas with common domain.
+
+
+
+ 44..1100.. DDeennyy aauuttoo--ccoonnnneeccttiioonnss
+
+
+ IInnttrroodduuccttiioonn
+ D lines were implemented to give server administrators more
+ control on how auto connections are done. This will most likely
+ only be useful for big networks which have complex
+ configurations.
+
+ FFoorrmmaatt
+
+ D:<Denied Server Mask>:Denied Class:<Server Name>:Server Class:
+
+
+
+ DDeenniieedd SSeerrvveerr MMaasskk
+ This field is matched against all servers currently present on
+ the network.
+
+ DDeenniieedd CCllaassss
+ If this field contains a class number, it will match if any
+ server in that class is currently present on the network. Note
+ that this can be true for any server, even the ones not directly
+ connected.
+
+
+ SSeerrvveerr MMaasskk
+ This field is matched against the server name that the server
+ wants to auto connect to.
+
+ SSeerrvveerr CCllaassss
+ This field is used to match against the class to which belong
+ the servers for which an autoconnect is set.
+
+ EExxaammpplleess
+ D:*.edu::*.fi::
+
+ Don't auto-connect to any ``*.fi'' server if any server present
+ on the network matches ``*.edu''.
+
+ D::2:eff.org:3:
+
+ Do now auto-connect to ``eff.org'', or any server in class ``3''
+ if a server defined to be in class ``2'' is currently present on
+ the network.
+
+
+ 44..1111.. HHuubb ccoonnnneeccttiioonnss
+
+
+ IInnttrroodduuccttiioonn
+ In direct contrast to L-lines, the server also implements H-
+ lines to determine which servers may act as a hub and what they
+ may ``hub for''. If a server is only going to supply its own
+ name (ie act as a solitary leaf) then no H-line is required for,
+ else a H-line must be added.
+
+ FFoorrmmaatt
+
+ H:<Server Mask>:*:<Server Name>::
+
+
+
+ SSeerrvveerr MMaasskk
+ All servers that are allowed via this H-line must match the mask
+ given in this field.
+
+ SSeerrvveerr NNaammee
+ This field is used to match exactly against a server name,
+ wildcards being treated as literal characters.
+
+ EExxaammpplleess
+ H:*.edu::*.bu.edu::
+
+ Allows a server named ``*.bu.edu'' to introduce only servers
+ that match the ``*.edu'' name mask.
+
+ H:*::eff.org::
+
+ Allows ``eff.org'' to introduce (and act as a hub for) any
+ server.
+
+ NNoottee
+ It is possible to have and use multiple H-lines (or L-lines) for
+ the one server. eg:
+
+
+ H:*.edu:*:*.bu.edu::
+ H:*.au:*:*.bu.edu::
+
+
+
+ is allowed as is
+
+
+ L:*.edu:*:*.au::
+ L:*.com:*:*.au::
+
+
+
+
+ 44..1122.. LLeeaaff ccoonnnneeccttiioonnss
+
+
+ IInnttrroodduuccttiioonn
+ To stop servers which should only act as leaves from hubs
+ becoming hubs accidently, the L line was introduced so that hubs
+ can be aware of which servers should and shouldnt be treated as
+ leaves. A leaf server is supposed to remain a node for the
+ entirity of its life whilst connected to the IRC server network.
+ It is quite easy, however for a leaf server to be incorrectly
+ setup and create problems by becoming a node of 2 or more
+ servers, ending its life as a leaf. The L line enables the
+ administrator of an IRC ``Hub server'' to ``stop'' a server
+ which is meant to act as a leaf trying to make itself a hub.
+ If, for example, the leaf server connects to another server
+ which doesnt have an L-line for it, the one which does will drop
+ the connection, once again making the server a leaf.
+
+ FFoorrmmaatt
+
+ L:<Server Mask>:*:<Server Name>:<Max Depth>:
+
+
+
+ SSeerrvveerr MMaasskk
+ Mask of which servers the leaf-like attributes are used on when
+ the server receives SERVER messages. The wildcards * and ? may
+ be used within this field for matching purposes. If this field
+ is empty, it acts the same as if it were a single * (ie matches
+ everything).
+
+ SSeerrvveerr NNaammee
+ The name of the server connected to you that for which you want
+ to enforce leaf-like attributes upon.
+
+ MMaaxx DDeepptthh
+ Maximum depth allowed on that leaf and if not specified, a value
+ of 1 is assumed. The depth is checked each time a SERVER
+ message is received by the server, the hops to the server being
+ the field checked against this max depth and if greater, the
+ connection to the server that made its leaf too deep has its
+ connection dropped. For the L-line to come into effect, both
+ fields, 2 and 4, must match up with the new server being
+ introduced and the server which is responsible for introducing
+ this new server.
+
+
+ 44..1133.. VVeerrssiioonn lliimmiittaattiioonnss
+
+
+ IInnttrroodduuccttiioonn
+ V-lines are used to restrict server connecting to you based on
+ their version and on compile time options.
+
+ FFoorrmmaatt
+
+
+ V:<Version Mask>:<Flags>:<Server Mask>::
+
+
+
+ VVeerrssiioonn MMaasskk
+ The matching version number strings will be rejected.
+
+ FFllaaggss
+ If any flag specified in this field is found in the peer's flags
+ string, it will be rejected.
+
+ SSeerrvveerr MMaasskk
+ This field is used to match server names. The V line will be
+ used for servers matching the mask given in this field.
+
+ SSeerrvveerr TTyyppee
+ Both the VVeerrssiioonn MMaasskk and the FFllaaggss should be prefixed with the
+ server type identification. This implementation uses the id
+ ``IIRRCC'' (starting with version 2.10).
+
+ EExxaammpplleess
+ V:IRC/021001*::*::
+
+ Disallows any ``IRC'' server which version is 2.10.1* to
+ connect.
+
+ V:IRC/021001*:IRC/D:*::
+
+ Disallows any ``IRC'' server which version is 2.10.1* or which
+ has been compiled with DEBUGMODE defined to connect.
+
+ V:*/0209*::::
+
+ Disallows any server using the 2.9 protocol to connect.
+
+ NNoottee
+ It is possible to have and use multiple V-lines for the one
+ server mask.
+
+ V:IRC/021001*::*::
+
+ V:IRC/021002*::*::
+
+ is allowed.
+
+ PPrroottooccooll VVeerrssiioonn
+ Only the 4 first digit of the VVeerrssiioonn NNuummbbeerr are standard: they
+ define the protocol version. The remaining of the string is
+ implementation dependant; matches on this part should be used
+ with particular identification.
+
+ FFllaaggss
+ are not standard. Therefore, this field sshhoouulldd aallwwaayyss contain a
+ specific identification.
+
+
+ 44..1144.. EExxcclluuddeedd mmaacchhiinneess
+
+ Disallowing SERVERS in your irc net.
+
+ IInnttrroodduuccttiioonn
+ In some cases people run into difficulties in net
+ administration. For one reason or another you do not want a
+ certain server to be in your net (for example because of the
+ security holes it opens for every server if it's not secured
+ carefully). In that case you should use Q-lines in your server.
+ When you specify a server name in Q-line, everytime some server
+ link tries to introduce you a server (remember, all server names
+ are broadcast around the net), that name is checked if it
+ matches the Q-lines in your server. If it matches, then yyoouurr
+ sseerrvveerr disconnects the link. Note that just placing Q-lines to
+ your server probably results in yyoouurr sseerrvveerr being left alone,
+ unless other servers have agreed to have the same Q-line in
+ their ircd configuration files as well.
+
+ EExxaammppllee
+ Q::of the security holes:foo.bar.baz::
+
+ This command excludes a server named ``foo.bar.baz'', the reason
+ is given to be security holes (you should give a reason, it is
+ polite). The first field is unused, so leave it empty.
+
+
+ 44..1155.. SSeerrvviiccee ccoonnnneeccttiioonnss
+
+
+ IInnttrroodduuccttiioonn
+ The Service is a special kind of IRC client. It does not have
+ the full abilities of a normal user but can behave in a more
+ active manner than a normal client.
+
+ Services are not intended for interactive usage, and are better
+ suited for automated clients.
+
+ FFoorrmmaatt
+
+ S:<TARGET Host Mask>:<Password>:<Service Name>:<Service Type>:<Class>
+
+
+
+ TTAARRGGEETT HHoosstt MMaasskk
+ The host mask should be set to match the host(s) from which the
+ service will be connecting from. This may be either an IP# or
+ full name (prefered).
+
+ PPaasssswwoorrdd
+ This is the password which must be passed in the SERVICE
+ command.
+
+ SSeerrvviiccee NNaammee
+ The name used by the service. Services don't have nicknames, but
+ a static name defined by the S line.
+
+ SSeerrvviiccee TTyyppee
+ The type of service. It defines the priviledges given to the
+ service. Be very careful in the types you allow. The types can
+ be found in include/service.h
+
+ CCllaassss
+ The class field should refer to an existing class.
+
+ NNootteess
+ A service is not a very useful sort of client, it cannot join
+ channels or issue certain commands although most are available
+ to it. Services are rejected upon sending an unknown or
+ unallowed command. Services however, are not affected by flood
+ control and can be granted special privileges. It is therefore
+ wwiissee ttoo oovveerrsseeee tthhee uussee ooff SS--lliinneess wwiitthh mmuucchh ccaarree..
+
+
+
+
+ 44..1166.. BBoouunnccee sseerrvveerr
+
+
+ IInnttrroodduuccttiioonn
+ This provides you a way to bounce clients to another server.
+ This information is provided to clients which are denied
+ connection, either because their connection class is full, or
+ the server is full, or they are not authorized to connect.
+
+ FFoorrmmaatt
+
+ B:<Class|Host Mask>::<Server Name>:<Port>:
+
+
+
+ BB This specifies a Bounce record.
+
+ CCllaassss||HHoosstt MMaasskk
+ This field specifies to which client this configuration line
+ applies to. It can be either a connection class number, a host
+ mask to be matched against the client's hostname, or an IP
+ address/mask/bitmask to be matched against the client's IP
+ address.
+
+ When the server is completely full, it rejects clients with the
+ ``All connections in use'' message. In this case, the server
+ doesn't process the connections at all, and has no knowledge of
+ the client's host name, or class number. For these cases, this
+ field must be empty.
+
+ SSeerrvveerr NNaammee
+ This specifies the IRC server hostname that the client should
+ use.
+
+ PPoorrtt
+ This specifies the IRC server port that the client should
+ connect to.
+
+ EExxaammppllee
+ B:2::irc.stealth.net:6660:
+
+ Rejected clients in class 2 are advised to use
+ ``irc.stealth.net'' on port 6660.
+
+ B:*.fi::irc.funet.fi:6667:
+
+ Finnish client should use irc.funet.fi when they cannot be taken
+ anymore.
+
+ B:::irc2.stealth.net:6667:
+
+ When the server is completely full, clients should use the
+ secondary server.
+
+
+ 44..1177.. DDeeffaauulltt llooccaall sseerrvveerr ((ffoorr llooccaall cclliieennttss)) **OOBBSSOOLLEETTEEDD**
+
+
+ IInnttrroodduuccttiioonn
+ This defines the default connection for the irc client. If you
+ are running an ircd server on the same machine, you will want to
+ define this command to connect to your own host. If your site
+ is not running a server then this command should contain the
+ TARGET host's connection information and password (if any).
+
+
+ FFoorrmmaatt
+
+ U:<TARGET Host addr>:<Password>:<TARGET Host NAME>:<Internet Port>
+
+
+
+ EExxaammpplleess
+ U:tolsun.oulu.fi::tolsun.oulu.fi:6667
+
+ U:128.214.5.6::tolsun.oulu.fi:6667
+
+ U:tolsun.oulu.fi::tolsun.oulu.fi
+
+ If the port number is omitted, irc will default to using 6667.
+
+
+ 55.. RReellaatteedd rreessoouurrcceess
+
+
+ MMaaiilliinngg lliisstt
+ A list is dedicated to the people using ircd. If you have
+ trouble running ircd, or wish to discuss the future, you can
+ subscribe by sending an email to majordomo@irc.org, with
+ ``ssuubbssccrriibbee iirrccdd--uusseerrss'' in the body.
+
+ If you just have a question and don't want to subscribe to the
+ list, mail to ircd-users@irc.org. Be sure to indicate which
+ version you are using.
+
+ DDeevveellooppmmeenntt
+ Technical discussions and development are carried on ircd-
+ dev@irc.org. People interested in very early testing, and/or
+ working on the source code are welcome. This is done by sending
+ an email to majordomo@irc.org, with ``ssuubbssccrriibbee iirrccdd--ddeevv'' in
+ the body.
+
+ FFAAQQ
+ It can be found on the WWW, at
+ <http://www.stealth.net/~kalt/irc/faq.html>.
+
+ WWWWWW 22..99
+ Vesa Ruokonen has also put serveral pages related to the 2.9
+ servers on the WWW: <http://www.irc.org/~irc/server/>.
+
+
+ 66.. RReeppoorrttiinngg aa bbuugg
+
+ If you encounter a bug in the software, here is how and where to
+ report it.
+
+
+ 66..11.. HHooww ttoo rreeppoorrtt aa bbuugg
+
+ To save everyone time, make sure that your e-mail contains all the
+ information related to your problem. In particular, we need to know:
+
+ PPaacckkaaggee vveerrssiioonn
+ The IRC software version you are using: please include the
+ output obtained by running ``irc -v'' for the client, and/or
+ ``ircd -v'' for the server.
+
+ Also, let us know if you have applied any patch to the package
+ or if it is the vanilla version.
+
+ OOSS Please, indicate which OS version you are running.
+
+ CCoonnffiigguurraattiioonn
+ If it is related to a configuration problem with the server,
+ include the relevant parts of the configuration file.
+
+ BBaacckkttrraaccee
+ If the bug results in a crash, please include the backtrace.
+ (This can be done, for example, by running ``gdb'' on the core
+ file, and typing ``where'').
+
+ FFiixx
+ If you have a fix, don't forget to include it.
+
+
+ 66..22.. WWhheerree ttoo sseenndd aa bbuugg rreeppoorrtt
+
+ Reports should be sent to ircd-bugs@irc.org. Your report will be
+ reviewed and forwarded to the appropriate mailing list.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+