]> git.netwichtig.de Git - user/henk/code/inspircd.git/blobdiff - docs/inspircd.conf.example
Added <link:hidden> to docs
[user/henk/code/inspircd.git] / docs / inspircd.conf.example
index dd8400af2acf8ada6d575e18edb6dbcb0ccd5423..a11eac17d591f31d517bc0e8f1824d68898de812 100644 (file)
@@ -1,32 +1,55 @@
 ########################################################################
-#                                                                     #
-#                    ---------------------------                      #
-#                    InspIRCd Configuration File                      #
-#                    ---------------------------                      #
-#                                                                     #
+#                                                                      #
+#               ___                ___ ____   ____    _                #
+#              |_ _|_ __  ___ _ __|_ _|  _ \ / ___|__| |               #
+#               | || '_ \/ __| '_ \| || |_) | |   / _` |               #
+#               | || | | \__ \ |_) | ||  _ <| |__| (_| |               #
+#              |___|_| |_|___/ .__/___|_| \_\\____\__,_|               #
+#                            |_|                                       #
+#      ____             __ _                       _   _               #
+#     / ___|___  _ __  / _(_) __ _ _   _ _ __ __ _| |_(_) ___  _ __    #
+#    | |   / _ \| '_ \| |_| |/ _` | | | | '__/ _` | __| |/ _ \| '_ \   #
+#    | |__| (_) | | | |  _| | (_| | |_| | | | (_| | |_| | (_) | | | |  #
+#     \____\___/|_| |_|_| |_|\__, |\__,_|_|  \__,_|\__|_|\___/|_| |_|  #
+#                            |___/                                     #
+#                                                                      #
 ##################################||####################################
-                                #||#
+                                 #||#
 ##################################||####################################
-#                                                                     #
+#                                                                      #
 #         This is an example of the config file for InspIRCd.          #
 #             Change the options to suit your network                  #
-#                                                                     #
-#                 Last updated on : 05/31/2005                         #
+#                                                                      #
+#                 Last updated on : 09/01/2006                         #
 #                 Written by      : CC  (cc@backchat.co.za)            #
 #                 Updated by      : katsklaw (katsklaw@gmail.com)      #
+#                 Updated by      : brain (brain@inspircd.org)         #
+#                                                                      #
+#    ____                _   _____ _     _       ____  _ _   _         #
+#   |  _ \ ___  __ _  __| | |_   _| |__ (_)___  | __ )(_) |_| |        #
+#   | |_) / _ \/ _` |/ _` |   | | | '_ \| / __| |  _ \| | __| |        #
+#   |  _ <  __/ (_| | (_| |   | | | | | | \__ \ | |_) | | |_|_|        #
+#   |_| \_\___|\__,_|\__,_|   |_| |_| |_|_|___/ |____/|_|\__(_)        #
+#                                                                      #
+#   Lines prefixed with READ THIS BIT, as shown above, are IMPORTANT   #
+#   lines, and you REALLY SHOULD READ THEM. Yes, THIS MEANS YOU. Even  #
+#   if you've configured InspIRCd before, these probably indicate      #
+#   something new or different to this version and you SHOULD READ IT. #
+#                                                                      #
 ########################################################################
 
 
 
 #-#-#-#-#-#-#-#-#-#-#-#-  SERVER DESCRIPTION  -#-#-#-#-#-#-#-#-#-#-#-#-
-#                                                                    #
+#                                                                     #
 #   Here is where you enter the information about your server.        #
-#                                                                    #
-#  Syntax is as follows:                                             #
-#     <server name="server.name"                                     #
-#      description="Server Description"                                      #
-#      network="MyNetwork">                                          #
-#                                                                    #
+#                                                                     #
+#  Syntax is as follows:                                              #
+#                                                                     #
+#     <server name="server.name"                                      #
+#      description="Server Description"                               #
+#      network="MyNetwork">                                           #
+#                                                                     #
 
 <server name="penguin.omega.org.za"
         description="Waddle World"
 
 
 #-#-#-#-#-#-#-#-#-#-#-#-   ADMIN INFORMATION   -#-#-#-#-#-#-#-#-#-#-#-#
-#                                                                    #
-#   Describes the Server Administrator's real name, nick             #
-#   and email address.                                               #
-#                                                                    #
-#  Syntax is as follows:                                             #
-#      <admin name="real name"                                       #
-#             nick="nick name"                                       #
-#              email="email@address.com">                            #
-#                                                                    #
+#                                                                     #
+#   Describes the Server Administrator's real name, nick              #
+#   and email address.                                                #
+#                                                                     #
+#  Syntax is as follows:                                              #
+#       <admin name="real name"                                       #
+#              nick="nick name"                                       #
+#              email="email@address.com">                             #
+#                                                                     #
 
 <admin  name="Johnny English"
         nick="MI5"
 
 
 #-#-#-#-#-#-#-#-#-#-#-#-   PORT CONFIGURATION   -#-#-#-#-#-#-#-#-#-#-#-
-#                                                                    #
-#   Enter the port and address bindings here.                        #
-#                                                                    #
-#  bind address - specifies which the address which ports bind       
-#  port                - opens an unused port                                #
+#                                                                     #
+#   Enter the port and address bindings here.                         #
+#                                                                     #
+#  bind address - specifies which the address which ports bind        #
+#  port         - opens an unused port                                #
 #  type         - can be 'clients' or 'servers'. The clients type is  #
 #                 a standard tcp based socket, the servers type is a  #
 #                 also a TCP based connection but of a different      #
 #                 format.                                             #
-#  default      - if the port type is 'servers' then this can be      #
-#                 specified. If set to 'yes', it indicates that this  #
-#                 port is the default route for all /connect commands.#
-#                 if you do not bind your default route to an         #
-#                 external ip, or all ip's, you may have connection   #
-#                 problems.                                           #
-#                                                                    #
+#    ____                _   _____ _     _       ____  _ _   _        #
+#   |  _ \ ___  __ _  __| | |_   _| |__ (_)___  | __ )(_) |_| |       #
+#   | |_) / _ \/ _` |/ _` |   | | | '_ \| / __| |  _ \| | __| |       #
+#   |  _ <  __/ (_| | (_| |   | | | | | | \__ \ | |_) | | |_|_|       #
+#   |_| \_\___|\__,_|\__,_|   |_| |_| |_|_|___/ |____/|_|\__(_)       #
+#                                                                     #
+#  If you want to link servers to InspIRCd you must load the          #
+#  m_spanningtree module! Please see the modules list below for       #
+#  information on how to load this module! If you do not load this    #
+#  module, server ports will NOT be bound!                            #
+#                                                                     #
 #  Leaving address empty binds to all available interfaces            #
-#                                                                    #
+#                                                                     #
 #  Syntax is as follows:                                              #
 #                                                                     #
-# <bind address="ip number" port="port" type="clients">                      #
-# <bind address="ip number" port="port" type="servers">                      #
-# <bind address="ip number" port="port" type="servers" default="yes"> #
-#                                                                    #
+# <bind address="ip number" port="port" type="clients">               #
+# <bind address="ip number" port="port" type="servers">               #
+#                                                                     #
 
 <bind address="" port="6660" type="clients">
-<bind address="" port="7000" type="servers" default="yes">
+<bind address="" port="7000" type="servers">
 <bind address="" port="7001" type="servers">
 
 
 #                                                                     #
 #  Syntax is as follows:                                              #
 #       <power diepass="die password" restartpass="restart password"  #
-#       pause="secs before dying">                                   #
+#        pause="secs before dying">                                   #
 #                                                                     #
 
 <power diepass="diepass" restartpass="restartpass" pause="2">
 # slash (/) in which case it is treated as an absolute path.          #
 #                                                                     #
 # Syntax is as follows:                                               #
-#       <include="file.conf">                                         #
+#       <include file="file.conf">                                    #
 #                                                                     #
-# A perfect example of an included conf file is helpop.conf           #
-#<include="helpop.conf">
 
-#-#-#-#-#-#-#-#-#-#-  CONNECTIONS CONFIGURATION   -#-#-#-#-#-#-#-#-#-#-
-#                                                                    #
+#-#-#-#-#-#-#-#-#-#-  CONNECTIONS CONFIGURATION  -#-#-#-#-#-#-#-#-#-#-#
+#                                                                     #
 #   This is where you can configure which connections are allowed     #
-#   and denied access onto your server.                                      #
-#   The password is optional.                                        #
+#   and denied access onto your server.                               #
+#   The password is optional.                                         #
 #   You may have as many of these as you require.                     #
 #   To allow/deny all connections use a *                             #
-#                                                                    #
-#  Syntax is as follows:                                             #
-#      <connect allow="ip or host">                                  #
-#      <connect allow="ip or host" password="blahblah">              #
+#                                                                     #
+#  Syntax is as follows:                                              #
+#                                                                     #
+#       <connect allow="ip or host">                                  #
+#       <connect allow="ip or host" password="blahblah">              #
 #       <connect allow="ip or host" password="blah" timeout="10">     #
-#      <connect allow="ip or host" timeout="blah" flood="5">         #
+#       <connect allow="ip or host" timeout="blah" flood="5">         #
 #       <connect allow="ip or host" threshold="8" pingfreq="120">     #
 #       <connect allow="ip or host" sendq="99999" revcq="696969">     #
-#      <connect deny="ip or host">                                   #
+#       <connect deny="ip or host">                                   #
 #                                                                     #
 #   You may optionally include timeout="x" on any allow line, which   #
 #   specifies the amount of time given before an unknown connection   #
 #   is closed if USER/NICK/PASS are not given. This value is in secs  #
-#                                                                    #
+#                                                                     #
 #   You may also optionally include a flood="x" line which indicates  #
 #   the number of lines a user may place into their buffer at once    #
 #   before they are disconnected for excess flood. The default is to  #
 
 
 #-#-#-#-#-#-#-#-#-#-#-#-  CLASS CONFIGURATION   -#-#-#-#-#-#-#-#-#-#-#-
-#                                                                    #
+#                                                                     #
 #   Classes are a group of commands which are grouped together        #
 #   and given a unique name. They used to define which commands       #
 #   are available to certain types of Operators.                      #
-#                                                                    #
-#  Syntax is as follow:                                                      #
-#      <class name="name" commands="oper commands">                  #
-#                                                                    #
+#                                                                     #
+#  Syntax is as follows:                                              #
+#                                                                     #
+#       <class name="name" commands="oper commands">                  #
+#                                                                     #
+#    ____                _   _____ _     _       ____  _ _   _        #
+#   |  _ \ ___  __ _  __| | |_   _| |__ (_)___  | __ )(_) |_| |       #
+#   | |_) / _ \/ _` |/ _` |   | | | '_ \| / __| |  _ \| | __| |       #
+#   |  _ <  __/ (_| | (_| |   | | | | | | \__ \ | |_) | | |_|_|       #
+#   |_| \_\___|\__,_|\__,_|   |_| |_| |_|_|___/ |____/|_|\__(_)       #
+#                                                                     #
+#  You are not forced to give these classes the names given below.    #
+#  You can create your own named classes, if you want, in fact that   #
+#  is the whole idea of this system!                                  #
+#                                                                     #
 
 <class name="Shutdown" commands="DIE RESTART REHASH">
 <class name="ServerLink" commands="CONNECT SQUIT">
 
 
 #-#-#-#-#-#-#-#-#-#-#-#-  OPERATOR COMPOSITION   -#-#-#-#-#-#-#-#-#-#-#
-#                                                                    #
+#                                                                     #
 #   This is where you specify which types of operators you have on    #
 #   your server, as well as the commands they are allowed to use.     #
-#   This works alongside with the classes specified above.           #
-#                                                                    #
-#  type name  - a name for the combined class types                  #
+#   This works alongside with the classes specified above.            #
+#                                                                     #
+#  type name  - a name for the combined class types                   #
+#                                                                     #
 #  classes    - specified above, used for flexibility for the         #
 #               server admin to decide on which operators get         #
-#              what commands                                         #
-#  host              - hostmask operators will recieve on oper-up.           #
-#(optional)                                                          #
+#               what commands                                         #
+#                                                                     #
+#  host       - optional hostmask operators will recieve on oper-up.  #
+#                                                                     #
+#  Syntax is as follows:                                              #
+#                                                                     #
+#       <type name="name" classes="class name" host="oper hostmask">  #
+#                                                                     #
+#    ____                _   _____ _     _       ____  _ _   _        #
+#   |  _ \ ___  __ _  __| | |_   _| |__ (_)___  | __ )(_) |_| |       #
+#   | |_) / _ \/ _` |/ _` |   | | | '_ \| / __| |  _ \| | __| |       #
+#   |  _ <  __/ (_| | (_| |   | | | | | | \__ \ | |_) | | |_|_|       #
+#   |_| \_\___|\__,_|\__,_|   |_| |_| |_|_|___/ |____/|_|\__(_)       #
+#                                                                     #
+#  You are not forced to give these types the names given below.      #
+#  You can create your own named types, if you want, in fact that     #
+#  is the whole idea of this system!                                  #
 #                                                                     #
-#  Syntax is as follows:                                             #
-#      <type name="name" classes="class name" host="oper hostmask">  #
-#                                                                    #
 
 <type name="NetAdmin" classes="OperChat BanControl HostCloak Shutdown ServerLink" host="netadmin.omega.org.za">
 <type name="GlobalOp" classes="OperChat BanControl HostCloak ServerLink" host="ircop.omega.org.za">
-<type name="LocalOp" classes="OperChat BanControl HostCloak" host="local.omega.org.za">
 <type name="Helper" classes="HostCloak" host="helper.omega.org.za">
 
 
 #-#-#-#-#-#-#-#-#-#-#-  OPERATOR CONFIGURATION   -#-#-#-#-#-#-#-#-#-#-#
-#                                                                    #
+#                                                                     #
 #   Opers are defined here. This is a very important section.         #
 #   Remember to only make operators out of truthworthy people.        #
-#                                                                    #
-#  name      - oper name, best to use lower-case                     #
-#  password  - password to oper-up,                                  #
+#                                                                     #
+#  name      - oper name, best to use lower-case                      #
+#                                                                     #
+#  password  - password to oper-up,                                   #
 #              encryption not supported by inspircd. However, there   #
-#              are modules that allow for oper password encryption.   #                      
+#              are modules that allow for oper password encryption.   #      
+#                                                                     #
+#  host      - host of client allowed to oper-up.                     #
+#              wildcards accepted                                     #
+#                                                                     #
+#  type      - specified above, defines the kind of operator          #
 #                                                                     #
-#  host      - host of client allowed to oper-up, more hostmasks      #
-#              seperated by spaces, wildcards accepted               #
-#  type      - specified above, defines the kind of operator         #
-#                                                                    #
 #  Syntax is as follows:                                              #
-#      <oper name="login"                                            #
-#            password="pass"                                         #
-#             host="hostmask@of.oper"                                #
-#             type="oper type">                                              #
-#                                                                    #
+#       <oper name="login"                                            #
+#             password="pass"                                         #
+#             host="hostmask@of.oper"                                 #
+#             type="oper type">                                       #
+#                                                                     #
 
 <oper   name="katsklaw"
-       password="s3cret"
+        password="s3cret"
         host="*@*"
         type="NetAdmin">
 
 # Defines which servers can link to this one, and which servers this  #
 # server may create outbound links to.                                #
 #                                                                     #
-# name        - The name is the canocial name of the server, it does  #
-#               not have to resolve - but it is expected to be sent   #
-#               in the remote servers connection info.                #
-# ipaddr      - Valid host or ip address for remote server. *         #
-# port        - Valid listening UDP port for remote server.           #
-# sendpass    - Password to send to create an outbound connection to  #
-#               this server.                                          #
-# recvpass    - Password to receive to accept an inbound connection   #
-#               from this server.                                     #
-# autoconnect - Sets the server to autoconnect. Where x is the number #
-# (optional)    of seconds between attempts.  300 = 5 minutes         #
+# name        -   The name is the canocial name of the server, does   #
+#                 not have to resolve - but it is expected to be sent #
+#                 in the remote servers connection info.              #
+# ipaddr      -   Valid host or ip address for remote server. *       #
+#                                                                     #
+# port        -   The TCP port for the remote server.                 #
+#                                                                     #
+# sendpass    -   Password to send to create an outbound connection   #
+#                 to this server.                                     #
+#                                                                     #
+# recvpass    -   Password to receive to accept an inbound connection #
+#                 from this server.                                   #
+#                                                                     #
+# autoconnect -   Sets the server to autoconnect. Where x is the num. #
+# (optional)      of seconds between attempts. e.g. 300 = 5 minutes.  #
+#                                                                     #
+# encryptionkey - Encryption key to be used for AES encryption, where #
+#                 supported. Links using the spanning tree protocol   #
+#                 support AES. The encryption key must be EXACTLY 8,  #
+#                 16 or 32 characters in length for a 64, 128 or 256  #
+#                 bit key, respectively.                              #
+#                                                                     #
+# hidden        - When using m_spanningtree.so for linking. you may   #
+#                 set this to 'yes', and if you do, the IP address/   #
+#                 hostname of this connection will NEVER be shown to  #
+#                 any opers on the network. In /STATS c its address   #
+#                 will show as *@<hidden>, and during CONNECT and     #
+#                 inbound connections, its IP will show as <hidden>   #
+#                 UNLESS the connection fails (e.g. due to a bad      #
+#                 password or servername)                             #
 #                                                                     #
 # to u:line a server (give it extra privilages required for running   #
 # services, Q, etc) you must include the <uline server> tag as shown  #
 # you MUST put a.b.com into your link block, and NOT the IP address   #
 # of a.b.com. The system uses reverse resolution.                     #
 #                                                                     #
+#    ____                _   _____ _     _       ____  _ _   _        #
+#   |  _ \ ___  __ _  __| | |_   _| |__ (_)___  | __ )(_) |_| |       #
+#   | |_) / _ \/ _` |/ _` |   | | | '_ \| / __| |  _ \| | __| |       #
+#   |  _ <  __/ (_| | (_| |   | | | | | | \__ \ | |_) | | |_|_|       #
+#   |_| \_\___|\__,_|\__,_|   |_| |_| |_|_|___/ |____/|_|\__(_)       #
+#                                                                     #
+#  If you want to link servers to InspIRCd you must load the          #
+#  m_spanningtree module! Please see the modules list below for       #
+#  information on how to load this module! If you do not load this    #
+#  module, server links will NOT work!                                #
+#                                                                     #
 
 <link name="hub.penguin.org"
-       ipaddr="penguin.box.com"
-       port="7000"
+        ipaddr="penguin.box.com"
+        port="7000"
         autoconnect="300"
-       sendpass="outgoing!password"
-       recvpass="incoming!password">
+        sendpass="outgoing!password"
+        recvpass="incoming!password">
 
 <link name="services.antarctic.com"
-       ipaddr="localhost"
-       port="7000"
-       sendpass="penguins"
-       recvpass="polarbears">
+        ipaddr="localhost"
+        port="7000"
+        sendpass="penguins"
+        recvpass="polarbears">
 
 <uline server="services.antarctic.com">
 
 
 #-#-#-#-#-#-#-#-#-#-  MISCELLANEOUS CONFIGURATION  -#-#-#-#-#-#-#-#-#-#
-#                                                                    #
+#                                                                     #
 #   These options let you define the path to your motd and rules      #
-#   files.                                                           #
-#                                                                    #
+#   files.                                                            #
+#                                                                     #
 
 <files  motd="/home/cc/inspircd/conf/inspire.motd"
-       rules="/home/cc/inspircd/conf/inspire.rules">
+        rules="/home/cc/inspircd/conf/inspire.rules">
 
 #-#-#-#-#-#-#-#-#-#-#-#-#-#-# DNS SERVER -#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
 #                                                                     #
 # Define your DNS server address here. InspIRCd has its own resolver  #
 # and you must define this otherwise nobody's host will resolve. The  #
-# timeout value is in seconds.                                       #
+# timeout value is in seconds.                                        #
+#                                                                     #
+#    ____                _   _____ _     _       ____  _ _   _        #
+#   |  _ \ ___  __ _  __| | |_   _| |__ (_)___  | __ )(_) |_| |       #
+#   | |_) / _ \/ _` |/ _` |   | | | '_ \| / __| |  _ \| | __| |       #
+#   |  _ <  __/ (_| | (_| |   | | | | | | \__ \ | |_) | | |_|_|       #
+#   |_| \_\___|\__,_|\__,_|   |_| |_| |_|_|___/ |____/|_|\__(_)       #
+#                                                                     #
+# When choosing a server, be sure to choose one which will do a       #
+# RECURSIVE LOOKUP. InspIRCd's resolver does not currently do these   #
+# recursive lookups itself, to save time and resources. The dns       #
+# server recommended by the InspIRCd team is bind, available from the #
+# ISC website. If your DNS server does not do a recursive lookup, you #
+# will be able to notice this by the fact that none of your users are #
+# resolving even though the DNS server appears to be up! Most ISP and #
+# hosting provider DNS servers support recursive lookups.             #
 #                                                                     #
 
 <dns server="127.0.0.1" timeout="5">
 
 
 #-#-#-#-#-#-#-#-#-#-#-#-#-  SERVER OPTIONS   -#-#-#-#-#-#-#-#-#-#-#-#-#
-#                                                                    #
+#                                                                     #
 #   Settings to define which features are useable on your server.     #
-#                                                                    #
+#                                                                     #
 #  prefixquit    - a prefix for a client's quit message               #
+#                                                                     #
 #  loglevel      - specifies what detail of messages to log in the    #
 #                  log file. You may select from debug, verbose,      #
 #                  default, sparse and none.                          #
-#  allowhalfop   - allows the +h channel mode                        #
+#  allowhalfop   - allows the +h channel mode                         #
+#                                                                     #
 #  noservices    - If noservices is true, yes, or 1, then the first   #
 #                  user into a channel gets founder status. This is   #
 #                  only useful on networks running the m_chanprotect  #
 #                  module without services.                           #
+#                                                                     #
 #  netbuffersize - size of the buffer used to receive data from       #
 #                  clients. The ircd may only read() this amount      #
-#                 of text in one go at any time. (OPTIONAL)          #
+#                  of text in one go at any time. (OPTIONAL)          #
+#                                                                     #
 #  maxwho        - The maximum number of results returned by a /WHO   #
 #                  query. This is to prevent /WHO being used as a     #
 #                  spam vector or means of flooding an ircd. The      #
 #                  default is 128, it is not recommended to raise it  #
 #                  above 1024. Values up to 65535 are permitted.      #
+#                                                                     #
 #  somaxconn     - The maximum number of sockets that may be waiting  #
 #                  in the accept queue. This usually allows the ircd  #
 #                  to soak up more connections in a shorter space of  #
 #                  descriptors. Some systems may only allow this to   #
 #                  be up to 5 (ugh) while others such as FreeBSD will #
 #                  default to a much nicer 128.                       #
+#                                                                     #
 #  moduledir     - This optional value indicates a runtime change of  #
 #                  the location where modules are to be found. This   #
 #                  does not add a supplementary directory. There can  #
 #                  only be one module path.                           #
+#                                                                     #
 #  softlimit     - This optional feature allows a defined softlimit.  #
 #                  if defined sets a soft maxconnections value, has   #
 #                  to be less than the ./configure maxclients         #
 #                                                                     #
+#  operonlystats - The operonlystats field is optional and specifies  #
+#                  which stats characters in /STATS may only be       #
+#                  requested by an IRC operator. Stats characters in  #
+#                  this field are case sensitive and enforced as      #
+#                  oper-only independent of if they are in a module   #
+#                  or the core.                                       #
+#                                                                     #
+#  customversion - If you specify this configuration item, and it is  #
+#                  not set to an empty value, then when a user does   #
+#                  a /VERSION command on the ircd, this string will   #
+#                  be displayed as the second portion of the output,  #
+#                  replacing the system 'uname', compile flags and    #
+#                  socket engine/dns engine names. You may use this   #
+#                  to enhance security, or simply for vanity.         #
+#                                                                     #
+# maxtargets     - The maxtargets field is optional, and if not       #
+#                  defined, defaults to 20. It indicates the maximum  #
+#                  number of targets which may be given to commands   #
+#                  such as PRIVMSG, KICK etc.                         #
+#                                                                     #
+
 
 <options prefixquit="Quit: "
-        loglevel="default"
-        netbuffersize="10240"
+         loglevel="default"
+         netbuffersize="10240"
          maxwho="128"
-        noservices="0"
+         noservices="0"
          somaxconn="128"
-        softlimit="128"
+         softlimit="128"
+         operonlystats="oclgkz"
+         customversion=""
+         maxtargets="20"
          allowhalfop="yes">
 
 
 #  WINDOWS USERS PLEASE NOTE: You can still load these modules! They  #
 #  are incorporated into the executable and can be loaded and removed #
 #  similarly to if they were in a ramdisk.                            #
+#    ____                _   _____ _     _       ____  _ _   _        #
+#   |  _ \ ___  __ _  __| | |_   _| |__ (_)___  | __ )(_) |_| |       #
+#   | |_) / _ \/ _` |/ _` |   | | | '_ \| / __| |  _ \| | __| |       #
+#   |  _ <  __/ (_| | (_| |   | | | | | | \__ \ | |_) | | |_|_|       #
+#   |_| \_\___|\__,_|\__,_|   |_| |_| |_|_|___/ |____/|_|\__(_)       #
+#                                                                     #
+# To link servers to InspIRCd, you MUST load the m_spanningtree       #
+# module, as shown below. If you DO NOT do this, server links will    #
+# NOT work at all. ie. The ports will NOT bind, and /connect will not #
+# work properly. This is by design, to allow for the implementation   #
+# of other linking protocols in modules in the future.                #
+
+#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
+# Spanning Tree module - allows linking of servers using the spanning
+# tree protocol (see the READ THIS BIT section above).
+#
+#<module name="m_spanningtree.so">
 
 #-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
 # Foobar module - does nothing
 # Oper modes module: Allows you to specify modes to add/remove on oper
 #<module name="m_opermodes.so">
 
+#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
+# SWHOIS module: Allows you to add arbitary lines to user WHOIS.
+#<module name="m_swhois.so">
+
 
 #-#-#-#-#-#-#-#-#-#-#-  FILTER  CONFIGURATION  -#-#-#-#-#-#-#-#-#-#-#-#
 #                                                                     #
 #                    must be at the start of the line to trigger the  #
 #                    alias. May contain spaces, but case insensitive. #
 # replace     -      The text to replace 'text' with. Usually this    #
-#                    will be "PRIVMSG ServiceName :" or similar.      #
+#                    will be "PRIVMSG ServiceName" or similar.        #
 # requires    -      If you provide a value for 'requires' this means #
 #                    the given nickname MUST be online for the alias  #
 #                    to successfully trigger. If they are not, then   #
 #                    of a user trying to impersonate a service.       #
 #                                                                     #
 
-<alias text="NICKSERV" replace="PRIVMSG NickServ :" requires="NickServ" uline="yes">
-<alias text="CHANSERV" replace="PRIVMSG ChanServ :" requires="ChanServ" uline="yes">
-<alias text="NS" replace="PRIVMSG NickServ :" requires="NickServ" uline="yes">
-<alias text="CS" replace="PRIVMSG ChanServ :" requires="ChanServ" uline="yes">
+<alias text="NICKSERV" replace="PRIVMSG NickServ" requires="NickServ" uline="yes">
+<alias text="CHANSERV" replace="PRIVMSG ChanServ" requires="ChanServ" uline="yes">
+<alias text="NS" replace="PRIVMSG NickServ" requires="NickServ" uline="yes">
+<alias text="CS" replace="PRIVMSG ChanServ" requires="ChanServ" uline="yes">
 
 #-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#- YAWN  -#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
 #                                                                     #
 
 
 #########################################################################
-#                                                                      #
-#               -InspIRCd Development and Coding Team-                 #
-#                          www.inspircd.org                            #
-#                                                                      #
+#                                                                       #
+#                     - InspIRCd Development Team -                     #
+#                        http://www.inspircd.org                        #
+#                                                                       #
 #########################################################################