-########################################################################\r# #\r# ___ ___ ____ ____ _ #\r# |_ _|_ __ ___ _ __|_ _| _ \ / ___|__| | #\r# | || '_ \/ __| '_ \| || |_) | | / _` | #\r# | || | | \__ \ |_) | || _ <| |__| (_| | #\r# |___|_| |_|___/ .__/___|_| \_\\____\__,_| #\r# |_| #\r# ____ __ _ _ _ #\r# / ___|___ _ __ / _(_) __ _ _ _ _ __ __ _| |_(_) ___ _ __ #\r# | | / _ \| '_ \| |_| |/ _` | | | | '__/ _` | __| |/ _ \| '_ \ #\r# | |__| (_) | | | | _| | (_| | |_| | | | (_| | |_| | (_) | | | | #\r# \____\___/|_| |_|_| |_|\__, |\__,_|_| \__,_|\__|_|\___/|_| |_| #\r# |___/ #\r# #\r##################################||####################################\r #||# \r##################################||####################################\r# #\r# This is an example of the config file for InspIRCd. #\r# Change the options to suit your network #\r# #\r# $Id$\r# #\r# ____ _ _____ _ _ ____ _ _ _ #\r# | _ \ ___ __ _ __| | |_ _| |__ (_)___ | __ )(_) |_| | #\r# | |_) / _ \/ _` |/ _` | | | | '_ \| / __| | _ \| | __| | #\r# | _ < __/ (_| | (_| | | | | | | | \__ \ | |_) | | |_|_| #\r# |_| \_\___|\__,_|\__,_| |_| |_| |_|_|___/ |____/|_|\__(_) #\r# #\r# Lines prefixed with READ THIS BIT, as shown above, are IMPORTANT #\r# lines, and you REALLY SHOULD READ THEM. Yes, THIS MEANS YOU. Even #\r# if you've configured InspIRCd before, these probably indicate #\r# something new or different to this version and you SHOULD READ IT. #\r# #\r########################################################################\r# #\r# Unalphabeticalise the modules list at your own risk #\r# #\r########################################################################\r\r\r#-#-#-#-#-#-#-#-#-#-#-#- SERVER DESCRIPTION -#-#-#-#-#-#-#-#-#-#-#-#-\r# #\r# Here is where you enter the information about your server. #\r# #\r# Syntax is as follows: #\r# #\r# <server name="server.name" #\r# description="Server Description" #\r# networkemail="Email address shown on g/k/z/q lines" #\r# network="MyNetwork"> #\r# #\r\r<server name="penguin.omega.org.za"\r description="Waddle World"\r network="Omega">\r\r\r#-#-#-#-#-#-#-#-#-#-#-#- ADMIN INFORMATION -#-#-#-#-#-#-#-#-#-#-#-#\r# #\r# Describes the Server Administrator's real name (optionally), #\r# nick, and email address. #\r# #\r# Syntax is as follows: #\r# <admin name="real name" #\r# nick="nick name" #\r# email="email@address.com"> #\r# #\r\r<admin name="Johnny English"\r nick="MI5"\r email="MI5@the.best.secret.agent">\r\r\r#-#-#-#-#-#-#-#-#-#-#-#- PORT CONFIGURATION -#-#-#-#-#-#-#-#-#-#-#-\r# #\r# Enter the port and address bindings here. #\r# #\r# bind address - specifies which address ports bind to. Leaving this #\r# field blank binds the port to all IPs available. #\r# #\r# port - The port number to bind to. You may specify a port #\r# range here, e.g. "6667-6669,7000,7001". If you do #\r# this, the server will count each port within your #\r# range as a seperate binding, making the above #\r# example equivalent to five seperate bind tags. #\r# A failure on one port in the range does not prevent #\r# the entire range from being bound, just that one #\r# port number. #\r# #\r# type - can be 'clients' or 'servers'. The clients type is #\r# a standard tcp based socket, the servers type is a #\r# also a TCP based connection but of a different #\r# format. SSL support is provided by modules, to #\r# enable SSL support, please read the module section #\r# of this configuration file. #\r# #\r# ssl - When using m_ssl_gnutls.so or m_ssl_openssl.so #\r# modules, you must define this value to use ssl on #\r# that port. valid values are 'gnutls' or 'openssl' #\r# respectively. If the module is not loaded, this #\r# setting is ignored. #\r# #\r# transport - If you have m_spanningtree.so loaded, along with #\r# either of the SSL modules (m_ssl_gnutls or #\r# m_ssl_openssl) or m_ziplinks.so, then you may make #\r# use of this value. #\r# setting it to 'openssl' or 'gnutls' or 'zip' #\r# indicates that the port should accept connections #\r# using the given transport name. Transports are #\r# layers which sit on top of a socket and change the #\r# way data is sent and received, e.g. encryption, #\r# compression, and other such things. Because this #\r# may not be limited in use to just encryption, #\r# the 'ssl' value used for client ports does not #\r# exist for servers, and this value is used instead. #\r# ____ _ _____ _ _ ____ _ _ _ #\r# | _ \ ___ __ _ __| | |_ _| |__ (_)___ | __ )(_) |_| | #\r# | |_) / _ \/ _` |/ _` | | | | '_ \| / __| | _ \| | __| | #\r# | _ < __/ (_| | (_| | | | | | | | \__ \ | |_) | | |_|_| #\r# |_| \_\___|\__,_|\__,_| |_| |_| |_|_|___/ |____/|_|\__(_) #\r# #\r# If you want to link servers to InspIRCd you must load the #\r# m_spanningtree module! Please see the modules list below for #\r# information on how to load this module! If you do not load this #\r# module, server ports will NOT be bound! #\r# #\r# Leaving address empty binds to all available interfaces #\r# #\r# Syntax is as follows: #\r# #\r# <bind address="ip address" port="port" type="clients"> #\r# <bind address="ip address" port="port" type="servers"> #\r# #\r# If InspIRCd is built for IPV6, and you wish to accept IPV4 clients, #\r# then you can specify IPV4 ip addresses here to bind. You may also #\r# use the 4in6 notation, ::ffff:1.2.3.4, where 1.2.3.4 is the IPV4 #\r# address to bind the port, but as of InspIRCd 1.1.1, this is not #\r# required. #\r# #\r# ------------------------------------------------------------------- #\r# #\r# PLEASE NOTE: If you have build InspIRCd as an ipv6 server, and you #\r# specify an empty bind address, the binding will be bound to ALL THE #\r# IPV6 IP ADDRESSES, and not the ipv4 addresses. If you are using an #\r# ipv6 enabled InspIRCd and want to bind to multiple IPV4 addresses #\r# in this way, you must specify them by hand. If you have built the #\r# server for ipv4 connections only, then specifying an empty bind #\r# address binds the port to all ipv4 IP addresses, as expected. #\r# #\r\r<bind address="" port="6000" type="clients">\r<bind address="" port="6660-6669" type="clients" ssl="gnutls">\r\r# When linking servers, the openssl and gnutls transports are largely\r# link-compatible and can be used alongside each other or either/or\r# on each end of the link without any significant issues.\r\r<bind address="" port="7000,7001" type="servers">\r<bind address="1.2.3.4" port="7005" type="servers" transport="openssl">\r\r\r#-#-#-#-#-#-#-#-#-#- DIE/RESTART CONFIGURATION -#-#-#-#-#-#-#-#-#-#-\r# #\r# You can configure the passwords here which you wish to use for #\r# the die and restart commands. Only trusted ircops who will #\r# need this ability should know the die and restart password. #\r# #\r# Syntax is as follows: #\r# <power diepass="die password" restartpass="restart password" #\r# pause="secs before dying"> #\r# #\r\r<power diepass="" restartpass="" pause="2">\r\r\r#-#-#-#-#-#-#-#-#-# INCLUDE CONFIGURATION #-#-#-#-#-#-#-#-#-#-#-#-#-#\r# #\r# This optional tag allows you to include another config file #\r# allowing you to keep your configuration tidy. The configuration #\r# file you include will be treated as part of the configuration file #\r# which includes it, in simple terms the inclusion is transparent. #\r# #\r# All paths to config files are relative to the directory of the main #\r# config file inspircd.conf, unless the filename starts with a forward#\r# slash (/) in which case it is treated as an absolute path. #\r# #\r# Syntax is as follows: #\r#<include file="file.conf"> #\r# #\r\r#-#-#-#-#-#-#-#-#-#- CONNECTIONS CONFIGURATION -#-#-#-#-#-#-#-#-#-#-#\r# #\r# This is where you can configure which connections are allowed #\r# and denied access onto your server. The password is optional. #\r# You may have as many of these as you require. To allow/deny all #\r# connections, use a '*' or 0.0.0.0/0. #\r# #\r# Syntax is as follows: #\r# #\r# <connect allow="1.2.3.0/24" password="blahblah" #\r# timeout="10" timeout="blah" flood="5" #\r# threshold="8" pingfreq="120" sendq="99999" #\r# revcq="696969" localmax="3" globalmax="3" #\r# port="6660"> #\r# #\r# <connect deny="127.0.0.1" port="6667"> #\r# #\r# IP masks may be specified in CIDR format or wildcard format, #\r# for IPV4 and IPV6. You *cannot* use hostnames in the allow or #\r# deny field, as the state is applied before the user's DNS has #\r# been resolved. #\r# #\r# You may optionally include timeout="x" on any allow line, which #\r# specifies the amount of time given before an unknown connection #\r# is closed if USER/NICK/PASS are not given. This value is in secs #\r# #\r# You should also include a flood="x" line which indicates #\r# the number of lines a user may place into their buffer at once #\r# before they are disconnected for excess flood. This feature can #\r# not be disabled, however it can be set to extremely high values, #\r# rendering it effectively disabled. A recommended value is 10. #\r# A counter is maintained for each user which is reset every #\r# 'threshold' seconds and specifying this threshold value with #\r# threshold="X" indicates how often the counter is reset. For #\r# example, with flood="5" and threshold="8", the user may not send #\r# more than 5 lines in 8 secs. #\r# #\r# You may optionally specify the sendq size and ping frequency of #\r# each connect:allow line using the pingfreq="X" and sendq="X" #\r# settings as shown in the full example below. #\r# The ping frequency is specified in seconds, and the sendq size #\r# in bytes. It is recommended, although not enforced, that you #\r# should never set your sendq size to less than 8k. Send Queues are #\r# dynamically allocated and can grow as needed up to the maximum #\r# size specified. #\r# #\r# The optional recvq value is the maximum size which users in this #\r# group may grow their receive queue to. This is recommended to be #\r# kept pretty low compared to the sendq, as users will always #\r# receive more than they send in normal circumstances. The default #\r# if not specified is 4096. #\r# #\r# The sendq is the data waiting to be sent TO THE USER. #\r# The recvq is the data being received FROM THE USER. #\r# The names sendq and recvq are from the SERVER'S PERSPECTIVE not #\r# that of the user... Just to clear up any confusion or complaints #\r# that these are backwards :p #\r# #\r# The localmax and globalmax values can be used to enforce local #\r# and global session limits on connections. The session limits are #\r# counted against all users, but applied only to users within the #\r# class. For example, if you had a class 'A' which has a session #\r# limit of 3, and a class 'B' which has a session limit of 5, and #\r# somehow, two users managed to get into class B which also match #\r# class A, there is only one connection left for this IP now in A, #\r# but if they can connect again to B, there are three. You get the #\r# idea (i hope). #\r# #\r# The optional port value determines which port the connect tag is #\r# handling. If left out the connect tag covers all bound ports else #\r# only incoming connections on the specified port will match. Port #\r# tags may be used on connect allow and connect deny tags. #\r# #\r\r<connect allow="196.12.*" password="secret" port="6667">\r\r<connect allow="*"\r timeout="60"\r flood="20"\r threshold="1"\r pingfreq="120"\r sendq="262144"\r recvq="8192"\r localmax="3"\r globalmax="3">\r\r<connect deny="69.254.*">\r<connect deny="3ffe::0/32">\r\r\r#-#-#-#-#-#-#-#-#-#-#-#- CLASS CONFIGURATION -#-#-#-#-#-#-#-#-#-#-#-\r# #\r# Classes are a group of commands which are grouped together #\r# and given a unique name. They used to define which commands #\r# are available to certain types of Operators. #\r# #\r# Syntax is as follows: #\r# #\r# <class name="name" commands="oper commands"> #\r# #\r# ____ _ _____ _ _ ____ _ _ _ #\r# | _ \ ___ __ _ __| | |_ _| |__ (_)___ | __ )(_) |_| | #\r# | |_) / _ \/ _` |/ _` | | | | '_ \| / __| | _ \| | __| | #\r# | _ < __/ (_| | (_| | | | | | | | \__ \ | |_) | | |_|_| #\r# |_| \_\___|\__,_|\__,_| |_| |_| |_|_|___/ |____/|_|\__(_) #\r# #\r# You are not forced to give these classes the names given below. #\r# You can create your own named classes, if you want, in fact that #\r# is the whole idea of this system! #\r# #\r# Note: It is possible to make a class which covers all available #\r# commands. To do this, specify commands="*". This is not really #\r# recommended, as it negates the whole purpose of the class system, #\r# however it is provided for fast configuration (e.g. in test nets) #\r# #\r\r<class name="Shutdown" commands="DIE RESTART REHASH LOADMODULE UNLOADMODULE RELOAD">\r<class name="ServerLink" commands="CONNECT SQUIT RCONNECT MKPASSWD MKSHA256">\r<class name="BanControl" commands="KILL GLINE KLINE ZLINE QLINE ELINE">\r<class name="OperChat" commands="WALLOPS GLOBOPS SETIDLE SPYLIST SPYNAMES">\r<class name="HostCloak" commands="SETHOST SETIDENT SETNAME CHGHOST CHGIDENT">\r\r\r#-#-#-#-#-#-#-#-#-#-#-#- OPERATOR COMPOSITION -#-#-#-#-#-#-#-#-#-#-#\r# #\r# This is where you specify which types of operators you have on #\r# your server, as well as the commands they are allowed to use. #\r# This works alongside with the classes specified above. #\r# #\r# type name - a name for the combined class types #\r# a type name cannot contain spaces, however if you #\r# put an _ symbol in the name, it will be translated #\r# to a space when displayed in a WHOIS. #\r# #\r# classes - specified above, used for flexibility for the #\r# server admin to decide on which operators get #\r# what commands. Class names are case sensitive, #\r# seperate multiple class names with spaces. #\r# #\r# host - optional hostmask operators will receive on oper-up. #\r# #\r# Syntax is as follows: #\r# #\r# <type name="name" classes="class names" host="oper hostmask"> #\r# #\r# ____ _ _____ _ _ ____ _ _ _ #\r# | _ \ ___ __ _ __| | |_ _| |__ (_)___ | __ )(_) |_| | #\r# | |_) / _ \/ _` |/ _` | | | | '_ \| / __| | _ \| | __| | #\r# | _ < __/ (_| | (_| | | | | | | | \__ \ | |_) | | |_|_| #\r# |_| \_\___|\__,_|\__,_| |_| |_| |_|_|___/ |____/|_|\__(_) #\r# #\r# You are not forced to give these types the names given below. #\r# You can create your own named types, if you want, in fact that #\r# is the whole idea of this system! #\r# #\r\r<type name="NetAdmin" classes="OperChat BanControl HostCloak Shutdown ServerLink" host="netadmin.omega.org.za">\r<type name="GlobalOp" classes="OperChat BanControl HostCloak ServerLink" host="ircop.omega.org.za">\r<type name="Helper" classes="HostCloak" host="helper.omega.org.za">\r\r\r#-#-#-#-#-#-#-#-#-#-#- OPERATOR CONFIGURATION -#-#-#-#-#-#-#-#-#-#-#\r# #\r# Opers are defined here. This is a very important section. #\r# Remember to only make operators out of truthworthy people. #\r# #\r# name - oper name, This is case sensitive, so it is best to #\r# use lower-case. #\r# #\r# password - password to oper-up, also case sensitive. #\r# encryption is supported via modules. You may load #\r# modules for MD5 or SHA256 encryption, and if you do, #\r# this value will be a hash value, otherwise put a #\r# plaintext password in this value. #\r# #\r# host - hosts of client allowed to oper-up. #\r# wildcards accepted, seperate multiple hosts with a #\r# space. You may also specify CIDR ip addresses. #\r# #\r# fingerprint - When using the m_ssl_oper_cert.so module, you may #\r# specify a key fingerprint here. This can be obtained #\r# using the /fingerprint command whilst the module is #\r# loaded, or from the notice given to you when you #\r# connect to the ircd using a client certificate, #\r# and will lock this oper block to only the user who #\r# has that specific key/certificate pair. #\r# This enhances security a great deal, however it #\r# requires that opers use clients which can send ssl #\r# client certificates, if this is configured for that #\r# oper. Note that if the m_ssl_oper.so module is not #\r# loaded, and/or one of m_ssl_openssl or m_ssl_gnutls #\r# is not loaded, this configuration option has no #\r# effect and will be ignored. #\r# #\r# type - Defines the kind of operator. This must match a type #\r# tag you defined above, and is case sensitive. #\r# #\r# Syntax is as follows: #\r# <oper name="login" #\r# password="pass" #\r# host="hostmask@of.oper" #\r# fingerprint="hexsequence" #\r# type="oper type"> #\r# #\r\r<oper name="Brain"\r password="s3cret"\r host="ident@dialup15.isp.com *@localhost *@server.com *@3ffe::0/16"\r type="NetAdmin">\r\r\r#-#-#-#-#-#-#-#-#-#-#- SERVER LINK CONFIGURATION -#-#-#-#-#-#-#-#-#-#\r# #\r# Defines which servers can link to this one, and which servers this #\r# server may create outbound links to. #\r# #\r# name - The name is the canocial name of the server, does #\r# not have to resolve - but it is expected to be set #\r# in the remote servers connection info. #\r# #\r# ipaddr - Valid host or ip address for remote server. These #\r# hosts are resolved on rehash, and cached, if you #\r# specify a hostname, so if you find that your server #\r# is still trying to connect to an old IP after you #\r# have updated your dns, try rehashing and then #\r# attempting the connect again. #\r# #\r# port - The TCP port for the remote server. #\r# #\r# sendpass - Password to send to create an outbound connection #\r# to this server. #\r# #\r# recvpass - Password to receive to accept an inbound connection #\r# from this server. #\r# #\r# autoconnect - Sets the server to autoconnect. Where x is the num. #\r# (optional) of seconds between attempts. e.g. 300 = 5 minutes. #\r# #\r# transport - If defined, this is a transport name implemented by #\r# another module. Transports are layers on top of #\r# plaintext connections, which alter them in certain #\r# ways. Currently the three supported transports are #\r# 'openssl' and 'gnutls' which are types of SSL #\r# encryption, and 'zip' which is for compression. #\r# If you define a transport, both ends of the #\r# connection must use a compatible transport for the #\r# link to succeed. OpenSSL and GnuTLS are link- #\r# compatible with each other. #\r# #\r# statshidden - When using m_spanningtree.so for linking. you may #\r# set this to 'yes', and if you do, the IP address/ #\r# hostname of this connection will NEVER be shown to #\r# any opers on the network. In /STATS c its address #\r# will show as *@<hidden>, and during CONNECT and #\r# inbound connections, its IP will show as <hidden> #\r# UNLESS the connection fails (e.g. due to a bad #\r# password or servername) #\r# #\r# allowmask - When this is defined, it indicates a range of IP #\r# addresses to allow for this link (You may use CIDR #\r# or wildcard form for this address). #\r# e.g. if your server is going to connect to you from #\r# the range 1.2.3.1 through 1.2.3.255, put 1.2.3.0/24 #\r# into this value. If it is not defined, then only #\r# the ipaddr field of the server shall be allowed. #\r# #\r# failover - If you define this option, it must be the name of a #\r# different link tag in your configuration. This #\r# option causes the ircd to attempt a connection to #\r# the failover link in the event that the connection #\r# to this server fails. For example, you could define #\r# two hub uplinks to a leaf server, and set an #\r# american server to autoconnect, with a european #\r# hub as its failover. In this situation, your ircd #\r# will only try the link to the european hub if the #\r# american hub is unreachable. NOTE that for the #\r# intents and purposes of this option, an unreachable #\r# server is one which DOES NOT ANSWER THE CONNECTION. #\r# If the server answers the connection with accept(), #\r# EVEN IF THE CREDENTIALS ARE INVALID, the failover #\r# link will not be tried! Failover settings will also #\r# apply to autoconnected servers as well as manually #\r# connected ones. #\r# #\r# timeout - If this is defined, then outbound connections will #\r# time out if they are not connected within this many #\r# seconds. If this is not defined, the default of ten #\r# seconds is used. #\r# #\r# bind - If you specify this value, then when creating an #\r# outbound connection to the given server, the IP you #\r# place here will be bound to. This is for multi- #\r# homed servers which may have multiple IP addresses. #\r# If you do not define this value, the first IP that #\r# is not empty or localhost from your <bind> tags #\r# will be bound to. This is usually acceptable, #\r# however if your server has multiple network cards #\r# then you may have to manually specify the bind #\r# value instead of leaving it to automatic binding. #\r# You can usually tell if you need to set this by #\r# looking for the error 'Could not assign requested #\r# address' in your log when connecting to servers. #\r# #\r# hidden - If this is set to true, yes, or 1, then the server #\r# is completely hidden from non-opers. It does not #\r# show in LINKS and it does not show in MAP. Also, #\r# any servers which are child servers of this one #\r# in the network will *also* be hidden. Use with #\r# care! You can use this to 'mask off' sections of #\r# the network so that users only see a small portion #\r# of a much larger net. It should NOT be relied upon #\r# as a security tool, unless it is being used for #\r# example to hide a non-client hub, for which clients #\r# do not have an IP address or resolvable hostname. #\r# #\r# to u:line a server (give it extra privilages required for running #\r# services, Q, etc) you must include the <uline server> tag as shown #\r# in the example below. You can have as many of these as you like. #\r# #\r# WARNING: Unlike other ircds, u:lining a server allows ALL users on #\r# that server to operoverride modes. This should only be used for #\r# services and protected oper servers! #\r# #\r# ------------------------------------------------------------------- #\r# #\r# NOTE: If you have built your server as an ipv6 server, then when a #\r# DNS lookup of a server's host occurs, AAAA records (ipv6) are #\r# priorotized over A records (ipv4). Therefore, if the server you are #\r# connecting to has both an IPV6 ip address and an IPV4 ip address in #\r# its DNS entry, the IPV6 address will *always* be selected. To #\r# change this behaviour simply specify the IPV4 IP address rather #\r# than the hostname of the server. #\r# #\r# ------------------------------------------------------------------- #\r# #\r# ____ _ _____ _ _ ____ _ _ _ #\r# | _ \ ___ __ _ __| | |_ _| |__ (_)___ | __ )(_) |_| | #\r# | |_) / _ \/ _` |/ _` | | | | '_ \| / __| | _ \| | __| | #\r# | _ < __/ (_| | (_| | | | | | | | \__ \ | |_) | | |_|_| #\r# |_| \_\___|\__,_|\__,_| |_| |_| |_|_|___/ |____/|_|\__(_) #\r# #\r# If you want to link servers to InspIRCd you must load the #\r# m_spanningtree module! Please see the modules list below for #\r# information on how to load this module! If you do not load this #\r# module, server links will NOT work! #\r# #\r# Also, if you define any transports, you must load the modules for #\r# these transports BEFORE you load m_spanningtree, e.g. place them #\r# above it in the configuration file. Currently this means the three #\r# modules m_ssl_gnutls, m_ziplinks and m_ssl_openssl, depending on #\r# which you choose to use. #\r# #\r\r<link name="hub.penguin.org"\r ipaddr="penguin.box.com"\r port="7000"\r allowmask="69.58.44.0/24"\r autoconnect="300"\r failover="hub.other.net"\r timeout="15"\r transport="gnutls"\r bind="1.2.3.4"\r statshidden="no"\r hidden="no"\r sendpass="outgoing!password"\r recvpass="incoming!password">\r\r<link name="services.antarctic.com"\r ipaddr="localhost"\r port="7000"\r allowmask="127.0.0.0/8"\r sendpass="penguins"\r recvpass="polarbears">\r\r\r#-#-#-#-#-#-#-#-#-#-#-#- ULINES CONFIGURATION #-#-#-#-#-#-#-#-#-#-#-#-#\r# This tag defines a ulined server. A U-Lined server has special #\r# permissions, and should be used with caution. Services servers are #\r# usually u-lined in this manner. #\r# #\r# The 'silent' value if set to yes indicates that this server should #\r# not generate quit and connect notices, which can cut down on noise #\r# to opers on the network. #\r# #\r<uline server="services.antarctic.com" silent="yes">\r\r\r#-#-#-#-#-#-#-#-#-#- MISCELLANEOUS CONFIGURATION -#-#-#-#-#-#-#-#-#-#\r# #\r# These options let you define the path to your motd and rules #\r# files. If these are relative paths, they are relative to the #\r# configurtion directory. #\r# #\r\r<files motd="inspircd.motd.example"\r rules="inspircd.rules.example">\r\r#-#-#-#-#-#-#-#-#-#-#-# MAXIMUM CHANNELS -#-#-#-#-#-#-#-#-#-#-#-#-#-#-#\r# #\r# This optional configuration tag lets you define the maximum number #\r# of channels that both opers and users may be on at any one time. #\r# the default is 20 for user and 60 for opers if this tag is not #\r# defined. Remote users are not restricted in any manner. #\r# #\r\r<channels users="20"\r opers="60">\r\r#-#-#-#-#-#-#-#-#-#-#-#-#-#-# DNS SERVER -#-#-#-#-#-#-#-#-#-#-#-#-#-#-#\r# #\r# Define your DNS server address here. InspIRCd has its own resolver. #\r# If you do not define this value, then then InspIRCd will attempt to #\r# determine your DNS server from your operating system. On POSIX #\r# platforms, InspIRCd will read /etc/resolv.conf, and populate this #\r# value with the first DNS server address found. On Windows platforms #\r# InspIRCd will check the registry, and use the DNS server of the #\r# first active network interface, if one exists. #\r# If a DNS server cannot be determined from these checks, the default #\r# value '127.0.0.1' is used instead. The timeout value is in seconds. #\r# #\r# ____ _ _____ _ _ ____ _ _ _ #\r# | _ \ ___ __ _ __| | |_ _| |__ (_)___ | __ )(_) |_| | #\r# | |_) / _ \/ _` |/ _` | | | | '_ \| / __| | _ \| | __| | #\r# | _ < __/ (_| | (_| | | | | | | | \__ \ | |_) | | |_|_| #\r# |_| \_\___|\__,_|\__,_| |_| |_| |_|_|___/ |____/|_|\__(_) #\r# #\r# When choosing a server, be sure to choose one which will do a #\r# RECURSIVE LOOKUP. InspIRCd's resolver does not currently do these #\r# recursive lookups itself, to save time and resources. The dns #\r# server recommended by the InspIRCd team is bind, available from the #\r# ISC website. If your DNS server does not do a recursive lookup, you #\r# will be able to notice this by the fact that none of your users are #\r# resolving even though the DNS server appears to be up! Most ISP and #\r# hosting provider DNS servers support recursive lookups. #\r# #\r# ------------------------------------------------------------------- #\r# #\r# NOTE: if you have built InspIRCd with IPV6 support, then both #\r# ipv6 and ipv4 addresses are allowed here, and also in the system #\r# resolv.conf file. Remember that an ipv4 dns server can still #\r# resolve ipv6 addresses, and vice versa. #\r# #\r\r<dns server="127.0.0.1" timeout="5">\r\r# An example of using an IPV6 nameserver\r#<dns server="::1" timeout="5">\r\r#-#-#-#-#-#-#-#-#-#-#-#-#-#-# PID FILE -#-#-#-#-#-#-#-#-#-#-#-#-#-#-#\r# #\r# Define the path to the PID file here. The PID file can be used to #\r# rehash the ircd from the shell or to terminate the ircd from the #\r# shell using shell scripts, perl scripts etc, and to monitor the #\r# ircd's state via cron jobs. If this is a relative path, it will be #\r# relative to the configuration directory, and if it is not defined, #\r# the default of 'inspircd.pid' is used. #\r# #\r\r#<pid file="/path/to/inspircd.pid">\r\r#-#-#-#-#-#-#-#-#-#-#-#-#- BANLIST LIMITS #-#-#-#-#-#-#-#-#-#-#-#-#-#-#\r# #\r# Use these tags to customise the ban limits on a per channel basis. #\r# the tags are read from top to bottom, and any tag found which #\r# matches the channels name applies the banlimit to that channel. #\r# It is advisable to put an entry with the channel as '*' at the #\r# bottom of the list. If none are specified or no maxbans tag is #\r# matched, the banlist size defaults to 64 entries. #\r# #\r\r<banlist chan="#morons" limit="128">\r<banlist chan="*" limit="69">\r\r#-#-#-#-#-#-#-#-#-#-#- DISABLED COMMANDS -#-#-#-#-#-#-#-#-#-#-#-#-#-#\r# #\r# This tag is optional, and specifies one or more commands which are #\r# not available to non-operators. For example you may wish to disable #\r# NICK and prevent non-opers from changing their nicknames. #\r# Note that any disabled commands take effect only after the user has #\r# 'registered' (e.g. after the initial USER/NICK/PASS on connection) #\r# so for example disabling NICK will not cripple your network. #\r# #\r\r#<disabled commands="TOPIC MODE">\r\r\r#-#-#-#-#-#-#-#-#-#-#-#-#-#-#- RTFM LINE -#-#-#-#-#-#-#-#-#-#-#-#-#-#\r# #\r# Just remove this... Its here to make you read ALL of the config #\r# file options ;) #\r\r<die value="You should probably edit your config *PROPERLY* and try again.">\r\r\r\r#-#-#-#-#-#-#-#-#-#-#-#-#- SERVER OPTIONS -#-#-#-#-#-#-#-#-#-#-#-#-#\r# #\r# Settings to define which features are useable on your server. #\r# #\r# prefixquit - A prefix to be placed on the start of a client's #\r# quit message #\r# #\r# suffixquit - A suffix to be placed on the end of a client's #\r# quit message. #\r# #\r# fixedquit - A fixed quit message to display for all client #\r# QUITS. If specified, overrides both prefixquit #\r# and suffixquit options. #\r# #\r# loglevel - specifies what detail of messages to log in the #\r# log file. You may select from debug, verbose, #\r# default, sparse and none. #\r# #\r# allowhalfop - allows the +h channel mode #\r# #\r# noservices - If noservices is true, yes, or 1, then the first #\r# user into a channel gets founder status. This is #\r# only useful on networks running the m_chanprotect #\r# module without services. #\r# #\r# qaprefixes - If qaprefixes is true, yes, or 1, then users #\r# with +q or +a will get the ~ or & prefixes #\r# used in unreal. This is only useful on networks #\r# running the m_chanprotect module #\r# #\r# deprotectself - If this value is set to yes, true, or 1, then any #\r# user with +q or +a may remove the +q or +a from #\r# themselves. The default setting is to not enable #\r# this feature, which stops even the founder taking #\r# away their founder status without using services. #\r# #\r# deprotectothers-If this value is set to yes, true, or 1, then any #\r# user with +q or +a may remove the +q or +a from #\r# other users. The default setting is to not enable #\r# this feature, so that only +q may remove +a, and #\r# nothing but services may remove +q. #\r# #\r# cyclehosts - If this is set to true, yes or 1, then when a #\r# user's hostname changes, they will appear to quit #\r# and then rejoin with their new host. This prevents #\r# clients from being confused by host changes, #\r# especially in the case of bots, and it is #\r# recommended that this option is enabled. #\r# #\r# netbuffersize - size of the buffer used to receive data from #\r# clients. The ircd may only read() this amount #\r# of text in one go at any time. (OPTIONAL) #\r# #\r# maxwho - The maximum number of results returned by a /WHO #\r# query. This is to prevent /WHO being used as a #\r# spam vector or means of flooding an ircd. The #\r# default is 128, it is not recommended to raise it #\r# above 1024. Values up to 65535 are permitted. If #\r# this value is omitted, any size WHO is allowed by #\r# anyone. #\r# #\r# somaxconn - The maximum number of sockets that may be waiting #\r# in the accept queue. This usually allows the ircd #\r# to soak up more connections in a shorter space of #\r# time when increased but please be aware there is a #\r# system defined maximum value to this, the same way #\r# there is a system defined maximum number of file #\r# descriptors. Some systems may only allow this to #\r# be up to 5 (ugh) while others such as FreeBSD will #\r# default to a much nicer 128. #\r# #\r# moduledir - This optional value indicates a runtime change of #\r# the location where modules are to be found. This #\r# does not add a supplementary directory. There can #\r# only be one module path. #\r# #\r# softlimit - This optional feature allows a defined softlimit. #\r# if defined sets a soft maxconnections value, has #\r# to be less than the ./configure maxclients #\r# #\r# userstats - The userstats field is optional and specifies #\r# which stats characters in /STATS may be requested #\r# by non-operators. Stats characters in this field #\r# are case sensitive and are allowed to users #\r# independent of if they are in a module or the core #\r# #\r# operspywhois - If this is set then when an IRC operator uses #\r# /WHOIS on a user they will see all channels, even #\r# ones if channels are secret (+s), private (+p) or #\r# if the target user is invisible +i. #\r# #\r# customversion - If you specify this configuration item, and it is #\r# not set to an empty value, then when a user does #\r# a /VERSION command on the ircd, this string will #\r# be displayed as the second portion of the output, #\r# replacing the system 'uname', compile flags and #\r# socket engine/dns engine names. You may use this #\r# to enhance security, or simply for vanity. #\r# #\r# maxtargets - The maxtargets field is optional, and if not #\r# defined, defaults to 20. It indicates the maximum #\r# number of targets which may be given to commands #\r# such as PRIVMSG, KICK etc. #\r# #\r# hidesplits - When set to 'yes', will hide split server names #\r# from non-opers. Non-opers will see '*.net *.split' #\r# instead of the server names in the quit message, #\r# identical to the way IRCu displays them. #\r# #\r# hidebans - When set to 'yes', will hide gline, kline, zline #\r# and qline quit messages from non-opers. For #\r# example, user A who is not an oper will just see #\r# (G-Lined) while user B who is an oper will see the #\r# text (G-Lined: Reason here) instead. #\r# #\r# hidewhois - When defined with a non-empty value, the given #\r# text will be used in place of the user's server #\r# in WHOIS, when a user is WHOISed by a non-oper. #\r# For example, most nets will want to set this to #\r# something like '*.netname.net' to conceal the #\r# actual server the user is on. #\r# #\r# flatlinks - When you are using m_spanningtree.so, and this #\r# value is set to true, yes or 1, /MAP and /LINKS #\r# will be flattened when shown to a non-oper. #\r# #\r# hideulines - When you are using m_spanningtree.so, and this #\r# value is set to true, yes or 1, then U-lined #\r# servers will be hidden in /LINKS and /MAP. For non #\r# opers. Please be aware that this will also hide #\r# any leaf servers of a U-lined server, e.g. jupes. #\r# #\r# nouserdns - If set to 'yes', 'true' or '1', no user dns #\r# lookups will be performed for connecting users. #\r# this can save a lot of resources on very busy irc #\r# servers. #\r# #\r# syntaxhints - If set to 'yes', 'true' or '1', when a user does #\r# not give enough parameters for a command, a syntax #\r# hint will be given (using the RPL_TEXT numeric) #\r# as well as the standard ERR_NEEDMOREPARAMS. #\r# #\r# announcets - If this value is defined to 'yes', 'true' or '1', #\r# then if a channel's timestamp is updated the users #\r# on the channel will be informed of the change via #\r# a server notice to the channel with the old and #\r# new TS values in the timestamp. If you think this #\r# is just pointless noise, define the value to 0. #\r# #\r# ircumsgprefix - Use undernet style message prefix for channel #\r# NOTICE and PRIVMSG adding the prefix to the line #\r# of text sent out. Eg. NOTICE @#test :@ testing #\r# vs. the off setting: NOTICE @#test :testing #\r# #\r# hostintopic - If this is set to yes (the default) then the full #\r# nick!user@host is shown for who set a TOPIC last. #\r# if set to no, then only the nickname is shown. #\r# #\r# announceinvites #\r# - If this option is set to yes (the default), then #\r# invites are announced to the channel when a user #\r# invites annother user. If you consider this to be #\r# unnecessary noise, explicitly set this to no. #\r# #\r# disablehmac - If you are linking your InspIRCd to older versions #\r# then you can specify this option and set it to #\r# yes. 1.1.6 and above support HMAC and challenge- #\r# response for password authentication. These can #\r# greatly enhance security of your server to server #\r# connections when you are not using SSL (as is the #\r# case with a lot of larger networks). Linking to #\r# older versions of InspIRCd should not *usually* be #\r# a problem, but if you have problems with HMAC #\r# authentication, this option can be used to turn it #\r# off. #\r# #\r# hidemodes - If this option is enabled, then the listmodes #\r# given (e.g. +eI), will be hidden from users below #\r# halfop. This is not recommended to be set on mode #\r# +b, as it may break some features in popular #\r# clients such as mIRC. #\r# #\r# quietbursts - When synching or splitting from the network, a #\r# server can generate a lot of connect and quit #\r# snotices to the +C and +Q snomasks. Setting this #\r# value to yes squelches those messages, which can #\r# make them more useful for opers, however it will #\r# degrade their use by certain third party programs #\r# such as BOPM which rely on them to scan users when #\r# a split heals in certain configurations. #\r# #\r# pingwarning - This should be set to a number between 1 and 59 if #\r# defined, and if it is defined will cause the server#\r# to send out a warning via snomask +l if a server #\r# does not answer to PING after this many seconds. #\r# This can be useful for finding servers which are #\r# at risk of pinging out due to network issues. #\r# #\r# exemptchanops - This option allows channel operators to be exempted#\r# from certain channel modes. #\r# Supported modes are +SfgNc. Defaults to off. #\r# #\r# defaultmodes - The default modes to be given to each channel on #\r# creation. Defaults to 'nt'. There should be no + #\r# or - symbols in this sequence, if you add them #\r# they will be ignored. You may add parameters for #\r# parameterised modes. #\r# #\r# moronbanner - The NOTICE to show to users who are glined, zlined #\r# klined or qlined when they are disconnected. This #\r# is totally freeform, you may place any text here #\r# you wish. #\r# #\r\r<options prefixquit="Quit: "\r loglevel="default"\r netbuffersize="10240"\r maxwho="128"\r noservices="no"\r qaprefixes="no"\r deprotectself="no"\r deprotectothers="no"\r somaxconn="128"\r softlimit="12800"\r userstats="Pu"\r operspywhois="no"\r customversion=""\r maxtargets="20"\r hidesplits="no"\r hidebans="no"\r hidewhois=""\r flatlinks="no"\r hideulines="no"\r nouserdns="no"\r syntaxhints="no"\r cyclehosts="yes"\r ircumsgprefix="no"\r announcets="yes"\r disablehmac="no"\r hostintopic="yes"\r hidemodes="eI"\r quietbursts="yes"\r pingwarning="15"\r allowhalfop="yes"\r defaultmodes="nt"\r moronbanner="You're banned! Email haha@abuse.com with the ERROR line below for help."\r exemptchanops="">\r\r#-#-#-#-#-#-#-#-#-#-#-#-#-#- TIME SYNC OPTIONS -#-#-#-#-#-#-#-#-#-#-#-#\r# Time sychronization options for m_spanningtree linking. #\r# #\r# Because IRC is very time and clock dependent, InspIRCd provides its #\r# own methods for syncronization of time between servers as shown #\r# in the example below, for servers that don't have ntpd running. #\r# #\r# enable - If this value is 'yes', 'true', or '1', time #\r# synchronization is enabled on this server. This #\r# means any servers you are linked to will #\r# automatically synchronize time, however you should #\r# use ntpd instead where possible, NOT this option. #\r# #\r# master - If this value is set to yes, then this server will #\r# act as the authoritative time source for the whole #\r# network. All other servers will respect its time #\r# without question, and match their times to it. #\r# only one server should have the master value set #\r# to 'yes'. #\r# #\r<timesync enable="no" master="no">\r\r#-#-#-#-#-#-#-#-#-#-#-#-#- WHOWAS OPTIONS -#-#-#-#-#-#-#-#-#-#-#-#-#\r# #\r# This tag lets you define the behaviour of the /whowas command of #\r# your server. #\r# #\r# groupsize - Controls the maximum entries per nick shown when #\r# performing a /whowas nick. Setting this to 0 dis- #\r# ables whowas completely. #\r# #\r# maxgroups - The maximum number of nickgroups that can be added #\r# to the list. If max is reached, oldest group will #\r# be deleted first like a FIFO. A groupsize of 3 and #\r# a maxgroups of 5000 will allow for 5000 nicks to #\r# be stored with a history of 3, thus giving a total #\r# of 3 * 5000 = 15000 entries. A setting of 0 dis- #\r# ables whowas completely. #\r# #\r# maxkeep - The maximum time a nick is kept in the whowas list #\r# before being pruned. Time may be specified in #\r# seconds, or in the following format: 1y2w3d4h5m6s #\r# meaning one year, two weeks, three days, 4 hours, #\r# 5 minutes and 6 seconds. All fields in this format #\r# are optional. Minimum is 1 hour, if less InspIRCd #\r# will default back to 1 hour. #\r# #\r#<whowas groupsize="10" #\r# maxgroups="100000" #\r# maxkeep="3d"> #\r\r\r#-#-#-#-#-#-#-#-#-#-#-#-#- MODULE OPTIONS -#-#-#-#-#-#-#-#-#-#-#-#-#\r# #\r# These tags define which modules will be loaded on startup by your #\r# server. Add modules without any paths. When you make your ircd #\r# using the 'make' command, all compiled modules will be moved into #\r# the folder you specified when you ran ./configure. The module tag #\r# automatically looks for modules in this location. #\r# If you attempt to load a module outside of this location, either #\r# in the config, or via /LOADMODULE, you will receive an error. #\r# #\r# By default, ALL modules are commented out. You must uncomment them #\r# or add lines to your config to load modules. Please refer to #\r# http://www.inspircd.org/wiki/Modules_List for a list of modules and#\r# each modules link for any additional conf tags they require. #\r# #\r# You may use wildcards in a <module> tag to load all modules which #\r# match a glob pattern (e.g. m_sa????.so would load m_sajoin, #\r# m_sapart, m_saquit and m_sanick) #\r# #\r# ____ _ _____ _ _ ____ _ _ _ #\r# | _ \ ___ __ _ __| | |_ _| |__ (_)___ | __ )(_) |_| | #\r# | |_) / _ \/ _` |/ _` | | | | '_ \| / __| | _ \| | __| | #\r# | _ < __/ (_| | (_| | | | | | | | \__ \ | |_) | | |_|_| #\r# |_| \_\___|\__,_|\__,_| |_| |_| |_|_|___/ |____/|_|\__(_) #\r# #\r# To link servers to InspIRCd, you MUST load the m_spanningtree #\r# module, as shown below. If you DO NOT do this, server links will #\r# NOT work at all. ie. The ports will NOT bind, and /connect will not #\r# work properly. This is by design, to allow for the implementation #\r# of other linking protocols in modules in the future. #\r\r#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#\r# Spanning Tree module - allows linking of servers using the spanning\r# tree protocol (see the READ THIS BIT section above).\r#\r#<module name="m_spanningtree.so">\r\r\r#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#\r# MD5 Module - Allows other modules to generate MD5 hashes, usually for\r# cryptographic uses and security.\r#\r# IMPORTANT:\r# Other modules such as m_cloaking.so and m_opermd5.so may rely on\r# this module being loaded to function.\r#\r#<module name="m_md5.so">\r#\r#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#\r# SHA256 Module - Allows other modules to generate SHA256 hashes,\r# usually for cryptographic uses and security.\r#\r# IMPORTANT:\r# Other modules such as m_opermd5.so may rely on this module being\r# loaded to function.\r#\r#<module name="m_sha256.so">\r\r#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#\r# Alias module: Allows you to define server-side command aliases\r#<module name="m_alias.so">\r#\r#-#-#-#-#-#-#-#-#-#-#- ALIAS DEFINITIONS -#-#-#-#-#-#-#-#-#-#-#-#-#-#\r# #\r# If you have the m_alias.so module loaded, you may also define #\r# aliases as shown below. They are commonly used to provide shortcut #\r# commands to services, however they are not limited to just this use.#\r# An alias tag requires the following values to be defined in it: #\r# #\r# text - The text to detect as the actual command line, #\r# Cant contain spaces, but case insensitive. #\r# You may have multiple aliases with the same #\r# command name (text="" value), however the first #\r# found will be executed if its format value is #\r# matched, or it has no format value. Aliases are #\r# read from the top of the file to the bottom. #\r# #\r# format - If this is defined, the parameters of the alias #\r# must match this glob pattern. For example if you #\r# want the first parameter to start with a # for #\r# the alias to be executed, set format="#*" in the #\r# alias definition. Note that the :'s which are #\r# part of IRC formatted lines will be preserved #\r# for matching of this text. This value is #\r# optional. #\r# #\r# replace - The text to replace 'text' with. Usually this #\r# will be "PRIVMSG ServiceName :$2-" or similar. #\r# You may use the variables $1 through $9 in the #\r# replace string, which refer to the first through #\r# ninth word in the original string typed by the #\r# user. You may also use $1- through $9- which #\r# refer to the first word onwards, through to the #\r# ninth word onwards, e.g. if the user types the #\r# command "foo bar baz qux quz" then $3- will hold #\r# "baz qux quz" and $2 will contain "bar". You may #\r# also use the special variables: $nick, $ident, #\r# $host and $vhost, and you may seperate multiple #\r# commands with \n. If you wish to use the ACTUAL #\r# characters \ and n together in a line, you must #\r# use the sequence "\\n". #\r# #\r# requires - If you provide a value for 'requires' this means #\r# the given nickname MUST be online for the alias #\r# to successfully trigger. If they are not, then #\r# the user receives a 'no such nick' 401 numeric. #\r# #\r# uline - Defining this value with 'yes', 'true' or '1' #\r# will ensure that the user given in 'requires' #\r# must also be on a u-lined server, as well as #\r# actually being on the network. If the user is #\r# online, but not on a u-lined server, then an #\r# oper-alert is sent out as this is possibly signs #\r# of a user trying to impersonate a service. #\r# #\r# operonly - Defining this value, with a value of 'yes', '1' #\r# or true will make the alias oper only. If a non- #\r# oper attempts to use the alias, it will appear #\r# to not exist. #\r# #\r#<alias text="NICKSERV" replace="PRIVMSG NickServ :$2-" requires="NickServ" uline="yes">\r#<alias text="CHANSERV" replace="PRIVMSG ChanServ :$2-" requires="ChanServ" uline="yes">\r#<alias text="OPERSERV" replace="PRIVMSG OperServ :$2-" requires="OperServ" uline="yes" operonly="yes">\r#<alias text="NS" replace="PRIVMSG NickServ :$2-" requires="NickServ" uline="yes">\r#<alias text="CS" replace="PRIVMSG ChanServ :$2-" requires="ChanServ" uline="yes">\r#<alias text="OS" replace="PRIVMSG OperServ :$2-" requires="OperServ" uline="yes" operonly="yes">\r#\r# An example of using the format value to create an alias with two\r# different behaviours depending on the format of the parameters.\r#\r#<alias text="ID" format="#*" replace="PRIVMSG ChanServ :IDENTIFY $2 $3"\r# requires="ChanServ" uline="yes">\r#\r#<alias text="ID" replace="PRIVMSG NickServ :IDENTIFY $2"\r# requires="NickServ" uline="yes">\r#\r# This alias fixes a glitch in xchat 2.6.x and above and the way it\r# assumes IDENTIFY must be prefixed by a colon (:) character. It should\r# be placed ABOVE the default NICKSERV alias (the first example) listed\r# above.\r#\r#<alias text="NICKSERV" format=":IDENTIFY *" replace="PRIVMSG NickServ :IDENTIFY $3-"\r# requires="NickServ" uline="yes">\r\r#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#\r# Alltime module: Shows time on all connected servers at once\r#<module name="m_alltime.so">\r\r#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#\r# Antibear security module: Prevents 'bear.txt' based trojans from\r# connecting to your network by sending them a numeric they can't handle.\r#<module name="m_antibear.so">\r\r#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#\r# Antibottler module: Labels bottler leech bots\r#<module name="m_antibottler.so">\r\r#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#\r# Auditorium module: Adds channel mode +u which makes everyone else\r# except you in the channel invisible, used for large meetings etc.\r#<module name="m_auditorium.so">\r#\r# Auditorium settings:\r#\r#<auditorium showops="no">\r#\r# Setting this value to yes makes m_auditorium behave like unrealircd\r# +u channel mode, e.g. ops see users joining, parting, etc, and users\r# joining the channel see the ops. Without this flag, the mode acts\r# like ircnet's +a (anonymous channels), showing only the user in the\r# names list, and not even showing the ops in the list, or showing the\r# ops that the user has joined.\r\r#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#\r# Ban except module: Adds support for channel ban exceptions (+e)\r#<module name="m_banexception.so">\r\r#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#\r# Ban redirection module: Allows bans which redirect to a specified\r# channel. e.g. +b nick!ident@host#channelbanneduserissentto\r#<module name="m_banredirect.so">\r\r#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#\r# Block amsg module: Attempt to block all usage of /amsg and /ame\r#<module name="m_blockamsg.so">\r#\r#-#-#-#-#-#-#-#-#-#-#- BLOCKAMSG CONFIGURATION -#-#-#-#-#-#-#-#-#-#-#\r# #\r# If you have the m_blockamsg.so module loaded, you can configure it #\r# with the <blockamsg> tag: #\r# #\r# delay - How many seconds between two messages to force #\r# them to be recognised as unrelated. #\r# action - Any of 'notice', 'noticeopers', 'silent', 'kill' #\r# or 'killopers'. Define how to take action when #\r# a user uses /amsg or /ame. #\r#\r#<blockamsg delay="3" action="killopers">\r\r#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#\r# Block CAPS module: Blocking all-CAPS messages with cmode +P\r#<module name="m_blockcaps.so">\r# #\r#-#-#-#-#-#-#-#-#-#-#- BLOCKCAPS CONFIGURATION -#-#-#-#-#-#-#-#-#-#-#\r# #\r# percent - How many percent of text must be caps before text #\r# will be blocked. #\r# #\r# minlen - The minimum length a line must be for the block #\r# percent to have any effect. #\r# #\r# capsmap - A list of chars to be considered CAPS, this was #\r# you can add CAPS for your language. Also you can #\r# add things like ! and space to further lock down #\r# on caps usage. #\r#<blockcaps percent="50"\r# minlen="5"\r# capsmap="ABCDEFGHIJKLMNOPQRSTUVWXYZ! ">\r\r#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#\r# Block colour module: Blocking colour-coded messages with cmode +c\r#<module name="m_blockcolor.so">\r\r#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#\r# Botmode module: Adds the user mode +B\r#<module name="m_botmode.so">\r\r#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#\r# CBAN module: Lets you disallow channels from being used at runtime.\r#<module name="m_cban.so">\r\r#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#\r# Censor module: Adds the channel mode +G\r#<module name="m_censor.so">\r#\r#-#-#-#-#-#-#-#-#-#-#- CENSOR CONFIGURATION -#-#-#-#-#-#-#-#-#-#-#-#\r# #\r# Optional - If you specify to use the m_censor module, then you must #\r# specify some censor tags. See also: #\r# http://www.inspircd.org/wiki/Censor_Module #\r#\r#<include file="censor.conf">\r\r#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#\r# CGI:IRC module: Adds support for automatic host changing in CGI:IRC\r# (http://cgiirc.sourceforge.net).\r#<module name="m_cgiirc.so">\r#\r#-#-#-#-#-#-#-#-#-#-#-# CGIIRC CONFIGURATION #-#-#-#-#-#-#-#-#-#-#-#-#\r#\r# Optional - If you specify to use m_cgiirc, then you must specify one\r# or more cgihost tags which indicate authorized CGI:IRC servers which\r# will be connecting to your network, and an optional cgiirc tag.\r# For more information see: http://www.inspircd.org/wiki/CGI-IRC_Module\r#\r# Set to yes if you want to notice opers when CGI clients connect\r# <cgiirc opernotice="no">\r#\r# The type field indicates where the module should get the real\r# client's IP address from, for further information, please see the\r# CGI:IRC documentation.\r#\r# <cgihost type="pass" mask="www.mysite.com"> # Get IP from PASS\r# <cgihost type="webirc" mask="somebox.mysite.com"> # Get IP from WEBIRC\r# <cgihost type="ident" mask="otherbox.mysite.com"> # Get IP from ident\r# <cgihost type="passfirst" mask="www.mysite.com"> # See the docs\r#\r# IMPORTANT NOTE:\r# ---------------\r#\r# When you connect CGI:IRC clients, there are two connect classes which\r# apply to these clients. When the client initially connects, the connect\r# class which matches the cgi:irc site's host is checked. Therefore you\r# must raise the maximum local/global clients for this ip as high as you\r# want to allow cgi clients. After the client has connected and is\r# determined to be a cgi:irc client, the class which matches the client's\r# real IP is then checked. You may set this class to a lower value, so that\r# the real IP of the client can still be restricted to, for example, 3\r# sessions maximum.\r#\r\r\r#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#\r# Channel create module: Adds snomask +j, which will notify opers of\r# any new channels that are created\r#<module name="m_chancreate.so">\r\r#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#\r# Channel filter module: Allows channel-op defined message\r# filtering using simple string matches (channel mode +g)\r#<module name="m_chanfilter.so">\r\r#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#\r# Chanprotect module: gives +q and +a channel modes\r#<module name="m_chanprotect.so">\r\r#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#\r# Check module: gives /check\r# Check is useful for looking up information on channels,\r# users, IP addresses and hosts.\r#<module name="m_check.so">\r\r#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#\r# CHGHOST module: Adds the /CHGHOST command\r#<module name="m_chghost.so">\r#\r#-#-#-#-#-#-#-#-# /CHGHOST - /SETHOST CONFIGURATION #-#-#-#-#-#-#-#-#\r# Optional - If you want to use special chars for hostnames you can #\r# specify your own custom list of chars with the <hostname> tag: #\r# #\r# charmap - A list of chars accepted as valid by the /CHGHOST #\r# and /SETHOST commands. Also note that the list is # \r# case-sensitive. #\r#<hostname charmap="abcdefghijklmnopqrstuvwxyz.-_/0123456789">\r\r#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#\r# CHGIDENT module: Adds the /CHGIDENT command\r#<module name="m_chgident.so">\r\r#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#\r# CHGNAME module: Adds the /CHGNAME command\r#<module name="m_chgname.so">\r\r#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#\r# Cloaking module: Adds usermode +x and cloaking support.\r# Relies on the module m_md5.so being loaded before m_cloaking.so in\r# the configuration file.\r#<module name="m_cloaking.so">\r#\r#-#-#-#-#-#-#-#-#-#-#- CLOAKING CONFIGURATION -#-#-#-#-#-#-#-#-#-#-#-#\r# #\r# Optional - If you specify the m_cloaking.so module as above, you #\r# must define cloak keys, and optionally a cloak prefix as shown #\r# below. When using cloaking, the cloak keys are MANDITORY and must #\r# be included. However, if prefix is not included, it will default #\r# to your networks name from the <server> tag. #\r# #\r# <cloak key1="0x2AF39F40" #\r# key2="0x78E10B32" #\r# key3="0x4F2D2E82" #\r# key4="0x043A4C81" #\r# prefix="mynet"> #\r# #\r# Please note that the key values will accept any number, and should #\r# be large numbers. Using small numbers such as "7" or "1924" will #\r# seriously weaken the security of your cloak. It is recommended you #\r# use hexdecimal numbers prefixed by "0x", as shown in this example, #\r# with each key eight hex digits long. #\r\r#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#\r# Clones module: Adds an oper command /CLONES for detecting cloned\r# users. Warning: This module may be resource intensive when its\r# command is issued, use with care.\r#<module name="m_clones.so">\r\r#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#\r# Conn-Join: Allows you to force users to join one or more channels\r# automatically upon connecting to the server.\r#<module name="m_conn_join.so">\r#\r#-#-#-#-#-#-#-#-#-#-#-#- CONNJOIN CONFIGURATION -#-#-#-#-#-#-#-#-#-#-#\r#\r# If you have m_conn_join.so loaded, you can configure it using the\r# follow values:\r#\r#<autojoin channel="#one,#two,#three">\r\r#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#\r# Conn-Usermodes: Set modes on users when they connect\r# When this module is loaded <connect:allow> tags may have an optional\r# modes="" value, which contains modes to add or remove from users\r# when they connect to the server.\r#<module name="m_conn_umodes.so">\r\r#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#\r# Conn-Wait-for-Pong: Don't let a user connect until they PONG\r#<module name="m_conn_waitpong.so">\r#\r#-#-#-#-#-#-#-#-#-#-#- WAITPONG CONFIGURATION -#-#-#-#-#-#-#-#-#-#-#\r# #\r# If you have the m_conn_waitpong.so module loaded, configure it with #\r# the <waitpong> tag: #\r# #\r# sendsnotice - Whether to send a snotice on connect, like other #\r# older ircds #\r# #\r# killonbadreply - Whether to kill the user if they send the wrong #\r# PONG reply. #\r# #\r#<waitpong sendsnotice="yes" killonbadreply="yes">\r\r\r#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#\r# Channel cycle module. Server side /hop, with +ilk etc bypass.\r#<module name="m_cycle.so">\r\r#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#\r# Connection throttle module. Configuration:\r#<module name="m_connflood.so">\r#\r#-#-#-#-#-#-#-#-#-#-#- CONTHROTTLE CONFIGURATION -#-#-#-#-#-#-#-#-#-#-#\r# seconds, maxconns - Amount of connections per <seconds>.\r#\r# timeout - Time to wait after the throttle was activated\r# before deactivating it. Be aware that the time\r# is seconds + timeout.\r#\r# quitmsg - The message that users get if they attempt to\r# connect while the throttle is active.\r#\r# bootwait - Amount of time to wait before enforcing the\r# throttling when the server just booted.\r#\r#<connflood seconds="30" maxconns="3" timeout="30"\r# quitmsg="Throttled" bootwait="10">\r\r#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#\r# DCCALLOW module: Adds the /DCCALLOW command\r#<module name="m_dccallow.so">\r#\r#-#-#-#-#-#-#-#-#-#-#- DCCALLOW CONFIGURATION -#-#-#-#-#-#-#-#-#-#-#\r# blockchat - Whether to block DCC CHAT as well as DCC SEND\r# length - Default duration of entries in DCCALLOW list\r# action - Default action to take if no action is specified\r# can be 'block' or 'allow'\r#\r# File configuration:\r# pattern - The glob pattern to match against\r# action - Action to take if a user attempts to send a file\r# that matches this pattern, can be 'block' or 'allow'\r#\r#<dccallow blockchat="yes" length="5m" action="block">\r#<banfile pattern="*.exe" action="block">\r#<banfile pattern="*.txt" action="allow">\r#\r#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#\r\r#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#\r# Deaf module: adds support for ircu style usermode +d - deaf to\r# channel messages and channel notices.\r#<module name="m_deaf.so">\r\r#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#\r# Deny Channels: Deny Channels from being used by users\r#<module name="m_denychans.so"> \r#\r#-#-#-#-#-#-#-#-#-#-#- DENYCHAN DEFINITIONS -#-#-#-#-#-#-#-#-#-#-#-#\r# #\r# If you have the m_denychans.so module loaded, you need to specify #\r# the channels to deny: #\r# #\r# name - The channel name to deny. #\r# #\r# allowopers - If operators are allowed to override the deny. #\r# #\r# reason - Reason given for the deny. #\r# #\r#<badchan name="#gods" allowopers="yes" reason="Tortoises!">\r\r#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#\r# Devoice Module: Let users devoice themselves.\r#<module name="m_devoice.so">\r\r#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#\r# DNS Blacklist Module: Provides support for looking up IPs on one or #\r# more blacklists. #\r#<module name="m_dnsbl.so"> #\r# #\r# For configuration options please see the wiki page for m_dnsbl at #\r# http://inspircd.org/wiki/DNS_Blacklist_Module #\r\r#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#\r# Filter module: Provides glob-based message filtering\r#<module name="m_filter.so">\r# OR\r# PCRE filter module: Filters messages using regular expressions\r#<module name="m_filter_pcre.so">\r#\r# You may only use one or the other with these modules, network-wide.\r#\r#-#-#-#-#-#-#-#-#-#-#- FILTER CONFIGURATION -#-#-#-#-#-#-#-#-#-#-#-#\r# #\r# Optional - If you specify to use the m_filter or m_filter_pcre #\r# modules, then specfiy below the path to the filter.conf file, #\r# or define some <filter> tags. #\r# #\r#<include file="filter.conf">\r\r#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#\r# Foobar module: does nothing - historical relic\r#<module name="m_foobar.so">\r\r#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#\r# Globops module: gives /GLOBOPS and usermode +g\r#<module name="m_globops.so">\r\r#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#\r# Global load module: Allows loading and unloading of modules network-\r# wide (USE WITH EXTREME CAUTION!)\r#<module name="m_globalload.so">\r\r#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#\r# HELPOP module: Provides the /HELPOP command\r#<module name="m_helpop.so">\r#\r#-#-#-#-#-#-#-#-#-#-#-#- HELPOP CONFIGURATION -#-#-#-#-#-#-#-#-#-#-#\r# #\r# Optional - If you specify to use the m_helpop.so module, then #\r# specify below the path to the helpop.conf file, or if you like to #\r# make a mess, define your helpop tags in this conf. #\r# #\r#<include file="helpop.conf">\r\r#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#\r# HIDECHANS module: Allows opers to hide their channels list from non-\r# opers by setting user mode +I on themselves.\r# <module name="m_hidechans.so">\r\r#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#\r# HIDEOPER module: Allows opers to hide their oper status from non-\r# opers by setting user mode +H on themselves.\r# <module name="m_hideoper.so">\r\r#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#\r# Hostchange module: Allows a different style of cloaking\r#<module name="m_hostchange.so">\r#\r#-#-#-#-#-#-#-#-#-#-#- HOSTCHANGE CONFIGURATION -#-#-#-#-#-#-#-#-#-#\r# #\r# Optional - If you choose to use the m_hostchange.so module. #\r# Config Help - See http://www.inspircd.org/wiki/Host_Changer_Module #\r# #\r#<host suffix="polarbears.org" separator="." prefix="">\r#<hostchange mask="*@fbi.gov" action="addnick">\r#<hostchange mask="*r00t@*" action="suffix">\r#<hostchange mask="a@b.com" action="set" value="blah.blah.blah">\r\r#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#\r# httpd module: Provides http server support for InspIRCd\r#<module name="m_httpd.so">\r#\r#-#-#-#-#-#-#-#-#-#-#-#- HTTPD CONFIGURATION -#-#-#-#-#-#-#-#-#-#-#\r#\r# Optional - If you choose to use the m_httpd.so module, then you must\r# specify the port number and other details of your http server:\r#\r#<http ip="192.168.1.10" host="brainwave" port="32006"\r# index="/home/brain/inspircd/http/index.html">\r#\r# You may have as many of these tags as you wish, each with a different\r# IP, port, host or index file. Each one will act as an independent\r# HTTP server.\r#\r\r#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#\r# http stats module: Provides basic stats pages over HTTP\r# Requires m_httpd.so to be loaded for it to function.\r#<module name="m_httpd_stats.so">\r#\r#-#-#-#-#-#-#-#-#-#-#-#- HTTPD STATS CONFIGURATION -#-#-#-#-#-#-#-#-#-#\r#\r#<httpstats stylesheet="http://remote.style/sheet.css">\r#\r\r#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#\r# Ident: Provides RFC 1413 ident lookup support\r#<module name="m_ident.so">\r#\r#-#-#-#-#-#-#-#-#-#-#-#- IDENT CONFIGURATION -#-#-#-#-#-#-#-#-#-#-#\r# #\r# Optional - If you are using the m_ident.so module, then you can #\r# specify the timeout for ident lookups here. If not defined, it will #\r# default to one second. This is a non-blocking timeout which holds #\r# the user in a 'connecting' state until the lookup is complete. #\r# The bind value indicates which IP to bind outbound requests to. #\r# #\r#<ident timeout="5" bind=""> #\r\r#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#\r# Invite except module: Adds support for channel invite exceptions (+I)\r#<module name="m_inviteexception.so">\r\r#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#\r# Invisible module - Adds support for usermode +Q (quiet) which lets an\r# oper go 'invisible' similar to unrealircd 3.1's +I mode. Note that\r# opers are still able to see invisible users, and if an oper with +Q\r# deopers, they will become visible. \r# \r# IMPORTANT NOTE: To allow this mode to be used by a type of oper, you\r# must first add the value canquiet="yes" to that oper's type tag.\r#\r#<module name="m_invisible.so">\r\r#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#\r# Join flood module: Adds support for join flood protection (+j)\r#<module name="m_joinflood.so">\r\r#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#\r# Jump Server module: Adds support for the RPL_REDIR numeric\r#<module name="m_jumpserver.so">\r\r#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#\r# Anti-Auto-Rejoin: Adds support for prevention of auto-rejoin (+J)\r#<module name="m_kicknorejoin.so">\r\r#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#\r# Knock module: adds the /KNOCK command and +K channel mode\r#<module name="m_knock.so">\r\r#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#\r# Lock server module: Adds /LOCKSERV and /UNLOCKSERV commands that is #\r# used to temporarily close/open for new connections to the server. #\r# These commands require OPER status and that the LOCKSERV UNLOCKSERV #\r# are specified in a <class> tag that the oper is part of. This is so #\r# you can control who has access to this possible dangerous command. #\r# If your server is locked and you got disconnected, do a REHASH from #\r# shell to open up again.\r#<module name="m_lockserv.so">\r\r#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#\r# Msg flood module: Adds message/notice flood protection (+f)\r#<module name="m_messageflood.so">\r\r#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#\r# MySQL module: Allows other SQL modules to access MySQL databases\r# through a unified API. You must copy the source for this module\r# from the directory src/modules/extra, plus the file m_sqlv2.h\r#<module name="m_mysql.so">\r#\r#-#-#-#-#-#-#-#-#-#-#-#- SQL CONFIGURATION -#-#-#-#-#-#-#-#-#-#-#-#-#\r# #\r# m_mysql.so is more complex than described here, see the wiki for #\r# more: http://www.inspircd.org/wiki/SQL_Service_Provider_Module #\r#\r#<database name="mydb" username="myuser" password="mypass" hostname="localhost" id="my_database2">\r\r#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#\r# NAMESX module: Provides support for the NAMESX extension which allows\r# clients to see all the prefixes set on a user without getting confused.\r# This is supported by mIRC, x-chat, klient, and maybe more.\r#<module name="m_namesx.so">\r\r#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#\r# Nicklock module: Let opers change a user's nick and then stop that\r# user from changing their nick again.\r#<module name="m_nicklock.so">\r\r#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#\r# No ctcp module: Adds the channel mode +C to block CTCPs\r#<module name="m_noctcp.so">\r\r#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#\r# Noinvite module: Gives channel mode +V\r#<module name="m_noinvite.so">\r\r#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#\r# No kicks module: Adds the +Q channel mode\r#<module name="m_nokicks.so">\r\r#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#\r# No nicks module: Adds the +N channel mode\r#<module name="m_nonicks.so">\r\r#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#\r# No Notice module: adds the channel mode +T\r#<module name="m_nonotice.so">\r\r#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#\r# Oper channels mode: Adds the +O channel mode\r#<module name="m_operchans.so">\r\r#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#\r# Oper hash module: Allows hashed oper passwords\r# Relies on the module m_md5.so and/or m_sha256.so being loaded before\r# m_oper_hash.so in the configuration file.\r#<module name="m_oper_hash.so">\r#\r#-#-#-#-#-#-#-#-#-#-# OPER HASH CONFIGURATION #-#-#-#-#-#-#-#-#-#-#-#-#\r#\r# To use this module, you must define a hash type for each oper's\r# password you want to hash. For example:\r#\r# <oper name="Brain"\r# host="ident@dialup15.isp.com"\r# hash="sha256"\r# password="a41d730937a53b79f788c0ab13e9e1d5"\r# type="NetAdmin">\r# \r# The types of hashing available vary depending on which hashing modules\r# you load, but usually if you load m_sha256.so and m_md5.so, both md5\r# and sha256 type hashing will be available (the most secure of which\r# is SHA256).\r\r#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#\r# Oper Join module: Forces opers to join a channel on oper-up\r#<module name="m_operjoin.so">\r#\r#-#-#-#-#-#-#-#-#-#-# OPERJOIN CONFIGURATION -#-#-#-#-#-#-#-#-#-#-#\r# #\r# If you are using the m_operjoin.so module, specify the channel here #\r# #\r#<operjoin channel="#channel">\r\r#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#\r# Oper MOTD module: Provides support for seperate message of the day\r# on oper-up\r#<module name="m_opermotd.so">\r#\r#-#-#-#-#-#-#-#-#-#-# OPERMOTD CONFIGURATION -#-#-#-#-#-#-#-#-#-#-#\r# #\r# If you are using the m_opermotd.so module, specify the motd here #\r# #\r#<opermotd file="oper.motd">\r\r#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#\r# Override module: Adds support for oper override\r#<module name="m_override.so">\r#\r#-#-#-#-#-#-#-#-#-#-# OVERRIDE CONFIGURATION -#-#-#-#-#-#-#-#-#-#-#\r# #\r# m_override.so is too complex it describe here, see the wiki: #\r# http://www.inspircd.org/wiki/Oper_Override_Module #\r\r#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#\r# Oper levels module: Gives each oper a level and prevents\r# actions being taken against higher level opers\r# Specify the level as the 'level' parameter of the <type> tag\r#<module name="m_operlevels.so">\r\r#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#\r# Oper modes module: Allows you to specify modes to add/remove on oper\r# Specify the modes as the 'modes' parameter of the <type> tag\r#<module name="m_opermodes.so">\r\r#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#\r# PostgreSQL module: Allows other SQL modules to access PgSQL databases\r# through a unified API. You must copy the source for this module\r# from the directory src/modules/extra, plus the file m_sqlv2.h\r#<module name="m_pgsql.so">\r#\r#-#-#-#-#-#-#-#-#-#-#-#- SQL CONFIGURATION -#-#-#-#-#-#-#-#-#-#-#-#-#\r# #\r# m_pgsql.so is more complex than described here, see the wiki for #\r# more: http://www.inspircd.org/wiki/SQL_Service_Provider_Module #\r#\r#<database name="mydb" username="myuser" password="mypass" hostname="localhost" id="my_database" ssl="no">\r\r#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#\r# Random Quote module: provides a random quote on connect.\r# NOTE: Some of these may mimic fatal errors and confuse users and \r# opers alike! - BEWARE!\r#<module name="m_randquote.so">\r#\r#-#-#-#-#-#-#-#-#-#- RANDOMQUOTES CONFIGURATION -#-#-#-#-#-#-#-#-#-#-#\r# #\r# Optional - If you specify to use the m_randquote.so module, then #\r# specify below the path to the randquotes.conf file. #\r# #\r#<randquote file="randquotes.conf">\r\r#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#\r# Redirect module: Adds channel redirection (mode +L)\r#<module name="m_redirect.so">\r\r#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#\r# Registered users only channel creation\r# Allows only registered users and opers to create new channels.\r#<module name="m_regonlycreate.so">\r\r#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#\r# Remove module: Adds the /REMOVE command which is a peaceful\r# alternative to /KICK\r#<module name="m_remove.so">\r\r#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#\r# Restrict banned users module:\r# Disallows banned users on a channel from messaging the channel,\r# changing nick, or changing the topic, if loaded.\r#<module name="m_restrictbanned.so">\r\r#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#\r# Restricted channels module: Allows only opers to create channels\r#<module name="m_restrictchans.so">\r\r#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#\r# Restrict message module: Allows users to only message opers\r#<module name="m_restrictmsg.so">\r\r#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#\r# Provide /LIST throttling (to prevent flooding) and /LIST safety to\r# prevent excess flood when the list is large.\r#<module name="m_safelist.so">\r#\r#-#-#-#-#-#-#-#-#-#-# SAFELIST CONFIGURATION -#-#-#-#-#-#-#-#-#-#-#-#-#\r#\r# When using Safelist, you may set the following values;\r#\r# The first value, 'throttle', sets the amount of time in seconds a user\r# must wait between LIST commands. For example, if this is set to 60\r# (the default) then the user may not /LIST more than once a minute.\r# If not defined, the default value is 60 seconds.\r#\r# The second value, 'maxlisters', indicates the maximum number of users\r# which may be retrieving a LIST at once. It is not recommended you raise\r# this value, as increasing it too high can make your network vulnerable\r# to floodbots which waste your bandwidth and CPU time with LIST requests.\r#\r#<safelist throttle="60" maxlisters="50">\r\r#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#\r# SAJOIN module: Adds the /SAJOIN command\r#<module name="m_sajoin.so">\r\r#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#\r# SAMODE module: Adds the oper /SAMODE command\r#<module name="m_samode.so">\r\r#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#\r# SANICK module: Allows opers to change user's nicks\r#<module name="m_sanick.so">\r\r#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#\r# SAPART module: Adds the oper /SAPART command\r#<module name="m_sapart.so">\r\r#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#\r# SAQUIT module: Adds the oper /SAQUIT command (abusable!!!)\r#<module name="m_saquit.so">\r\r#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#\r# Secure list module: Prevent /LIST in the first minute of connection,\r# crippling most spambots and trojan spreader bots.\r#<module name="m_securelist.so">\r#\r#-#-#-#-#-#-#-#-#-# SECURELIST CONFIGURATION -#-#-#-#-#-#-#-#-#-#-#-#-#\r# #\r# Securelist can be harmful to some irc search engines such as #\r# netsplit.de and searchirc.com. To prevent securelist blocking these #\r# sites from listing, define exception tags as shown below: #\r<securehost exception="*@*.searchirc.org">\r<securehost exception="*@*.netsplit.de">\r<securehost exception="*@echo940.server4you.de">\r# #\r# Define the following variable to change how long a user must wait #\r# before issuing a LIST. If not defined, defaults to 60 seconds. #\r# #\r#<securelist waittime="60"> #\r\r#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#\r# See nicks module: Allow for SNOMASK +N which shows nick changes.\r#<module name="m_seenicks.so">\r\r#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#\r# Set Idle module: Adds a command for opers to change their\r# idle time (mainly a toy)\r#<module name="m_setidle.so">\r\r#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#\r# Services support module: Adds several usermodes such as +R and +M\r# this module implements the 'identified' state via user mode +r, which\r# is similar to the DALnet and dreamforge systems.\r#<module name="m_services.so">\r\r#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#\r# Services support module: Adds several usermodes such as +R and +M\r# this module implements the 'identified' state via account names (AC)\r# and is similar in operation to the way asuka and ircu handle services.\r# it cannot be used at the same time as m_services, above.\r#<module name="m_services_account.so">\r\r#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#\r# Sethost module: Adds the /SETHOST command\r# See m_chghost for how to customise valid chars for hostnames\r#<module name="m_sethost.so">\r\r#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#\r# Setident module: Adds the /SETIDENT command\r#<module name="m_setident.so">\r\r#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#\r# SETNAME module: Adds the /SETNAME command\r#<module name="m_setname.so">\r\r#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#\r# Show Whois module: Adds the +W usermode which allows opers\r# to see when they are whois'ed (can be annoying).\r#<module name="m_showwhois.so">\r\r#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#\r# Spy module: Adds the commands SPYLIST and SPYNAMES that let opers\r# see who is in a +s channel, and list +s channels, show keys of keyed\r# channels the oper is not a member of etc. (standard 'abusive' features\r# of many other ircds, modulized here in InspIRCd).\r#<module name="m_spy.so">\r\r#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#\r# SSL channel mode module: Adds support for SSL-only channels (+z).\r# does not do anything useful without a working SSL module (see below)\r#<module name="m_sslmodes.so">\r\r#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#\r# Dummy ssl module: If you have other servers on your network which\r# have SSL, but your server does not have ssl enabled, you should load\r# this module, which will handle SSL metadata (e.g. the "Is using ssl"\r# field in the WHOIS information).\r#<module name="m_ssl_dummy.so">\r\r#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#\r# GnuTLS ssl module: Adds support for client-server SSL using GnuTLS,\r# if enabled. You must copy the source for this module from the directory\r# src/modules/extra, or answer 'yes' in ./configure when asked if you\r# want to enable this, or it will not load.\r#<module name="m_ssl_gnutls.so">\r#\r#-#-#-#-#-#-#-#-#-#-#- GNUTLS CONFIGURATION -#-#-#-#-#-#-#-#-#-#-#-#\r# #\r# m_ssl_gnutls.so is too complex it describe here, see the wiki: #\r# http://www.inspircd.org/wiki/GnuTLS_SSL_Module #\r# #\r# NOTE: If you want to use this module to encrypt and sign your #\r# server to server traffic, you MUST load it before m_spanningtree in #\r# your configuration file! #\r\r#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#\r# SSL Info module: Allows users to retrieve information about other\r# user's peer SSL certificates and keys. This can be used by client\r# scripts to validate users. For this to work, one of m_ssl_gnutls.so\r# or m_ssl_openssl.so must be loaded. You must symlink the source for\r# this module from the directory src/modules/extra.\r#<module name="m_sslinfo.so">\r\r#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#\r# OpenSSL ssl module: Adds support for client-server SSL using OpenSSL,\r# if enabled. You must copy the source for this module from the directory\r# src/modules/extra, or answer 'yes' in ./configure when asked if you\r# want to enable this, or it will not load.\r#<module name="m_ssl_openssl.so">\r#\r#-#-#-#-#-#-#-#-#-#-#- OPENSSL CONFIGURATION -#-#-#-#-#-#-#-#-#-#-#-#\r# #\r# m_ssl_openssl.so is too complex it describe here, see the wiki: #\r# http://www.inspircd.org/wiki/OpenSSL_SSL_Module #\r# #\r# NOTE: If you want to use this module to encrypt and sign your #\r# server to server traffic, you MUST load it before m_spanningtree in #\r# your configuration file! #\r\r#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#\r# SSL Cert Oper module: Allows opers to oper up using the key fingerprint\r# stored within their SSL certificate and key pair.\r# When using this module, one of m_ssl_gnutls.so or m_ssl_openssl.so must\r# be loaded. An extra value should be added to enabled opers, which\r# is in the following format: fingerprint="<hash>". For more information,\r# see the example in the oper blocks.\r#<module name="m_ssl_oper_cert.so">\r\r#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#\r# Strip colour module: Adds the channel mode +S\r#<module name="m_stripcolor.so">\r\r#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#\r# SILENCE module: Adds support for /SILENCE\r#<module name="m_silence.so">\r#\r# Configuration tags:\r#\r#<silence maxentries="32">\r#\r# Sets the maximum number of entries on a users silence list.\r\r#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#\r# Extended SILENCE module: Adds support for /SILENCE with additional\r# features to silence based on invites, channel messages, etc.\r#<module name="m_silence_ext.so">\r#\r# The configuration tags for this module are identical to those of\r# m_silence, shown above.\r\r#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#\r# SQLite3 module: Allows other SQL modules to access SQLite3 #\r# databases through a unified API. You must link the source for this #\r# module from the directory src/modules/extra to src/modules, plus #\r# the file m_sqlv2.h #\r#<module name="m_sqlite3.so">\r#\r#-#-#-#-#-#-#-#-#-#-#-#- SQL CONFIGURATION -#-#-#-#-#-#-#-#-#-#-#-#-#\r# #\r# m_sqlite.so is more complex than described here, see the wiki for #\r# more: http://www.inspircd.org/wiki/SQLite3_Service_Provider_Module #\r#\r#<database hostname="/full/path/to/database.db" id="anytext">\r\r#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#\r# SQLutils module: Provides some utilities to SQL client modules, such\r# as mapping queries to users and channels. You must copy the source\r# for this module from the directory src/modules/extra/m_sqlutils.cpp\r# and src/modules/extra/m_sqlutils.h into /src/modules\r# Needed for, and loaded before: SQLauth and SQLoper\r#<module name="m_sqlutils.so">\r\r#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#\r# SQL authentication module: Allows IRCd connections to be tied into\r# a database table (for example a forum). You must copy the source for\r# this module from the directory src/modules/extra\r# Depends on the SQLutils module being loaded first.\r#<module name="m_sqlauth.so">\r#\r#-#-#-#-#-#-#-#-#-#-#- SQLAUTH CONFIGURATION -#-#-#-#-#-#-#-#-#-#-#-#\r# #\r# m_sqlauth.so is too complex it describe here, see the wiki: #\r# http://www.inspircd.org/wiki/SQL_Authentication_Module #\r\r#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#\r# SQL logging module: Allows you to log network-wide data for your\r# network in a fully normalized set of SQL tables. You must copy the\r# source for this module from the directory src/modules/extra\r#<module name="m_sqllog.so">\r#\r#-#-#-#-#-#-#-#-#-#-#- SQLLOG CONFIGURATION -#-#-#-#-#-#-#-#-#-#-#-#\r# #\r# dbid - Database ID to use (see m_sql) #\r# #\r# See also: http://www.inspircd.org/wiki/SQL_Logging_Module #\r# #\r#<sqllog dbid="1">\r\r#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#\r# SQL oper module: Allows you to store oper credentials in an SQL table\r# You must copy the source for this module from the directory src/modules/extra\r# Depends on the SQLutils module being loaded first.\r#<module name="m_sqloper.so">\r#\r#-#-#-#-#-#-#-#-#-#-#- SQLOPER CONFIGURATION -#-#-#-#-#-#-#-#-#-#-#-#\r# #\r# dbid - Database ID to use (see m_sql) #\r# #\r# See also: http://www.inspircd.org/wiki/SQL_Oper_Storage_Module #\r# #\r#<sqloper dbid="1">\r\r#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#\r# SVSHold module: Implements SVSHOLD. Like Q:Lines, but can only be #\r# added/removed by Services. #\r#<module name="m_svshold.so">\r\r\r#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#\r# SWHOIS module: Allows you to add arbitary lines to user WHOIS.\r#<module name="m_swhois.so">\r\r#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#\r# Test command module: Does nothing significant. Read: pointless.\r#<module name="m_testcommand.so">\r\r#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#\r# Timed bans module: Adds timed bans and the /TBAN command\r#<module name="m_timedbans.so">\r\r#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#\r# Test line module: Adds the /TLINE command, used to test how many\r# users a /GLINE or /ZLINE etc would match.\r#<module name="m_tline.so">\r\r#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#\r# UHNAMES support module: Adds support for the IRCX style UHNAMES\r# extension, which displays ident and hostname in the names list for\r# each user, saving clients from doing a WHO on the channel. Note that\r# this module is not widely supported yet. If a client does not support\r# UHNAMES it will not enable it, this will not break incompatible\r# clients.\r#<module name="m_uhnames.so">\r\r#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#\r# Uninvite module: Adds the /UNINVITE command which lets users remove\r# pending invites from channels without waiting for the user to join.\r#<module name="m_uninvite.so">\r\r#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#\r# Userip module: Adds the /USERIP command\r#<module name="m_userip.so">\r\r#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#\r# Vhost module: Adds the VHOST command which allows for adding virtual\r# hosts which are accessible using a username and password in the config.\r#<module name="m_vhost.so">\r#\r#-#-#-#-#-#-#-#-#-#-#- VHOST CONFIGURATION -#-#-#-#-#-#-#-#-#-#-#-#-#\r# #\r# user - Username for the vhost. #\r# #\r# pass - Password for the vhost. #\r# #\r# host - Vhost to set. #\r#\r#<vhost user="some_username" pass="some_password" host="some.host">\r\r#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#\r# Watch module: Adds the WATCH command, which is used by clients to \r# maintain notify lists.\r#<module name="m_watch.so">\r#\r# Configuration tags:\r#\r#<watch maxentries="32">\r#\r# Sets the maximum number of entries on a user's watch list.\r\r#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#\r# XMLSocket module: Adds support for connections using the shockwave\r# flash XMLSocket. Note that this does not work if the client you are\r# using has retarded ideas of the IRC protocol. Your client must still\r# send RFC-correct lines to the server, this module only changes the\r# line ending from newlines to null terminators.\r#\r#<module name="m_xmlsocket.so">\r\r#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#\r# ZipLinks module: Adds support for zlib deflate on server to server\r# connections. Both ends of the connection must load this module.\r#\r#<module name="m_ziplink.so">\r#\r# To use this module, you must enable it as a transport type in your\r# <link> tags or <bind> tags using the transport name 'zip'.\r# See the documentation of <link> and <bind>, respectively.\r#\r\r#-#-#-#-#-#-#-#-#-#-#-#-#-#- BAN OPTIONS -#-#-#-#-#-#-#-#-#-#-#-#-#-#\r# #\r# The ban tags define nick masks, host masks and ip ranges which are #\r# banned from your server. All details in these tags are local to #\r# Your server. #\r# #\r# #\r# badip lines ban an ip range (same as a zline) #\r# #\r# ipmask - The ip range to ban (wildcards possible) #\r# CIDR is supported in the IP mask. #\r# reason - Reason to display when disconnected #\r# #\r# badnick lines ban a nick mask (same as a qline) #\r# #\r# nick - Nick mask to ban (wildcards possible) #\r# reason - Reason to display on /NICK #\r# #\r# badhost lines ban a user@host mask (same as a kline) #\r# #\r# host - ident@hostname (wildcards possible) #\r# If you specify an IP, CIDR is supported. #\r# reason - Reason to display on disconnection #\r# #\r# exception lines define a hostmask that is excempt from [kzg]lines #\r# #\r# host - ident@hostname (wildcards possible) #\r# If you specify an IP, CIDR is supported. #\r# reason - Reason, shown only in /stats e #\r# #\r\r<badip ipmask="69.69.69.69" reason="No porn here thanks.">\r\r<badnick nick="ChanServ" reason="Reserved For Services">\r<badnick nick="NickServ" reason="Reserved For Services">\r<badnick nick="OperServ" reason="Reserved For Services">\r<badnick nick="MemoServ" reason="Reserved For Services">\r\r<badhost host="*@hundredz.n.hundredz.o.1337.kiddies.com" reason="Too many 1337 kiddiots">\r<badhost host="*@localhost" reason="No irc from localhost!">\r<badhost host="*@172.32.0.0/16" reason="This subnet is bad.">\r\r<exception host="*@ircop.host.com" reason="Opers hostname">\r\r#-#-#-#-#-#-#-#-#-#-#- INSANE BAN OPTIONS -#-#-#-#-#-#-#-#-#-#-#-#-#-#\r# #\r# This optional tag allows you to specify how wide a gline, eline, #\r# kline, zline or qline can be before it is forbidden from being #\r# set. By setting hostmasks="yes", you can allow all G, K, E lines, #\r# no matter how many users the ban would cover. This is not #\r# recommended! By setting ipmasks="yes", you can allow all Z lines, #\r# no matter how many users these cover too. Needless to say we #\r# don't recommend you do this, or, set nickmasks="yes", which will #\r# allow any qline. #\r# #\r# The trigger value indicates how wide any mask will be before it is #\r# prevented from being set. The default value is 95.5% if this tag is #\r# not defined in your configuration file, meaning that if your #\r# network has 1000 users, a gline matching over 955 of them will be #\r# prevented from being added. #\r# #\r# Please note that remote servers (and services) are exempt from #\r# these restrictions and expected to enforce their own policies #\r# locally! #\r# #\r\r<insane hostmasks="no" ipmasks="no" nickmasks="no" trigger="95.5">\r\r#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#- YAWN -#-#-#-#-#-#-#-#-#-#-#-#-#-#-#\r# #\r# You should already know what to do here :) #\r\r<die value="User error. Insert new user and press any key. (you didn't edit your config properly.)">\r\r\r#########################################################################\r# #\r# - InspIRCd Development Team - #\r# http://www.inspircd.org #\r# #\r#########################################################################\r
\ No newline at end of file
+########################################################################
+# #
+# ___ ___ ____ ____ _ #
+# |_ _|_ __ ___ _ __|_ _| _ \ / ___|__| | #
+# | || '_ \/ __| '_ \| || |_) | | / _` | #
+# | || | | \__ \ |_) | || _ <| |__| (_| | #
+# |___|_| |_|___/ .__/___|_| \_\\____\__,_| #
+# |_| #
+# ____ __ _ _ _ #
+# / ___|___ _ __ / _(_) __ _ _ _ _ __ __ _| |_(_) ___ _ __ #
+# | | / _ \| '_ \| |_| |/ _` | | | | '__/ _` | __| |/ _ \| '_ \ #
+# | |__| (_) | | | | _| | (_| | |_| | | | (_| | |_| | (_) | | | | #
+# \____\___/|_| |_|_| |_|\__, |\__,_|_| \__,_|\__|_|\___/|_| |_| #
+# |___/ #
+# #
+##################################||####################################
+ #||#
+##################################||####################################
+# #
+# This is an example of the config file for InspIRCd. #
+# Change the options to suit your network #
+# #
+# $Id$ #
+# #
+# ____ _ _____ _ _ ____ _ _ _ #
+# | _ \ ___ __ _ __| | |_ _| |__ (_)___ | __ )(_) |_| | #
+# | |_) / _ \/ _` |/ _` | | | | '_ \| / __| | _ \| | __| | #
+# | _ < __/ (_| | (_| | | | | | | | \__ \ | |_) | | |_|_| #
+# |_| \_\___|\__,_|\__,_| |_| |_| |_|_|___/ |____/|_|\__(_) #
+# #
+# 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. #
+# #
+########################################################################
+# #
+# Unalphabeticalise the modules list at your own risk #
+# #
+########################################################################
+
+
+#-#-#-#-#-#-#-#-#-#-#-#- SERVER DESCRIPTION -#-#-#-#-#-#-#-#-#-#-#-#-
+# #
+# Here is where you enter the information about your server. #
+# #
+# Syntax is as follows: #
+# #
+# <server name="server.name" #
+# description="Server Description" #
+# id="serverid" #
+# network="MyNetwork"> #
+# #
+# The server name should be a syntactically valid hostname, with at #
+# least one '.', and does not need to resolve to an IP address. #
+# #
+# The description is freeform text. Remember you may put quotes in #
+# this field by escaping it using \". #
+# #
+# The network field indicates the network name given in on connect #
+# to clients. It is used by many clients such as mIRC to select a #
+# perform list, so it should be identical on all servers on a net #
+# and should not contain spaces. #
+# #
+# The server ID is optional, and if omitted automatically calculated #
+# from the server name and description. This is similar in #
+# in behaviour to the server id on ircu and charybdis ircds. #
+# You should only need to set this manually if there is a collision #
+# between two server ID's on the network. The server ID must be #
+# three digits or letters long, of which the first digit must always #
+# be a number, and the other two letters may be any of 0-9 and A-Z. #
+# For example, 3F9, 03J and 666 are all valid server IDs, and A9D, #
+# QFX and 5eR are not. Remember, in most cases you will not need to #
+# even set this value, it is calculated for you from your server #
+# name and description. Changing these will change your auto- #
+# generated ID. #
+# #
+
+<server name="penguin.omega.org.za"
+ description="Waddle World"
+ network="Omega">
+
+
+#-#-#-#-#-#-#-#-#-#-#-#- ADMIN INFORMATION -#-#-#-#-#-#-#-#-#-#-#-#
+# #
+# Describes the Server Administrator's real name (optionally), #
+# 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"
+ email="MI5@the.best.secret.agent">
+
+
+#-#-#-#-#-#-#-#-#-#-#-#- PORT CONFIGURATION -#-#-#-#-#-#-#-#-#-#-#-
+# #
+# Enter the port and address bindings here. #
+# #
+# bind address - Specifies which address ports bind to. Leaving this #
+# field blank binds the port to all IP's available. #
+# #
+# port - The port number to bind to. You may specify a port #
+# range here, e.g. "6667-6669,7000,7001". If you do #
+# this, the server will count each port within your #
+# range as a separate binding, making the above #
+# example equivalent to five separate bind tags. #
+# A failure on one port in the range does not prevent #
+# the entire range from being bound, just that one #
+# port number. #
+# #
+# 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. SSL support is provided by modules, to #
+# enable SSL support, please read the module section #
+# of this configuration file. #
+# #
+# ssl - When using m_ssl_gnutls.so or m_ssl_openssl.so #
+# modules, you must define this value to use ssl on #
+# that port. Valid values are 'gnutls' or 'openssl' #
+# respectively. If the module is not loaded, this #
+# setting is ignored. #
+# #
+# transport - If you have m_spanningtree.so loaded, along with #
+# either one of the SSL modules (m_ssl_gnutls or #
+# m_ssl_openssl) or m_ziplinks.so, then you may make #
+# use of this value. #
+# Setting it to 'openssl' or 'gnutls' or 'zip' #
+# indicates that the port should accept connections #
+# using the given transport name. Transports are #
+# layers which sit on top of a socket and change the #
+# way data is sent and received, e.g. encryption, #
+# compression, and other such things. Because this #
+# may not be limited in use to just encryption, #
+# the 'ssl' value used for client ports does not #
+# exist for servers, and this value is used instead. #
+# ____ _ _____ _ _ ____ _ _ _ #
+# | _ \ ___ __ _ __| | |_ _| |__ (_)___ | __ )(_) |_| | #
+# | |_) / _ \/ _` |/ _` | | | | '_ \| / __| | _ \| | __| | #
+# | _ < __/ (_| | (_| | | | | | | | \__ \ | |_) | | |_|_| #
+# |_| \_\___|\__,_|\__,_| |_| |_| |_|_|___/ |____/|_|\__(_) #
+# #
+# If you want to link servers to InspIRCd you must load the #
+# m_spanningtree.so 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 address" port="port" type="clients"> #
+# <bind address="ip address" port="port" type="servers"> #
+# #
+# If InspIRCd is built for IPv6, and you wish to accept IPv4 clients, #
+# then you can specify IPv4 ip addresses here to bind. You may also #
+# use the 4in6 notation, ::ffff:1.2.3.4, where 1.2.3.4 is the IPv4 #
+# address to bind the port, but as of InspIRCd 1.1.1, this is not #
+# required. #
+# #
+# ------------------------------------------------------------------- #
+# #
+# PLEASE NOTE: If you have build InspIRCd as an IPv6 server, and you #
+# specify an empty bind address, the binding will be bound to ALL THE #
+# IPv6 IP ADDRESSES, and not the IPv4 addresses. If you are using an #
+# IPv6 enabled InspIRCd and want to bind to multiple IPv4 addresses #
+# in this way, you must specify them by hand. If you have built the #
+# server for IPv4 connections only, then specifying an empty bind #
+# address binds the port to all IPv4 IP addresses, as expected. #
+# #
+
+<bind address="" port="6000" type="clients">
+<bind address="" port="6660-6669" type="clients" ssl="gnutls">
+
+# When linking servers, the openssl and gnutls transports are largely
+# link-compatible and can be used alongside each other or either/or
+# on each end of the link without any significant issues.
+
+<bind address="" port="7000,7001" type="servers">
+<bind address="1.2.3.4" port="7005" type="servers" transport="openssl">
+
+
+#-#-#-#-#-#-#-#-#-#- DIE/RESTART CONFIGURATION -#-#-#-#-#-#-#-#-#-#-
+# #
+# You can configure the passwords here which you wish to use for #
+# the die and restart commands. Only trusted IRCop's who will #
+# need this ability should know the die and restart password. #
+# #
+# Syntax is as follows: #
+# <power diepass="die password" restartpass="restart password" #
+# pause="secs before dying"> #
+# #
+
+<power diepass="" restartpass="" pause="2">
+
+
+#-#-#-#-#-#-#-#-#-# INCLUDE CONFIGURATION #-#-#-#-#-#-#-#-#-#-#-#-#-#
+# #
+# This optional tag allows you to include another config file #
+# allowing you to keep your configuration tidy. The configuration #
+# file you include will be treated as part of the configuration file #
+# which includes it, in simple terms the inclusion is transparent. #
+# #
+# All paths to config files are relative to the directory of the main #
+# config file inspircd.conf, unless the filename starts with a forward#
+# slash (/) in which case it is treated as an absolute path. #
+# #
+# You may also include an executable file, in which case if you do so #
+# the output of the executable on the standard output will be added #
+# to your config at the point of the include tag. #
+# #
+# Syntax is as follows: #
+#<include file="file.conf"> #
+#<include executable="/path/to/executable parameters"> #
+# #
+
+#-#-#-#-#-#-#-#-#-#- CONNECTIONS CONFIGURATION -#-#-#-#-#-#-#-#-#-#-#
+# #
+# This is where you can configure which connections are allowed #
+# 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 '*' or 0.0.0.0/0. #
+# #
+# Syntax is as follows: #
+# #
+# <connect name="myallow" allow="1.2.3.0/24" limit="5" #
+# password="blahblah" timeout="10" timeout="blah" #
+# flood="5" threshold="8" pingfreq="120" sendq="99999" #
+# revcq="696969" localmax="3" globalmax="3" #
+# port="6660" maxchans="50" limit="999"> #
+# #
+# <connect name="blocked" deny="127.0.0.1" port="6667"> #
+# #
+# <connect name="something" parent="myallow" pingfreq="60"> #
+# #
+# IP masks may be specified in CIDR format or wildcard format, #
+# for IPv4 and IPv6. You *cannot* use hostnames in the allow or #
+# deny field, as the state is applied before the user's DNS has #
+# been resolved. #
+# #
+# You can optionally name your connect allow/deny tags. If you do #
+# this, you may reference this connect tag as the parent of another #
+# connect tag with the <connect:parent> option as shown above. If #
+# you do this, any options not explicitly specified in the tag will #
+# be copied from the parent. #
+# #
+# If the value maxchans is included, this overrides all other max #
+# channels related settings, including the separate oper maximum. #
+# You may set this to any (sane) value you wish and it applies to #
+# all users within this connect tag. #
+# #
+# 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 optionally limit the number of clients that are matched #
+# by a single <connect> tag by specifying the maximum in the limit #
+# parameter. If set to 0, there is no limit, which is the default. #
+# #
+# You should also 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. This feature can #
+# not be disabled, however it can be set to extremely high values, #
+# rendering it effectively disabled. A recommended value is 10. #
+# A counter is maintained for each user which is reset every #
+# 'threshold' seconds and specifying this threshold value with #
+# threshold="X" indicates how often the counter is reset. For #
+# example, with flood="5" and threshold="8", the user may not send #
+# more than 5 lines in 8 secs. #
+# #
+# You may optionally specify the sendq size and ping frequency of #
+# each connect:allow line using the pingfreq="X" and sendq="X" #
+# settings as shown in the full example below. #
+# The ping frequency is specified in seconds, and the sendq size #
+# in bytes. It is recommended, although not enforced, that you #
+# should never set your sendq size to less than 8K. Send Queues are #
+# dynamically allocated and can grow as needed up to the maximum #
+# size specified. #
+# #
+# The optional recvq value is the maximum size which users in this #
+# group may grow their receive queue to. This is recommended to be #
+# kept pretty low compared to the sendq, as users will always #
+# receive more than they send in normal circumstances. The default #
+# if not specified is 4096. #
+# #
+# The sendq is the data waiting to be sent TO THE USER. #
+# The recvq is the data being received FROM THE USER. #
+# The names sendq and recvq are from the SERVER'S PERSPECTIVE not #
+# that of the user... Just to clear up any confusion or complaints #
+# that these are backwards :p #
+# #
+# The localmax and globalmax values can be used to enforce local #
+# and global session limits on connections. The session limits are #
+# counted against all users, but applied only to users within the #
+# class. For example, if you had a class 'A' which has a session #
+# limit of 3, and a class 'B' which has a session limit of 5, and #
+# somehow, two users managed to get into class B which also match #
+# class A, there is only one connection left for this IP now in A, #
+# but if they can connect again to B, there are three. You get the #
+# idea (i hope). #
+# #
+# The optional port value determines which port the connect tag is #
+# handling. If left out the connect tag covers all bound ports else #
+# only incoming connections on the specified port will match. Port #
+# tags may be used on connect allow and connect deny tags. #
+# #
+# The limit value determines the maximum number of users which may #
+# be in this class. Combine this with CIDR masks for various ISP #
+# subnets to limit the number of users which may connect at any one #
+# time from a certain ISP. Omit this value to not limit the tag. #
+# #
+
+<connect allow="196.12.*" password="secret" port="6667">
+
+<connect allow="*"
+ timeout="60"
+ flood="20"
+ threshold="1"
+ pingfreq="120"
+ sendq="262144"
+ recvq="8192"
+ localmax="3"
+ globalmax="3"
+ limit="5000">
+
+<connect deny="69.254.*">
+<connect deny="3ffe::0/32">
+
+
+#-#-#-#-#-#-#-#-#-#-#-#- CLASS CONFIGURATION -#-#-#-#-#-#-#-#-#-#-#-
+# #
+# Classes are a group of commands which are grouped together and #
+# given a unique name. They're used to define which commands #
+# are available to certain types of Operators. #
+# #
+# Syntax is as follows: #
+# #
+# <class name="name" commands="oper commands" #
+# usermodes="allowed oper only usermodes" #
+# chanmodes="allowed oper only channelmodes"> #
+# #
+# The name value indicates a name for this class. #
+# The commands value indicates a list of one or more commands that #
+# are allowed by this class (see also 'READ THIS BIT' below). #
+# The usermodes and chanmodes values indicate lists of usermodes and #
+# channel modes this oper can execute. This only applies to modes #
+# that are marked oper-only such as usermode +Q and channelmode +O. #
+# ____ _ _____ _ _ ____ _ _ _ #
+# | _ \ ___ __ _ __| | |_ _| |__ (_)___ | __ )(_) |_| | #
+# | |_) / _ \/ _` |/ _` | | | | '_ \| / __| | _ \| | __| | #
+# | _ < __/ (_| | (_| | | | | | | | \__ \ | |_) | | |_|_| #
+# |_| \_\___|\__,_|\__,_| |_| |_| |_|_|___/ |____/|_|\__(_) #
+# #
+# 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! #
+# #
+# Note: It is possible to make a class which covers all available #
+# commands. To do this, specify commands="*". This is not really #
+# recommended, as it negates the whole purpose of the class system, #
+# however it is provided for fast configuration (e.g. in test nets) #
+# #
+
+<class name="Shutdown" commands="DIE RESTART REHASH LOADMODULE UNLOADMODULE RELOAD" usermodes="*" chanmodes="*">
+<class name="ServerLink" commands="CONNECT SQUIT RCONNECT MKPASSWD MKSHA256" usermodes="*" chanmodes="*">
+<class name="BanControl" commands="KILL GLINE KLINE ZLINE QLINE ELINE" usermodes="*" chanmodes="*">
+<class name="OperChat" commands="WALLOPS GLOBOPS SETIDLE SPYLIST SPYNAMES" usermodes="*" chanmodes="*">
+<class name="HostCloak" commands="SETHOST SETIDENT SETNAME CHGHOST CHGIDENT" usermodes="*" chanmodes="*">
+
+
+#-#-#-#-#-#-#-#-#-#-#-#- 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. #
+# a type name cannot contain spaces, however if you #
+# put an _ symbol in the name, it will be translated #
+# to a space when displayed in a WHOIS. #
+# #
+# classes - Specified above, used for flexibility for the #
+# server admin to decide on which operators get #
+# what commands. Class names are case sensitive, #
+# separate multiple class names with spaces. #
+# #
+# host - Optional hostmask operators will receive on oper-up. #
+# #
+# Syntax is as follows: #
+# #
+# <type name="name" classes="class names" 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! #
+# #
+
+<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="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 trust worthy people. #
+# #
+# name - Oper name, this is case sensitive, so it is best to #
+# use lower-case. #
+# #
+# password - Password to oper-up, also case sensitive. #
+# encryption is supported via modules. You may load #
+# modules for MD5 or SHA256 encryption, and if you do, #
+# this value will be a hash value, otherwise put a #
+# plaintext password in this value. #
+# #
+# host - Hosts of client allowed to oper-up. #
+# wildcards accepted, separate multiple hosts with a #
+# space. You may also specify CIDR IP addresses. #
+# #
+# fingerprint - When using the m_ssl_oper_cert.so module, you may #
+# specify a key fingerprint here. This can be obtained #
+# using the /fingerprint command whilst the module is #
+# loaded, or from the notice given to you when you #
+# connect to the ircd using a client certificate, #
+# and will lock this oper block to only the user who #
+# has that specific key/certificate pair. #
+# this enhances security a great deal, however it #
+# requires that opers use clients which can send ssl #
+# client certificates, if this is configured for that #
+# oper. Note that if the m_ssl_oper.so module is not #
+# loaded, and/or one of m_ssl_openssl or m_ssl_gnutls #
+# is not loaded, this configuration option has no #
+# effect and will be ignored. #
+# #
+# type - Defines the kind of operator. This must match a type #
+# tag you defined above, and is case sensitive. #
+# #
+# Syntax is as follows: #
+# <oper name="login" #
+# password="pass" #
+# host="hostmask@of.oper" #
+# fingerprint="hexsequence" #
+# type="oper type"> #
+# #
+
+<oper name="Brain"
+ password="s3cret"
+ host="ident@dialup15.isp.com *@localhost *@server.com *@3ffe::0/16"
+ type="NetAdmin">
+
+
+#-#-#-#-#-#-#-#-#-#-#- SERVER LINK CONFIGURATION -#-#-#-#-#-#-#-#-#-#
+# #
+# Defines which servers can link to this one, and which servers this #
+# server may create outbound links to. #
+# #
+# name - The name is the canonical name of the server, does #
+# not have to resolve - but it is expected to be set #
+# in the remote servers connection info. #
+# #
+# ipaddr - Valid host or IP address for remote server. These #
+# hosts are resolved on rehash, and cached, if you #
+# specify a hostname; so if you find that your server #
+# is still trying to connect to an old IP after you #
+# have updated your DNS, try rehashing and then #
+# attempting the connect again. #
+# #
+# 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. #
+# #
+# transport - If defined, this is a transport name implemented by #
+# another module. Transports are layers on top of #
+# plaintext connections, which alter them in certain #
+# ways. Currently the three supported transports are #
+# 'openssl' and 'gnutls' which are types of SSL #
+# encryption, and 'zip' which is for compression. #
+# If you define a transport, both ends of the #
+# connection must use a compatible transport for the #
+# link to succeed. OpenSSL and GnuTLS are link- #
+# compatible with each other. #
+# #
+# statshidden - 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, it's IP will show as <hidden> #
+# UNLESS the connection fails (e.g. due to a bad #
+# password or servername) #
+# #
+# allowmask - When this is defined, it indicates a range of IP #
+# addresses to allow for this link (You may use CIDR #
+# or wildcard form for this address). #
+# e.g. if your server is going to connect to you from #
+# the range 1.2.3.1 through 1.2.3.255, put 1.2.3.0/24 #
+# into this value. If it is not defined, then only #
+# the ipaddr field of the server shall be allowed. #
+# #
+# failover - If you define this option, it must be the name of a #
+# different link tag in your configuration. This #
+# option causes the ircd to attempt a connection to #
+# the failover link in the event that the connection #
+# to this server fails. For example, you could define #
+# two hub uplinks to a leaf server, and set an #
+# american server to autoconnect, with a european #
+# hub as its failover. In this situation, your ircd #
+# will only try the link to the european hub if the #
+# american hub is unreachable. NOTE that for the #
+# intents and purposes of this option, an unreachable #
+# server is one which DOES NOT ANSWER THE CONNECTION. #
+# If the server answers the connection with accept(), #
+# EVEN IF THE CREDENTIALS ARE INVALID, the failover #
+# link will not be tried! Failover settings will also #
+# apply to autoconnected servers as well as manually #
+# connected ones. #
+# #
+# timeout - If this is defined, then outbound connections will #
+# time out if they are not connected within this many #
+# seconds. If this is not defined, the default of ten #
+# seconds is used. #
+# #
+# bind - If you specify this value, then when creating an #
+# outbound connection to the given server, the IP you #
+# place here will be bound to. This is for multi- #
+# homed servers which may have multiple IP addresses. #
+# if you do not define this value, the first IP that #
+# is not empty or localhost from your <bind> tags #
+# will be bound to. This is usually acceptable, #
+# however if your server has multiple network cards #
+# then you may have to manually specify the bind #
+# value instead of leaving it to automatic binding. #
+# you can usually tell if you need to set this by #
+# looking for the error 'Could not assign requested #
+# address' in your log when connecting to servers. #
+# #
+# hidden - If this is set to true, yes, or 1, then the server #
+# is completely hidden from non-opers. It does not #
+# show in /links and it does not show in /map. Also, #
+# any servers which are child servers of this one #
+# in the network will *also* be hidden. Use with #
+# care! You can use this to 'mask off' sections of #
+# the network so that users only see a small portion #
+# of a much larger net. It should NOT be relied upon #
+# as a security tool, unless it is being used for #
+# example to hide a non-client hub, for which clients #
+# do not have an IP address or resolvable hostname. #
+# #
+# To u:line a server (give it extra privileges required for running #
+# services, Q, etc) you must include the <uline server> tag as shown #
+# in the example below. You can have as many of these as you like. #
+# #
+# WARNING: Unlike other ircds, u:lining a server allows ALL users on #
+# that server to operoverride modes. This should only be used for #
+# services and protected oper servers! #
+# #
+# ------------------------------------------------------------------- #
+# #
+# NOTE: If you have built your server as an IPv6 server, then when a #
+# DNS lookup of a server's host occurs, AAAA records (IPv6) are #
+# prioritised over A records (IPv4). Therefore, if the server you are #
+# connecting to has both an IPv6 IP address and an IPv4 IP address in #
+# its DNS entry, the IPv6 address will *always* be selected. To #
+# change this behaviour simply specify the IPv4 IP address rather #
+# than the hostname of the server. #
+# #
+# ------------------------------------------------------------------- #
+# #
+# ____ _ _____ _ _ ____ _ _ _ #
+# | _ \ ___ __ _ __| | |_ _| |__ (_)___ | __ )(_) |_| | #
+# | |_) / _ \/ _` |/ _` | | | | '_ \| / __| | _ \| | __| | #
+# | _ < __/ (_| | (_| | | | | | | | \__ \ | |_) | | |_|_| #
+# |_| \_\___|\__,_|\__,_| |_| |_| |_|_|___/ |____/|_|\__(_) #
+# #
+# If you want to link servers to InspIRCd you must load the #
+# m_spanningtree.so 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! #
+# #
+# Also, if you define any transports, you must load the modules for #
+# these transports BEFORE you load m_spanningtree, e.g. place them #
+# above it in the configuration file. Currently this means the three #
+# modules m_ssl_gnutls, m_ziplinks and m_ssl_openssl, depending on #
+# which you choose to use. #
+# #
+
+<link name="hub.penguin.org"
+ ipaddr="penguin.box.com"
+ port="7000"
+ allowmask="69.58.44.0/24"
+ autoconnect="300"
+ failover="hub.other.net"
+ timeout="15"
+ transport="gnutls"
+ bind="1.2.3.4"
+ statshidden="no"
+ hidden="no"
+ sendpass="outgoing!password"
+ recvpass="incoming!password">
+
+<link name="services.antarctic.com"
+ ipaddr="localhost"
+ port="7000"
+ allowmask="127.0.0.0/8"
+ sendpass="penguins"
+ recvpass="polarbears">
+
+
+#-#-#-#-#-#-#-#-#-#-#-#- ULINES CONFIGURATION #-#-#-#-#-#-#-#-#-#-#-#-#
+# This tag defines a ulined server. A U-Lined server has special #
+# permissions, and should be used with caution. Services servers are #
+# usually u-lined in this manner. #
+# #
+# The 'silent' value, if set to yes, indicates that this server should#
+# not generate quit and connect notices, which can cut down on noise #
+# to opers on the network. #
+# #
+<uline server="services.antarctic.com" silent="yes">
+
+
+#-#-#-#-#-#-#-#-#-#- MISCELLANEOUS CONFIGURATION -#-#-#-#-#-#-#-#-#-#
+# #
+# These options let you define the path to your motd and rules #
+# files. If these are relative paths, they are relative to the #
+# configuration directory. #
+# #
+
+<files motd="inspircd.motd.example"
+ rules="inspircd.rules.example">
+
+#-#-#-#-#-#-#-#-#-#-#-# MAXIMUM CHANNELS -#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
+# #
+# This optional configuration tag lets you define the maximum number #
+# of channels that both opers and users may be on at any one time. #
+# The default is 20 for users and 60 for opers if this tag is not #
+# defined. Remote users are not restricted in any manner. #
+# #
+
+<channels users="20"
+ opers="60">
+
+#-#-#-#-#-#-#-#-#-#-#-#-#-#-# DNS SERVER -#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
+# #
+# Define your DNS server address here. InspIRCd has its own resolver. #
+# If you do not define this value, then InspIRCd will attempt to #
+# determine your DNS server from your operating system. On POSIX #
+# platforms, InspIRCd will read /etc/resolv.conf, and populate this #
+# value with the first DNS server address found. On Windows platforms #
+# InspIRCd will check the registry, and use the DNS server of the #
+# first active network interface, if one exists. #
+# If a DNS server cannot be determined from these checks, the default #
+# value '127.0.0.1' is used instead. The 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. #
+# #
+# ------------------------------------------------------------------- #
+# #
+# NOTE: If you have built InspIRCd with IPv6 support, then both #
+# IPv6 and IPv4 addresses are allowed here, and also in the system #
+# resolv.conf file. Remember that an IPv4 DNS server can still #
+# resolve IPv6 addresses, and vice versa. #
+# #
+
+<dns server="127.0.0.1" timeout="5">
+
+# An example of using an IPv6 nameserver
+#<dns server="::1" timeout="5">
+
+#-#-#-#-#-#-#-#-#-#-#-#-#-#-# PID FILE -#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
+# #
+# Define the path to the PID file here. The PID file can be used to #
+# rehash the ircd from the shell or to terminate the ircd from the #
+# shell using shell scripts, perl scripts, etc... and to monitor the #
+# ircd's state via cron jobs. If this is a relative path, it will be #
+# relative to the configuration directory, and if it is not defined, #
+# the default of 'inspircd.pid' is used. #
+# #
+
+#<pid file="/path/to/inspircd.pid">
+
+#-#-#-#-#-#-#-#-#-#-#-#-#- BANLIST LIMITS #-#-#-#-#-#-#-#-#-#-#-#-#-#-#
+# #
+# Use these tags to customise the ban limits on a per channel basis. #
+# The tags are read from top to bottom, and any tag found which #
+# matches the channels name applies the banlimit to that channel. #
+# It is advisable to put an entry with the channel as '*' at the #
+# bottom of the list. If none are specified or no maxbans tag is #
+# matched, the banlist size defaults to 64 entries. #
+# #
+
+<banlist chan="#morons" limit="128">
+<banlist chan="*" limit="69">
+
+#-#-#-#-#-#-#-#-#-#-#- DISABLED COMMANDS -#-#-#-#-#-#-#-#-#-#-#-#-#-#
+# #
+# This tag is optional, and specifies one or more commands which are #
+# not available to non-operators. For example you may wish to disable #
+# NICK and prevent non-opers from changing their nicknames. #
+# Note that any disabled commands take effect only after the user has #
+# 'registered' (e.g. after the initial USER/NICK/PASS on connection) #
+# so for example disabling NICK will not cripple your network. #
+# #
+
+#<disabled commands="TOPIC MODE">
+
+
+#-#-#-#-#-#-#-#-#-#-#-#-#-#-#- RTFM LINE -#-#-#-#-#-#-#-#-#-#-#-#-#-#
+# #
+# Just remove this... Its here to make you read ALL of the config #
+# file options ;) #
+
+<die value="You should probably edit your config *PROPERLY* and try again.">
+
+
+
+#-#-#-#-#-#-#-#-#-#-#-#-#- SERVER OPTIONS -#-#-#-#-#-#-#-#-#-#-#-#-#
+# #
+# Settings to define which features are usable on your server. #
+# #
+# prefixquit - A prefix to be placed on the start of a client's #
+# quit message #
+# #
+# suffixquit - A suffix to be placed on the end of a client's #
+# quit message. #
+# #
+# fixedquit - A fixed quit message to display for all client #
+# QUITS. If specified, overrides both prefixquit #
+# and suffixquit options. #
+# #
+# prefixpart - A prefix to be placed on the start of a client's #
+# part message #
+# #
+# suffixpart - A suffix to be placed on the end of a client's #
+# part message. #
+# #
+# fixedpart - A fixed part message to display for all client #
+# parts. If specified, overrides both prefixpart #
+# and suffixpart options. #
+# #
+# 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 #
+# #
+# 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. #
+# #
+# qprefix - qprefix is used by the chanprotect module to give #
+# a visible prefix to users set +q (founder) in chan #
+# It should be set to something sensible like ~ or ! #
+# If not set, no prefix is applied to users with +q #
+# #
+# aprefix - aprefix is the same as qprefix, except it is for #
+# giving users with mode +a (protected) a prefix #
+# #
+# deprotectself - If this value is set to yes, true, or 1, then any #
+# user with +q or +a may remove the +q or +a from #
+# themselves. The default setting is to not enable #
+# this feature, which stops even the founder taking #
+# away their founder status without using services. #
+# #
+# deprotectothers-If this value is set to yes, true, or 1, then any #
+# user with +q or +a may remove the +q or +a from #
+# other users. The default setting is to not enable #
+# this feature, so that only +q may remove +a, and #
+# nothing but services may remove +q. #
+# #
+# cyclehosts - If this is set to true, yes or 1, then when a #
+# user's hostname changes, they will appear to quit #
+# and then rejoin with their new host. This prevents #
+# clients from being confused by host changes, #
+# especially in the case of bots, and it is #
+# recommended that this option is enabled. #
+# #
+# 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) #
+# #
+# 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. If #
+# this value is omitted, any size WHO is allowed by #
+# anyone. #
+# #
+# 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 #
+# time when increased but please be aware there is a #
+# system defined maximum value to this, the same way #
+# there is a system defined maximum number of file #
+# 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 #
+# #
+# userstats - The userstats field is optional and specifies #
+# which stats characters in /STATS may be requested #
+# by non-operators. Stats characters in this field #
+# are case sensitive and are allowed to users #
+# independent of if they are in a module or the core #
+# #
+# operspywhois - If this is set then when an IRC operator uses #
+# /WHOIS on a user they will see all channels, even #
+# ones if channels are secret (+s), private (+p) or #
+# if the target user is invisible +i. #
+# #
+# 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. #
+# #
+# hidesplits - When set to 'yes', will hide split server names #
+# from non-opers. Non-opers will see '*.net *.split' #
+# instead of the server names in the quit message, #
+# identical to the way IRCu displays them. #
+# #
+# hidebans - When set to 'yes', will hide gline, kline, zline #
+# and qline quit messages from non-opers. For #
+# example, user A who is not an oper will just see #
+# (G-Lined) while user B who is an oper will see the #
+# text (G-Lined: Reason here) instead. #
+# #
+# hidewhois - When defined with a non-empty value, the given #
+# text will be used in place of the user's server #
+# in WHOIS, when a user is WHOISed by a non-oper. #
+# For example, most nets will want to set this to #
+# something like '*.netname.net' to conceal the #
+# actual server the user is on. #
+# #
+# flatlinks - When you are using m_spanningtree.so, and this #
+# value is set to yes, true or 1, /MAP and /LINKS #
+# will be flattened when shown to a non-opers. #
+# #
+# hideulines - When you are using m_spanningtree.so, and this #
+# value is set to yes, true or 1, then U-lined #
+# servers will be hidden in /LINKS and /MAP for non #
+# opers. Please be aware that this will also hide #
+# any leaf servers of a U-lined server, e.g. jupes. #
+# #
+# nouserdns - If set to yes, true or 1, no user DNS lookups #
+# will be performed for connecting users. This can #
+# save a lot of resources on very busy IRC servers. #
+# #
+# syntaxhints - If set to yes, true or 1, when a user does not #
+# give enough parameters for a command, a syntax #
+# hint will be given (using the RPL_TEXT numeric) #
+# as well as the standard ERR_NEEDMOREPARAMS. #
+# #
+# announcets - If this value is defined to yes, true, or 1, then #
+# a channels' timestamp is updated, the users on #
+# the channel will be informed of the change via #
+# a server notice to the channel with the old and #
+# new TS values in the timestamp. If you think this #
+# is just pointless noise, define the value to 0. #
+# #
+# ircumsgprefix - Use undernet style message prefix for channel #
+# NOTICE and PRIVMSG adding the prefix to the line #
+# of text sent out. Eg. NOTICE @#test :@ testing #
+# vs. the off setting: NOTICE @#test :testing #
+# #
+# hostintopic - If this is set to yes (the default) then the full #
+# nick!user@host is shown for who set a TOPIC last. #
+# if set to no, then only the nickname is shown. #
+# #
+# announceinvites #
+# - If this option is set, then invites are announced #
+# to the channel when a user invites another user. #
+# If you consider this to be unnecessary noise, #
+# set this to 'none'. To announce to all ops, set #
+# this to 'ops' and to announce to all users set the #
+# value to 'all'. #
+# #
+# The value 'dynamic' varies between 'ops' and 'all' #
+# settings depending on if the channel is +i or not. #
+# When the channel is +i, messages go only to ops, #
+# and when the channel is not +i, messages go to #
+# everyone. In short, the messages will go to every #
+# user who has power of INVITE on the channel. This #
+# is the recommended setting. #
+# #
+# disablehmac - If you are linking your InspIRCd to older versions #
+# then you can specify this option and set it to #
+# yes. 1.1.6 and above support HMAC and challenge- #
+# response for password authentication. These can #
+# greatly enhance security of your server to server #
+# connections when you are not using SSL (as is the #
+# case with a lot of larger networks). Linking to #
+# older versions of InspIRCd should not *usually* be #
+# a problem, but if you have problems with HMAC #
+# authentication, this option can be used to turn it #
+# off. #
+# #
+# hidemodes - If this option is enabled, then the listmodes #
+# given (e.g. +eI), will be hidden from users below #
+# halfop. This is not recommended to be set on mode #
+# +b, as it may break some features in popular #
+# clients such as mIRC. #
+# #
+# quietbursts - When synching or splitting from the network, a #
+# server can generate a lot of connect and quit #
+# snotices to the +C and +Q snomasks. Setting this #
+# value to yes squelches those messages, which can #
+# make them more useful for opers, however it will #
+# degrade their use by certain third party programs #
+# such as BOPM which rely on them to scan users when #
+# a split heals in certain configurations. #
+# #
+# serverpingfreq- This value, when set, allows you to change the #
+# frequency of server to server PING messages. This #
+# can help if you are having certain network issues. #
+# #
+# pingwarning - This should be set to a number between 1 and 59 if #
+# defined, and if it is defined will cause the server#
+# to send out a warning via snomask +l if a server #
+# does not answer to PING after this many seconds. #
+# This can be useful for finding servers which are #
+# at risk of pinging out due to network issues. #
+# #
+# exemptchanops - This option allows channel operators to be exempted#
+# from certain channel modes. #
+# Supported modes are +SfFgNc. Defaults to off. #
+# #
+# defaultmodes - The default modes to be given to each channel on #
+# creation. Defaults to 'nt'. There should be no + #
+# or - symbols in this sequence, if you add them #
+# they will be ignored. You may add parameters for #
+# modes which take them. #
+# #
+# moronbanner - The NOTICE to show to users who are glined, zlined #
+# klined or qlined when they are disconnected. This #
+# is totally freeform, you may place any text here #
+# you wish. #
+# #
+
+<options prefixquit="Quit: "
+ prefixpart="\""
+ suffixpart="\""
+ netbuffersize="10240"
+ maxwho="128"
+ noservices="no"
+ qprefix=""
+ aprefix=""
+ deprotectself="no"
+ deprotectothers="no"
+ somaxconn="128"
+ softlimit="12800"
+ userstats="Pu"
+ operspywhois="no"
+ customversion=""
+ maxtargets="20"
+ hidesplits="no"
+ hidebans="no"
+ hidewhois=""
+ flatlinks="no"
+ hideulines="no"
+ nouserdns="no"
+ syntaxhints="no"
+ cyclehosts="yes"
+ ircumsgprefix="no"
+ announcets="yes"
+ disablehmac="no"
+ hostintopic="yes"
+ hidemodes="eI"
+ quietbursts="yes"
+ pingwarning="15"
+ serverpingfreq="60"
+ allowhalfop="yes"
+ defaultmodes="nt"
+ announceinvites="dynamic"
+ moronbanner="You're banned! Email haha@abuse.com with the ERROR line below for help."
+ exemptchanops="">
+
+#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
+# Logging
+# -------
+#
+# Logging is covered with the <log> tag, which you may use to change
+# the behaviour of the logging of the IRCd.
+#
+# In InspIRCd as of 1.2, logging is pluggable and very extensible.
+# Different files can log the same thing, different 'types' of log can
+# go to different places, and modules can even extend the log tag
+# to do what they want.
+#
+# An example log tag would be:
+# <log method="file" type="OPER" level="default" target="opers.log">
+# which would log all information on /oper (failed and successful) to
+# a file called opers.log.
+#
+# There are many different types which may be used, and modules may
+# generate their own. A list of useful types:
+# - USERS - information relating to user connection and disconnection
+# - CHANNELS - information relating to joining and parting of channels.
+# XXX someone doc more on this
+#
+# You may also log *everything* by using a type of *, and subtract things out
+# of that by using -TYPE - for example "* -USERINPUT -USEROUTPUT".
+#
+# Channel Logging
+# ---------------
+#
+# I'm aware this would probably better belong in the modules section, but this
+# is heavily interrelated to logging, and as such will be documented here.
+#
+# m_chanlog is one of the modules which can alter logging to it's own thing.
+# An example of this may be:
+#
+#<module name="m_chanlog.so">
+#<log method="channel" type="OPER USERS CHANNELS" level="default" target="#services">
+#
+# The following log tag is highly default and uncustomised. It is recommended you
+# sort out your own log tags. This is just here so you get some output.
+<log method="file" type="* -USERINPUT -USEROUTPUT -m_spanningtree" level="default" target="ircd.log">
+
+#-#-#-#-#-#-#-#-#-#-#-#-#- WHOWAS OPTIONS -#-#-#-#-#-#-#-#-#-#-#-#-#
+# #
+# This tag lets you define the behaviour of the /whowas command of #
+# your server. #
+# #
+# groupsize - Controls the maximum entries per nick shown when #
+# performing a /whowas nick. Setting this to 0 dis- #
+# ables whowas completely. #
+# #
+# maxgroups - The maximum number of nickgroups that can be added #
+# to the list. If max is reached, oldest group will #
+# be deleted first like a FIFO. A groupsize of 3 and #
+# a maxgroups of 5000 will allow for 5000 nicks to #
+# be stored with a history of 3, thus giving a total #
+# of 3 * 5000 = 15000 entries. A setting of 0 dis- #
+# ables whowas completely. #
+# #
+# maxkeep - The maximum time a nick is kept in the whowas list #
+# before being pruned. Time may be specified in #
+# seconds, or in the following format: 1y2w3d4h5m6s #
+# meaning one year, two weeks, three days, 4 hours, #
+# 5 minutes and 6 seconds. All fields in this format #
+# are optional. Minimum is 1 hour, if less InspIRCd #
+# will default back to 1 hour. #
+# #
+#<whowas groupsize="10" #
+# maxgroups="100000" #
+# maxkeep="3d"> #
+
+
+#-#-#-#-#-#-#-#-#-#-#-#-#- MODULE OPTIONS -#-#-#-#-#-#-#-#-#-#-#-#-#
+# #
+# These tags define which modules will be loaded on startup by your #
+# server. Add modules without any paths. When you make your ircd #
+# using the 'make' command, all compiled modules will be moved into #
+# the folder you specified when you ran ./configure. The module tag #
+# automatically looks for modules in this location. #
+# If you attempt to load a module outside of this location, either #
+# in the config, or via /LOADMODULE, you will receive an error. #
+# #
+# By default, ALL modules are commented out. You must uncomment them #
+# or add lines to your config to load modules. Please refer to #
+# http://www.inspircd.org/wiki/Modules_List for a list of modules and#
+# each modules link for any additional conf tags they require. #
+# #
+# You may use wildcards in a <module> tag to load all modules which #
+# match a glob pattern (e.g. m_sa????.so would load m_sajoin, #
+# m_sapart, m_saquit and m_sanick) #
+# #
+# ____ _ _____ _ _ ____ _ _ _ #
+# | _ \ ___ __ _ __| | |_ _| |__ (_)___ | __ )(_) |_| | #
+# | |_) / _ \/ _` |/ _` | | | | '_ \| / __| | _ \| | __| | #
+# | _ < __/ (_| | (_| | | | | | | | \__ \ | |_) | | |_|_| #
+# |_| \_\___|\__,_|\__,_| |_| |_| |_|_|___/ |____/|_|\__(_) #
+# #
+# 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">
+
+
+#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
+# MD5 Module - Allows other modules to generate MD5 hashes, usually for
+# cryptographic uses and security.
+#
+# IMPORTANT:
+# Other modules such as m_cloaking.so and m_opermd5.so may rely on
+# this module being loaded to function.
+#
+#<module name="m_md5.so">
+#
+#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
+# SHA256 Module - Allows other modules to generate SHA256 hashes,
+# usually for cryptographic uses and security.
+#
+# IMPORTANT:
+# Other modules such as m_password_hash.so may rely on this module being
+# loaded to function. Certain modules such as m_spanningtree.so will
+# function without this module but when it is loaded their features will
+# be enhanced (for example the addition of HMAC authentication).
+#
+#<module name="m_sha256.so">
+
+#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
+# Alias module: Allows you to define server-side command aliases
+#<module name="m_alias.so">
+#
+#-#-#-#-#-#-#-#-#-#-#- ALIAS DEFINITIONS -#-#-#-#-#-#-#-#-#-#-#-#-#-#
+# #
+# If you have the m_alias.so module loaded, you may also define #
+# aliases as shown below. They are commonly used to provide shortcut #
+# commands to services, however they are not limited to just this use.#
+# An alias tag requires the following values to be defined in it: #
+# #
+# text - The text to detect as the actual command line, #
+# Cant contain spaces, but case insensitive. #
+# You may have multiple aliases with the same #
+# command name (text="" value), however the first #
+# found will be executed if its format value is #
+# matched, or it has no format value. Aliases are #
+# read from the top of the file to the bottom. #
+# #
+# format - If this is defined, the parameters of the alias #
+# must match this glob pattern. For example if you #
+# want the first parameter to start with a # for #
+# the alias to be executed, set format="#*" in the #
+# alias definition. Note that the :'s which are #
+# part of IRC formatted lines will be preserved #
+# for matching of this text. This value is #
+# optional. #
+# #
+# replace - The text to replace 'text' with. Usually this #
+# will be "PRIVMSG ServiceName :$2-" or similar. #
+# You may use the variables $1 through $9 in the #
+# replace string, which refer to the first through #
+# ninth word in the original string typed by the #
+# user. You may also use $1- through $9- which #
+# refer to the first word onwards, through to the #
+# ninth word onwards, e.g. if the user types the #
+# command "foo bar baz qux quz" then $3- will hold #
+# "baz qux quz" and $2 will contain "bar". You may #
+# also use the special variables: $nick, $ident, #
+# $host and $vhost, and you may separate multiple #
+# commands with \n. If you wish to use the ACTUAL #
+# characters \ and n together in a line, you must #
+# use the sequence "\\n". #
+# #
+# 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 #
+# the user receives a 'no such nick' 401 numeric. #
+# #
+# uline - Defining this value with 'yes', 'true' or '1' #
+# will ensure that the user given in 'requires' #
+# must also be on a u-lined server, as well as #
+# actually being on the network. If the user is #
+# online, but not on a u-lined server, then an #
+# oper-alert is sent out as this is possibly signs #
+# of a user trying to impersonate a service. #
+# #
+# operonly - Defining this value, with a value of 'yes', '1' #
+# or true will make the alias oper only. If a non- #
+# oper attempts to use the alias, it will appear #
+# to not exist. #
+# #
+#<alias text="NICKSERV" replace="PRIVMSG NickServ :$2-" requires="NickServ" uline="yes">
+#<alias text="CHANSERV" replace="PRIVMSG ChanServ :$2-" requires="ChanServ" uline="yes">
+#<alias text="OPERSERV" replace="PRIVMSG OperServ :$2-" requires="OperServ" uline="yes" operonly="yes">
+#<alias text="NS" replace="PRIVMSG NickServ :$2-" requires="NickServ" uline="yes">
+#<alias text="CS" replace="PRIVMSG ChanServ :$2-" requires="ChanServ" uline="yes">
+#<alias text="OS" replace="PRIVMSG OperServ :$2-" requires="OperServ" uline="yes" operonly="yes">
+#
+# An example of using the format value to create an alias with two
+# different behaviours depending on the format of the parameters.
+#
+#<alias text="ID" format="#*" replace="PRIVMSG ChanServ :IDENTIFY $2 $3"
+# requires="ChanServ" uline="yes">
+#
+#<alias text="ID" replace="PRIVMSG NickServ :IDENTIFY $2"
+# requires="NickServ" uline="yes">
+#
+# This alias fixes a glitch in xchat 2.6.x and above and the way it
+# assumes IDENTIFY must be prefixed by a colon (:) character. It should
+# be placed ABOVE the default NICKSERV alias (the first example) listed
+# above.
+#
+#<alias text="NICKSERV" format=":IDENTIFY *" replace="PRIVMSG NickServ :IDENTIFY $3-"
+# requires="NickServ" uline="yes">
+
+#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
+# Alltime module: Shows time on all connected servers at once
+#<module name="m_alltime.so">
+
+#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
+# Antibear security module: Prevents 'bear.txt' based trojans from
+# connecting to your network by sending them a numeric they can't handle.
+#<module name="m_antibear.so">
+
+#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
+# Antibottler module: Labels bottler leech bots
+#<module name="m_antibottler.so">
+
+#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
+# Auditorium module: Adds channel mode +u which makes everyone else
+# except you in the channel invisible, used for large meetings etc.
+#<module name="m_auditorium.so">
+#
+# Auditorium settings:
+#
+#<auditorium showops="no" operoverride="no">
+#
+# showops:
+# Setting this value to yes makes m_auditorium behave like unrealircd
+# +u channel mode, e.g. ops see users joining, parting, etc, and users
+# joining the channel see the ops. Without this flag, the mode acts
+# like ircnet's +a (anonymous channels), showing only the user in the
+# names list, and not even showing the ops in the list, or showing the
+# ops that the user has joined.
+# operoverride:
+# Setting this value to yes makes m_auditorium affect the userlist for
+# regular users only. Opers will view all users in the channel normally.
+
+#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
+# Ban except module: Adds support for channel ban exceptions (+e)
+#<module name="m_banexception.so">
+
+#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
+# Ban redirection module: Allows bans which redirect to a specified
+# channel. e.g. +b nick!ident@host#channelbanneduserissentto
+#<module name="m_banredirect.so">
+
+#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
+# Block amsg module: Attempt to block all usage of /amsg and /ame
+#<module name="m_blockamsg.so">
+#
+#-#-#-#-#-#-#-#-#-#-#- BLOCKAMSG CONFIGURATION -#-#-#-#-#-#-#-#-#-#-#
+# #
+# If you have the m_blockamsg.so module loaded, you can configure it #
+# with the <blockamsg> tag: #
+# #
+# delay - How many seconds between two messages to force #
+# them to be recognised as unrelated. #
+# action - Any of 'notice', 'noticeopers', 'silent', 'kill' #
+# or 'killopers'. Define how to take action when #
+# a user uses /amsg or /ame. #
+#
+#<blockamsg delay="3" action="killopers">
+
+#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
+# Block CAPS module: Blocking all-CAPS messages with cmode +B
+#<module name="m_blockcaps.so">
+# #
+#-#-#-#-#-#-#-#-#-#-#- BLOCKCAPS CONFIGURATION -#-#-#-#-#-#-#-#-#-#-#
+# #
+# percent - How many percent of text must be caps before text #
+# will be blocked. #
+# #
+# minlen - The minimum length a line must be for the block #
+# percent to have any effect. #
+# #
+# capsmap - A list of chars to be considered CAPS, this was #
+# you can add CAPS for your language. Also you can #
+# add things like ! and space to further lock down #
+# on caps usage. #
+#<blockcaps percent="50"
+# minlen="5"
+# capsmap="ABCDEFGHIJKLMNOPQRSTUVWXYZ! ">
+
+#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
+# Block colour module: Blocking colour-coded messages with cmode +c
+#<module name="m_blockcolor.so">
+
+#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
+# Botmode module: Adds the user mode +B
+#<module name="m_botmode.so">
+
+#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
+# CallerID module: Adds usermode +g which activates hybrid-style
+# callerid (== block all private messages unless you /accept first)
+#<module name="m_callerid.so">
+#
+#-#-#-#-#-#-#-#-#-#-#- CALLERID CONFIGURATION -#-#-#-#-#-#-#-#-#-#-#-#
+# maxaccepts - Maximum number of entires a user can add to his #
+# /accept list. Default is 16 entries. #
+# operoverride - Can opers (note: ALL opers) ignore callerid mode? #
+# Default is no. #
+# tracknick - Preserve /accept entries when a user changes nick? #
+# If no (the default), the user is removed from #
+# everyone's accept list if he changes nickname. #
+# cooldown - Amount of time (in seconds) that must pass since #
+# the last notification sent to a user before he can #
+# be sent another. Default is 60 (1 minute). #
+#<callerid maxaccepts="16"
+# operoverride="no"
+# tracknick="no"
+# cooldown="60"
+
+#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
+# CBAN module: Lets you disallow channels from being used at runtime.
+#<module name="m_cban.so">
+
+#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
+# Censor module: Adds the channel mode +G
+#<module name="m_censor.so">
+#
+#-#-#-#-#-#-#-#-#-#-#- CENSOR CONFIGURATION -#-#-#-#-#-#-#-#-#-#-#-#
+# #
+# Optional - If you specify to use the m_censor module, then you must #
+# specify some censor tags. See also: #
+# http://www.inspircd.org/wiki/Censor_Module #
+#
+#<include file="censor.conf">
+
+#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
+# CGI:IRC module: Adds support for automatic host changing in CGI:IRC
+# (http://cgiirc.sourceforge.net).
+#<module name="m_cgiirc.so">
+#
+#-#-#-#-#-#-#-#-#-#-#-# CGIIRC CONFIGURATION #-#-#-#-#-#-#-#-#-#-#-#-#
+#
+# Optional - If you specify to use m_cgiirc, then you must specify one
+# or more cgihost tags which indicate authorised CGI:IRC servers which
+# will be connecting to your network, and an optional cgiirc tag.
+# For more information see: http://www.inspircd.org/wiki/CGI-IRC_Module
+#
+# Set to yes if you want to notice opers when CGI clients connect
+# <cgiirc opernotice="no">
+#
+# The type field indicates where the module should get the real
+# client's IP address from, for further information, please see the
+# CGI:IRC documentation.
+#
+# <cgihost type="pass" mask="www.mysite.com"> # Get IP from PASS
+# <cgihost type="webirc" mask="somebox.mysite.com"> # Get IP from WEBIRC
+# <cgihost type="ident" mask="otherbox.mysite.com"> # Get IP from ident
+# <cgihost type="passfirst" mask="www.mysite.com"> # See the docs
+#
+# IMPORTANT NOTE:
+# ---------------
+#
+# When you connect CGI:IRC clients, there are two connect classes which
+# apply to these clients. When the client initially connects, the connect
+# class which matches the cgi:irc site's host is checked. Therefore you
+# must raise the maximum local/global clients for this ip as high as you
+# want to allow cgi clients. After the client has connected and is
+# determined to be a cgi:irc client, the class which matches the client's
+# real IP is then checked. You may set this class to a lower value, so that
+# the real IP of the client can still be restricted to, for example, 3
+# sessions maximum.
+#
+
+
+#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
+# Channel create module: Adds snomask +j, which will notify opers of
+# any new channels that are created
+#<module name="m_chancreate.so">
+
+#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
+# Channel filter module: Allows channel-op defined message
+# filtering using simple string matches (channel mode +g)
+#<module name="m_chanfilter.so">
+
+#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
+# Chanprotect module: gives +q and +a channel modes
+#<module name="m_chanprotect.so">
+
+#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
+# Check module: gives /check
+# Check is useful for looking up information on channels,
+# users, IP addresses and hosts.
+#<module name="m_check.so">
+
+#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
+# CHGHOST module: Adds the /CHGHOST command
+#<module name="m_chghost.so">
+#
+#-#-#-#-#-#-#-#-# /CHGHOST - /SETHOST CONFIGURATION #-#-#-#-#-#-#-#-#
+# Optional - If you want to use special chars for hostnames you can #
+# specify your own custom list of chars with the <hostname> tag: #
+# #
+# charmap - A list of chars accepted as valid by the /CHGHOST #
+# and /SETHOST commands. Also note that the list is #
+# case-sensitive. #
+#<hostname charmap="abcdefghijklmnopqrstuvwxyz.-_/0123456789">
+
+#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
+# CHGIDENT module: Adds the /CHGIDENT command
+#<module name="m_chgident.so">
+
+#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
+# CHGNAME module: Adds the /CHGNAME command
+#<module name="m_chgname.so">
+
+#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
+# Cloaking module: Adds usermode +x and cloaking support.
+# Relies on the module m_md5.so being loaded before m_cloaking.so in
+# the configuration file.
+#<module name="m_cloaking.so">
+#
+#-#-#-#-#-#-#-#-#-#-#- CLOAKING CONFIGURATION -#-#-#-#-#-#-#-#-#-#-#-#
+# #
+# Optional - If you specify the m_cloaking.so module as above, you #
+# must define cloak keys, and optionally a cloak prefix as shown #
+# below. When using cloaking, the cloak keys are MANDITORY and must #
+# be included. However, if prefix is not included, it will default #
+# to your networks name from the <server> tag. You can also include #
+# the following optional values: #
+# #
+# ipalways - Always cloak the IP address, not the hostname, #
+# which doesn't reveal the user's ISP, but #
+# results in hosts that are harder to read and #
+# ban. #
+# #
+# lowercase - Display the cloaked hostnames in lowercase #
+# characters instead of uppercase #
+# #
+# <cloak key1="0x2AF39F40" #
+# key2="0x78E10B32" #
+# key3="0x4F2D2E82" #
+# key4="0x043A4C81" #
+# prefix="mynet" #
+# ipalways="false" #
+# lowercase="false"> #
+# #
+# Please note that the key values will accept any number, and should #
+# be large numbers. Using small numbers such as "7" or "1924" will #
+# seriously weaken the security of your cloak. It is recommended you #
+# use hexdecimal numbers prefixed by "0x", as shown in this example, #
+# with each key eight hex digits long. #
+
+#-#-#-#-#-#-#-#-#-#-#-#- CLOSE MODULE #-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
+# Close module: Allows an oper to close all unregistered connections.
+#<module name="m_close.so">
+
+#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
+# Clones module: Adds an oper command /CLONES for detecting cloned
+# users. Warning: This module may be resource intensive when its
+# command is issued, use with care.
+#<module name="m_clones.so">
+
+#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
+# Common channels module: Adds user mode +c, which, when set, requires
+# that users must share a common channel with you to PRIVMSG or NOTICE
+# you.
+#<module name="m_commonchans.so">
+
+#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
+# Conn-Join: Allows you to force users to join one or more channels
+# automatically upon connecting to the server.
+#<module name="m_conn_join.so">
+#
+#-#-#-#-#-#-#-#-#-#-#-#- CONNJOIN CONFIGURATION -#-#-#-#-#-#-#-#-#-#-#
+#
+# If you have m_conn_join.so loaded, you can configure it using the
+# follow values:
+#
+#<autojoin channel="#one,#two,#three">
+
+#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
+# Conn-Usermodes: Set modes on users when they connect
+# When this module is loaded <connect:allow> tags may have an optional
+# modes="" value, which contains modes to add or remove from users
+# when they connect to the server.
+#<module name="m_conn_umodes.so">
+
+#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
+# Conn-Wait-for-Pong: Don't let a user connect until they PONG
+#<module name="m_conn_waitpong.so">
+#
+#-#-#-#-#-#-#-#-#-#-#- WAITPONG CONFIGURATION -#-#-#-#-#-#-#-#-#-#-#
+# #
+# If you have the m_conn_waitpong.so module loaded, configure it with #
+# the <waitpong> tag: #
+# #
+# sendsnotice - Whether to send a snotice on connect, like other #
+# older ircds #
+# #
+# killonbadreply - Whether to kill the user if they send the wrong #
+# PONG reply. #
+# #
+#<waitpong sendsnotice="yes" killonbadreply="yes">
+
+
+#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
+# Channel cycle module. Server side /hop, with +ilk etc bypass.
+#<module name="m_cycle.so">
+
+#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
+# Connection throttle module. Configuration:
+#<module name="m_connflood.so">
+#
+#-#-#-#-#-#-#-#-#-#-#- CONTHROTTLE CONFIGURATION -#-#-#-#-#-#-#-#-#-#-#
+# seconds, maxconns - Amount of connections per <seconds>.
+#
+# timeout - Time to wait after the throttle was activated
+# before deactivating it. Be aware that the time
+# is seconds + timeout.
+#
+# quitmsg - The message that users get if they attempt to
+# connect while the throttle is active.
+#
+# bootwait - Amount of time to wait before enforcing the
+# throttling when the server just booted.
+#
+#<connflood seconds="30" maxconns="3" timeout="30"
+# quitmsg="Throttled" bootwait="10">
+
+#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
+# Custom title module: Adds the /TITLE command which allows for trusted
+# users to gain a custom whois line and a optional
+# vhost can be specified.
+#<module name="m_customtitle.so">
+#
+#-#-#-#-#-#-#-#-#-#- CUSTOM TITLE CONFIGURATION -#-#-#-#-#-#-#-#-#-#
+# name - The username used to identify
+# password - The password used to identify
+# host - Allowed hostmask [optional]
+# title - Title shown in whois
+# vhost - Displayed host [optional]
+#
+#<title name="foo" password="bar" title="Official Chat Helper">
+#<title name="bar" password="foo" host="ident@host.name" title="Official Chat Helper" vhost="helper.network.chat">
+
+#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
+# DCCALLOW module: Adds the /DCCALLOW command
+#<module name="m_dccallow.so">
+#
+#-#-#-#-#-#-#-#-#-#-#- DCCALLOW CONFIGURATION -#-#-#-#-#-#-#-#-#-#-#
+# blockchat - Whether to block DCC CHAT as well as DCC SEND
+# length - Default duration of entries in DCCALLOW list
+# action - Default action to take if no action is specified
+# can be 'block' or 'allow'
+#
+# File configuration:
+# pattern - The glob pattern to match against
+# action - Action to take if a user attempts to send a file
+# that matches this pattern, can be 'block' or 'allow'
+#
+#<dccallow blockchat="yes" length="5m" action="block">
+#<banfile pattern="*.exe" action="block">
+#<banfile pattern="*.txt" action="allow">
+#
+#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
+
+#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
+# Deaf module: adds support for ircu style usermode +d - deaf to
+# channel messages and channel notices.
+#<module name="m_deaf.so">
+
+#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
+# Delay join module: Adds the channel mode +D which delays all JOIN
+# messages from users until they speak. If they quit or part before
+# speaking, their quit or part message will not be shown to the channel
+# which helps cut down noise on large channels in a more friendly way
+# than the auditorium mode. Only channel ops may set the +D mode.
+#<module name="m_delayjoin.so">
+
+#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
+# Deny Channels: Deny Channels from being used by users
+#<module name="m_denychans.so">
+#
+#-#-#-#-#-#-#-#-#-#-#- DENYCHAN DEFINITIONS -#-#-#-#-#-#-#-#-#-#-#-#
+# #
+# If you have the m_denychans.so module loaded, you need to specify #
+# the channels to deny: #
+# #
+# name - The channel name to deny. (glob masks are ok) #
+# #
+# allowopers - If operators are allowed to override the deny. #
+# #
+# reason - Reason given for the deny. #
+# #
+# redirect - Redirect the user to a different channel #
+# #
+#<badchan name="#gods*" allowopers="yes" reason="Tortoises!"> #
+#<badchan name="#heaven" redirect="#hell" reason="Nice try!"> #
+# #
+# Redirects will not work if the target channel is set +L. #
+# #
+# Additionally, you may specify channels which are allowed, even if #
+# a badchan tag specifies it would be denied: #
+#<goodchan name="#godsleeps"> #
+# Glob masks are accepted here also.
+
+#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
+# Devoice Module: Let users devoice themselves.
+#<module name="m_devoice.so">
+
+#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
+# DNS Blacklist Module: Provides support for looking up IPs on one or #
+# more blacklists. #
+#<module name="m_dnsbl.so"> #
+# #
+# For configuration options please see the wiki page for m_dnsbl at #
+# http://inspircd.org/wiki/DNS_Blacklist_Module #
+
+#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
+# Filter module: Provides glob-based message filtering
+#<module name="m_filter.so">
+# OR
+# PCRE filter module: Filters messages using regular expressions
+#<module name="m_filter_pcre.so">
+#
+# You may only use one or the other with these modules, network-wide.
+#
+#-#-#-#-#-#-#-#-#-#-#- FILTER CONFIGURATION -#-#-#-#-#-#-#-#-#-#-#-#
+# #
+# Optional - If you specify to use the m_filter or m_filter_pcre #
+# modules, then specfiy below the path to the filter.conf file, #
+# or define some <filter> tags. #
+# #
+#<include file="filter.conf">
+
+#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
+# Foobar module: does nothing - historical relic
+#<module name="m_foobar.so">
+
+#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
+# GeoIP module: Allows the server admin to ban users by country code.
+#<module name="m_geoip.so">
+#
+#-#-#-#-#-#-#-#-#-#-#-# GEOIP CONFIGURATION #-#-#-#-#-#-#-#-#-#-#-#-#
+# #
+# <geoip banunknown="false"> #
+# #
+# Set this value to true or yes to block unknown IP ranges which are #
+# not in the database (usually LAN addresses, localhost, etc) #
+# #
+# <geoban country="TR" reason="This country not permitted"> #
+# #
+# Use one or more of these tags to ban countries by country code. #
+# The country code must be in capitals and should be an ISO country #
+# code such as TR, GB, or US. #
+
+#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
+# Globops module: gives /GLOBOPS and usermode +g
+#<module name="m_globops.so">
+
+#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
+# Global load module: Allows loading and unloading of modules network-
+# wide (USE WITH EXTREME CAUTION!)
+#<module name="m_globalload.so">
+
+#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
+# HELPOP module: Provides the /HELPOP command
+#<module name="m_helpop.so">
+#
+#-#-#-#-#-#-#-#-#-#-#-#- HELPOP CONFIGURATION -#-#-#-#-#-#-#-#-#-#-#
+# #
+# Optional - If you specify to use the m_helpop.so module, then #
+# specify below the path to the helpop.conf file, or if you like to #
+# make a mess, define your helpop tags in this conf. #
+# #
+#<include file="helpop.conf">
+
+#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
+# HIDECHANS module: Allows opers to hide their channels list from non-
+# opers by setting user mode +I on themselves.
+# <module name="m_hidechans.so">
+
+#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
+# HIDEOPER module: Allows opers to hide their oper status from non-
+# opers by setting user mode +H on themselves.
+# <module name="m_hideoper.so">
+
+#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
+# Hostchange module: Allows a different style of cloaking
+#<module name="m_hostchange.so">
+#
+#-#-#-#-#-#-#-#-#-#-#- HOSTCHANGE CONFIGURATION -#-#-#-#-#-#-#-#-#-#
+# #
+# Optional - If you choose to use the m_hostchange.so module. #
+# Config Help - See http://www.inspircd.org/wiki/Host_Changer_Module #
+# #
+#<host suffix="polarbears.org" separator="." prefix="">
+#<hostchange mask="*@fbi.gov" action="addnick">
+#<hostchange mask="*r00t@*" action="suffix">
+#<hostchange mask="a@b.com" action="set" value="blah.blah.blah">
+#<hostchange mask="localhost" ports="7000,7001,7005-7007" action="set" value="blahblah.foo">
+
+#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
+# httpd module: Provides http server support for InspIRCd
+#<module name="m_httpd.so">
+#
+#-#-#-#-#-#-#-#-#-#-#-#- HTTPD CONFIGURATION -#-#-#-#-#-#-#-#-#-#-#
+#
+# Optional - If you choose to use the m_httpd.so module, then you must
+# specify the port number and other details of your http server:
+#
+#<http ip="192.168.1.10" host="brainwave" port="32006"
+# index="/home/brain/inspircd/http/index.html">
+#
+# You may have as many of these tags as you wish, each with a different
+# IP, port, host or index file. Each one will act as an independent
+# HTTP server.
+#
+
+#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
+# http stats module: Provides basic stats pages over HTTP
+# Requires m_httpd.so to be loaded for it to function.
+#<module name="m_httpd_stats.so">
+#
+#-#-#-#-#-#-#-#-#-#-#-#- HTTPD STATS CONFIGURATION -#-#-#-#-#-#-#-#-#-#
+#
+#<httpstats stylesheet="http://remote.style/sheet.css">
+#
+
+#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
+# Ident: Provides RFC 1413 ident lookup support
+#<module name="m_ident.so">
+#
+#-#-#-#-#-#-#-#-#-#-#-#- IDENT CONFIGURATION -#-#-#-#-#-#-#-#-#-#-#
+# #
+# Optional - If you are using the m_ident.so module, then you can #
+# specify the timeout for ident lookups here. If not defined, it will #
+# default to one second. This is a non-blocking timeout which holds #
+# the user in a 'connecting' state until the lookup is complete. #
+# The bind value indicates which IP to bind outbound requests to. #
+# #
+#<ident timeout="5" bind=""> #
+
+#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
+# Invite except module: Adds support for channel invite exceptions (+I)
+#<module name="m_inviteexception.so">
+
+#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
+# Invisible module - Adds support for usermode +Q (quiet) which lets an
+# oper go 'invisible' similar to unrealircd 3.1's +I mode. Note that
+# opers are still able to see invisible users, and if an oper with +Q
+# deopers, they will become visible.
+#
+# IMPORTANT NOTE: To allow this mode to be used by a type of oper, you
+# must first add the value canquiet="yes" to that oper's type tag.
+#
+#<module name="m_invisible.so">
+
+#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
+# Join flood module: Adds support for join flood protection (+j)
+#<module name="m_joinflood.so">
+
+#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
+# Jump Server module: Adds support for the RPL_REDIR numeric
+#<module name="m_jumpserver.so">
+
+#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
+# Anti-Auto-Rejoin: Adds support for prevention of auto-rejoin (+J)
+#<module name="m_kicknorejoin.so">
+
+#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
+# Knock module: adds the /KNOCK command and +K channel mode
+#<module name="m_knock.so">
+
+#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
+# LDAP authentication module: Adds the ability to authenticate users #
+# via LDAP. This is an extra module which must be enabled explicitly #
+# by symlinking it from modules/extra, and requires the OpenLDAP libs #
+# #
+#<module name="m_ldapauth.so"> #
+# #
+# Configuration: #
+# #
+# <ldapauth baserdn="ou=People,dc=brainbox,dc=cc" #
+# attribute="uid" #
+# server="ldap://brainwave.brainbox.cc" #
+# allowpattern="Guest*" #
+# killreason="Access denied" #
+# searchscope="subtree" #
+# binddn="cn=Manager,dc=brainbox,dc=cc" #
+# bindauth="mysecretpass" #
+# verbose="yes"> #
+# #
+# The baserdn indicates the base DN to search in for users. Usually #
+# this is 'ou=People,dc=yourdomain,dc=yourtld'. #
+# #
+# The attribute value indicates the attribute which is used to locate #
+# a user account by name. On POSIX systems this is usually 'uid'. #
+# #
+# The server parameter indicates the LDAP server to connect to. The #
+# ldap:// style scheme before the hostname proper is MANDITORY. #
+# #
+# The allowpattern value allows you to specify a wildcard mask which #
+# will always be allowed to connect regardless of if they have an #
+# account, for example guest users. #
+# #
+# Killreason indicates the QUIT reason to give to users if they fail #
+# to authenticate. #
+# #
+# The searchscope value indicates the subtree to search under. On our #
+# test system this is 'subtree'. Your mileage may vary. #
+# #
+# Setting the verbose value causes an oper notice to be sent out for #
+# every failed authentication to the server, with an error string. #
+# #
+# The binddn and bindauth indicate the DN to bind to for searching, #
+# and the password for the distinguished name. Some LDAP servers will #
+# allow anonymous searching in which case these two values do not #
+# need defining, otherwise they should be set similar to the examples #
+# above. #
+
+#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
+# Lock server module: Adds /LOCKSERV and /UNLOCKSERV commands that is #
+# used to temporarily close/open for new connections to the server. #
+# These commands require OPER status and that the LOCKSERV UNLOCKSERV #
+# are specified in a <class> tag that the oper is part of. This is so #
+# you can control who has access to this possible dangerous command. #
+# If your server is locked and you got disconnected, do a REHASH from #
+# shell to open up again.
+#<module name="m_lockserv.so">
+
+#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
+# Msg flood module: Adds message/notice flood protection (+f)
+#<module name="m_messageflood.so">
+
+#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
+# MsSQL module: Allows other SQL modules to access MS SQL Server
+# through a unified API. You must copy the source for this module
+# from the directory src/modules/extra, plus the file m_sqlv2.h
+#<module name="m_mssql.so">
+#
+#-#-#-#-#-#-#-#-#-#-#-#- SQL CONFIGURATION -#-#-#-#-#-#-#-#-#-#-#-#-#
+# #
+# m_mssql.so is more complex than described here, see wiki for more #
+# info http://www.inspircd.org/wiki/SQLServer_Service_Provider_Module #
+#
+#<database name="db" username="user" password="pass" hostname="localhost" id="db1">
+
+#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
+# MySQL module: Allows other SQL modules to access MySQL databases
+# through a unified API. You must copy the source for this module
+# from the directory src/modules/extra, plus the file m_sqlv2.h
+#<module name="m_mysql.so">
+#
+#-#-#-#-#-#-#-#-#-#-#-#- SQL CONFIGURATION -#-#-#-#-#-#-#-#-#-#-#-#-#
+# #
+# m_mysql.so is more complex than described here, see the wiki for #
+# more: http://www.inspircd.org/wiki/SQL_Service_Provider_Module #
+#
+#<database name="mydb" username="myuser" password="mypass" hostname="localhost" id="my_database2">
+
+#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
+# NAMESX module: Provides support for the NAMESX extension which allows
+# clients to see all the prefixes set on a user without getting confused.
+# This is supported by mIRC, x-chat, klient, and maybe more.
+#<module name="m_namesx.so">
+
+#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
+# Nickban: Implements extended ban n:, which stops anyone matching
+# a mask like +b n:nick!user@host from changing their nick on channel.
+#<module name="m_nickban.so">
+#
+
+#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
+# Nickchange flood protection module: Allows up to X nick changes in Y seconds.
+# Provides channel mode +F.
+#<module name="m_nickflood.so">
+
+#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
+# Nicklock module: Let opers change a user's nick and then stop that
+# user from changing their nick again.
+#<module name="m_nicklock.so">
+
+#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
+# No ctcp module: Adds the channel mode +C to block CTCPs
+#<module name="m_noctcp.so">
+
+#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
+# Noinvite module: Gives channel mode +V
+#<module name="m_noinvite.so">
+
+#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
+# No kicks module: Adds the +Q channel mode
+#<module name="m_nokicks.so">
+
+#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
+# No nicks module: Adds the +N channel mode
+#<module name="m_nonicks.so">
+
+#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
+# No Notice module: adds the channel mode +T
+#<module name="m_nonotice.so">
+
+#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
+# Oper channels mode: Adds the +O channel mode
+#<module name="m_operchans.so">
+
+#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
+# Oper Join module: Forces opers to join a channel on oper-up
+#<module name="m_operjoin.so">
+#
+#-#-#-#-#-#-#-#-#-#-# OPERJOIN CONFIGURATION -#-#-#-#-#-#-#-#-#-#-#
+# #
+# If you are using the m_operjoin.so module, specify options here: #
+# #
+# channel - The channel name to join, can also be a comma #
+# seperated list eg. "#channel1,#channel2". #
+# #
+# override - Lets the oper join walking thru any modes that #
+# might be set, even bans. Use "yes" or "no". #
+# #
+#<operjoin channel="#channel" override="no">
+
+#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
+# Oper MOTD module: Provides support for seperate message of the day
+# on oper-up
+#<module name="m_opermotd.so">
+#
+#-#-#-#-#-#-#-#-#-#-# OPERMOTD CONFIGURATION -#-#-#-#-#-#-#-#-#-#-#
+# #
+# If you are using the m_opermotd.so module, specify the motd here #
+# #
+#<opermotd file="oper.motd">
+
+#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
+# Override module: Adds support for oper override
+#<module name="m_override.so">
+#
+#-#-#-#-#-#-#-#-#-#-# OVERRIDE CONFIGURATION -#-#-#-#-#-#-#-#-#-#-#
+# #
+# m_override.so is too complex it describe here, see the wiki: #
+# http://www.inspircd.org/wiki/Oper_Override_Module #
+
+#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
+# Oper levels module: Gives each oper a level and prevents
+# actions being taken against higher level opers
+# Specify the level as the 'level' parameter of the <type> tag
+#<module name="m_operlevels.so">
+
+#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
+# Oper modes module: Allows you to specify modes to add/remove on oper
+# Specify the modes as the 'modes' parameter of the <type> tag
+# and/or as the 'modes' parameter of the <oper> tag.
+#<module name="m_opermodes.so">
+
+#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
+# Oper password hash module: Allows hashed oper passwords
+# Relies on the module m_md5.so and/or m_sha256.so being loaded before
+# m_password_hash.so in the configuration file.
+#<module name="m_password_hash.so">
+#
+#-#-#-#-#-#-#-#-#-#-# OPER HASH CONFIGURATION #-#-#-#-#-#-#-#-#-#-#-#-#
+#
+# To use this module, you must define a hash type for each oper's
+# password you want to hash. For example:
+#
+# <oper name="Brain"
+# host="ident@dialup15.isp.com"
+# hash="sha256"
+# password="a41d730937a53b79f788c0ab13e9e1d5"
+# type="NetAdmin">
+#
+# The types of hashing available vary depending on which hashing modules
+# you load, but usually if you load m_sha256.so and m_md5.so, both md5
+# and sha256 type hashing will be available (the most secure of which
+# is SHA256).
+
+#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
+# Permanent Channels module: Channels with the permanent channels mode
+# will remain open even after everyone else has left the channel, and
+# therefore keep things like modes, ban lists and topic. Permanent
+# channels -may- need support from your Services package to function
+# properly with them.
+#<module name="m_permchannels.so">
+
+#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
+# PostgreSQL module: Allows other SQL modules to access PgSQL databases
+# through a unified API. You must copy the source for this module
+# from the directory src/modules/extra, plus the file m_sqlv2.h
+#<module name="m_pgsql.so">
+#
+#-#-#-#-#-#-#-#-#-#-#-#- SQL CONFIGURATION -#-#-#-#-#-#-#-#-#-#-#-#-#
+# #
+# m_pgsql.so is more complex than described here, see the wiki for #
+# more: http://www.inspircd.org/wiki/SQL_Service_Provider_Module #
+#
+#<database name="mydb" username="myuser" password="mypass" hostname="localhost" id="my_database" ssl="no">
+
+#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
+# Quietban: Implements extended ban q:, which stops anyone matching
+# a mask like +b q:nick!user@host from speaking on channel.
+#<module name="m_quietban.so">
+#
+
+#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
+# Quitban: Provides per-IP connection throttling. Any IP that disconnects
+# too many times (configurable) in an hour is zlined for a (configurable)
+# duration, and their count resets to 0.
+#
+# NOTE: This module may change name/behaviour later in 1.2. Please make sure
+# you read release announcements!
+#
+#<quitban threshold="10" duration="10m">
+# This allows for 10 quits in an hour with a 10 minute ban if that is exceeded.
+#
+#<module name="m_quitban.so">
+
+#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
+# Random Quote module: provides a random quote on connect.
+# NOTE: Some of these may mimic fatal errors and confuse users and
+# opers alike! - BEWARE!
+#<module name="m_randquote.so">
+#
+#-#-#-#-#-#-#-#-#-#- RANDOMQUOTES CONFIGURATION -#-#-#-#-#-#-#-#-#-#-#
+# #
+# Optional - If you specify to use the m_randquote.so module, then #
+# specify below the path to the randquotes.conf file. #
+# #
+#<randquote file="randquotes.conf">
+
+#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
+# Redirect module: Adds channel redirection (mode +L)
+#<module name="m_redirect.so">
+
+#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
+# Registered users only channel creation
+# Allows only registered users and opers to create new channels.
+#<module name="m_regonlycreate.so">
+
+#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
+# Remove module: Adds the /REMOVE command which is a peaceful
+# alternative to /KICK
+#<module name="m_remove.so">
+
+#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
+# Restrict banned users module:
+# Disallows banned users on a channel from messaging the channel,
+# changing nick, or changing the topic, if loaded.
+#<module name="m_restrictbanned.so">
+
+#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
+# Restricted channels module: Allows only opers to create channels
+#<module name="m_restrictchans.so">
+
+#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
+# Restrict message module: Allows users to only message opers
+#<module name="m_restrictmsg.so">
+
+#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
+# Ban users through regular expression patterns
+#<module name="m_rline.so">
+#
+#-#-#-#-#-#-#-#-#-#-#-#- RLINE CONFIGURATION -#-#-#-#-#-#-#-#-#-#-#-#-#
+# If you wish to re-check a user when they change nickname (can be
+# useful under some situations, but *can* also use CPU with more users
+# on a server) then set the following configuration value:
+#<rline matchonnickchange="yes">
+
+#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
+# Provide /LIST throttling (to prevent flooding) and /LIST safety to
+# prevent excess flood when the list is large.
+#<module name="m_safelist.so">
+#
+#-#-#-#-#-#-#-#-#-#-# SAFELIST CONFIGURATION -#-#-#-#-#-#-#-#-#-#-#-#-#
+#
+# When using Safelist, you may set the following values;
+#
+# The first value, 'throttle', sets the amount of time in seconds a user
+# must wait between LIST commands. For example, if this is set to 60
+# (the default) then the user may not /LIST more than once a minute.
+# If not defined, the default value is 60 seconds.
+#
+# The second value, 'maxlisters', indicates the maximum number of users
+# which may be retrieving a LIST at once. It is not recommended you raise
+# this value, as increasing it too high can make your network vulnerable
+# to floodbots which waste your bandwidth and CPU time with LIST requests.
+#
+#<safelist throttle="60" maxlisters="50">
+
+#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
+# SAJOIN module: Adds the /SAJOIN command
+#<module name="m_sajoin.so">
+
+#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
+# SAMODE module: Adds the oper /SAMODE command
+#<module name="m_samode.so">
+
+#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
+# SANICK module: Allows opers to change user's nicks
+#<module name="m_sanick.so">
+
+#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
+# SAPART module: Adds the oper /SAPART command
+#<module name="m_sapart.so">
+
+#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
+# SAQUIT module: Adds the oper /SAQUIT command (abusable!!!)
+#<module name="m_saquit.so">
+
+#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
+# Secure list module: Prevent /LIST in the first minute of connection,
+# crippling most spambots and trojan spreader bots.
+#<module name="m_securelist.so">
+#
+#-#-#-#-#-#-#-#-#-# SECURELIST CONFIGURATION -#-#-#-#-#-#-#-#-#-#-#-#-#
+# #
+# Securelist can be harmful to some irc search engines such as #
+# netsplit.de and searchirc.com. To prevent securelist blocking these #
+# sites from listing, define exception tags as shown below: #
+<securehost exception="*@*.searchirc.org">
+<securehost exception="*@*.netsplit.de">
+<securehost exception="*@echo940.server4you.de">
+# #
+# Define the following variable to change how long a user must wait #
+# before issuing a LIST. If not defined, defaults to 60 seconds. #
+# #
+#<securelist waittime="60"> #
+
+#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
+# See nicks module: Allow for SNOMASK +N which shows nick changes.
+#<module name="m_seenicks.so">
+
+#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
+# Set Idle module: Adds a command for opers to change their
+# idle time (mainly a toy)
+#<module name="m_setidle.so">
+
+#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
+# Services support module: Adds several usermodes such as +R and +M
+# this module implements the 'identified' state via user mode +r, which
+# is similar to the DALnet and dreamforge systems.
+#
+# N O T E!!
+# >> This CAN NOT be used at the same time as m_services_account <<
+# N O T E!!
+#<module name="m_services.so">
+
+#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
+# Services support module: Adds several usermodes such as +R and +M
+# this module implements the 'identified' state via account names (AC)
+# and is similar in operation to the way asuka and ircu handle services.
+#
+# N O T E!!
+# >> This CAN NOT be used at the same time as m_services <<
+# N O T E!!
+#<module name="m_services_account.so">
+
+#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
+# Sethost module: Adds the /SETHOST command
+# See m_chghost for how to customise valid chars for hostnames
+#<module name="m_sethost.so">
+
+#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
+# Setident module: Adds the /SETIDENT command
+#<module name="m_setident.so">
+
+#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
+# SETNAME module: Adds the /SETNAME command
+#<module name="m_setname.so">
+
+#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
+# Show Whois module: Adds the +W usermode which allows opers
+# to see when they are whois'ed (can be annoying).
+#<module name="m_showwhois.so">
+
+#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
+# Spy module: Adds the commands SPYLIST and SPYNAMES that let opers
+# see who is in a +s channel, and list +s channels, show keys of keyed
+# channels the oper is not a member of etc. Like most standard 'abusive'
+# features of many other ircds, this is modular in InspIRCd.
+#<module name="m_spy.so">
+
+#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
+# SSL channel mode module: Adds support for SSL-only channels (+z).
+# does not do anything useful without a working SSL module (see below)
+#<module name="m_sslmodes.so">
+
+#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
+# Dummy ssl module: If you have other servers on your network which
+# have SSL, but your server does not have ssl enabled, you should load
+# this module, which will handle SSL metadata (e.g. the "Is using ssl"
+# field in the WHOIS information).
+#<module name="m_ssl_dummy.so">
+
+#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
+# GnuTLS ssl module: Adds support for client-server SSL using GnuTLS,
+# if enabled. You must copy the source for this module from the directory
+# src/modules/extra, or answer 'yes' in ./configure when asked if you
+# want to enable this, or it will not load.
+#<module name="m_ssl_gnutls.so">
+#
+#-#-#-#-#-#-#-#-#-#-#- GNUTLS CONFIGURATION -#-#-#-#-#-#-#-#-#-#-#-#
+# #
+# m_ssl_gnutls.so is too complex it describe here, see the wiki: #
+# http://www.inspircd.org/wiki/GnuTLS_SSL_Module #
+# #
+# NOTE: If you want to use this module to encrypt and sign your #
+# server to server traffic, you MUST load it before m_spanningtree in #
+# your configuration file! #
+
+#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
+# SSL Info module: Allows users to retrieve information about other
+# user's peer SSL certificates and keys. This can be used by client
+# scripts to validate users. For this to work, one of m_ssl_gnutls.so
+# or m_ssl_openssl.so must be loaded. You must symlink the source for
+# this module from the directory src/modules/extra.
+#<module name="m_sslinfo.so">
+
+#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
+# OpenSSL ssl module: Adds support for client-server SSL using OpenSSL,
+# if enabled. You must copy the source for this module from the directory
+# src/modules/extra, or answer 'yes' in ./configure when asked if you
+# want to enable this, or it will not load.
+#<module name="m_ssl_openssl.so">
+#
+#-#-#-#-#-#-#-#-#-#-#- OPENSSL CONFIGURATION -#-#-#-#-#-#-#-#-#-#-#-#
+# #
+# m_ssl_openssl.so is too complex it describe here, see the wiki: #
+# http://www.inspircd.org/wiki/OpenSSL_SSL_Module #
+# #
+# NOTE: If you want to use this module to encrypt and sign your #
+# server to server traffic, you MUST load it before m_spanningtree in #
+# your configuration file! #
+
+#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
+# SSL Cert Oper module: Allows opers to oper up using the key fingerprint
+# stored within their SSL certificate and key pair.
+# When using this module, one of m_ssl_gnutls.so or m_ssl_openssl.so must
+# be loaded. An extra value should be added to enabled opers, which
+# is in the following format: fingerprint="<hash>". For more information,
+# see the example in the oper blocks.
+#<module name="m_ssl_oper_cert.so">
+
+#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
+# Strip colour module: Adds the channel mode +S
+#<module name="m_stripcolor.so">
+
+#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
+# SILENCE module: Adds support for /SILENCE
+#<module name="m_silence.so">
+#
+# Configuration tags:
+#
+#<silence maxentries="32">
+#
+# Sets the maximum number of entries on a users silence list.
+
+#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
+# SQLite3 module: Allows other SQL modules to access SQLite3 #
+# databases through a unified API. You must link the source for this #
+# module from the directory src/modules/extra to src/modules, plus #
+# the file m_sqlv2.h #
+#<module name="m_sqlite3.so">
+#
+#-#-#-#-#-#-#-#-#-#-#-#- SQL CONFIGURATION -#-#-#-#-#-#-#-#-#-#-#-#-#
+# #
+# m_sqlite.so is more complex than described here, see the wiki for #
+# more: http://www.inspircd.org/wiki/SQLite3_Service_Provider_Module #
+#
+#<database hostname="/full/path/to/database.db" id="anytext">
+
+#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
+# SQLutils module: Provides some utilities to SQL client modules, such
+# as mapping queries to users and channels. You must copy the source
+# for this module from the directory src/modules/extra/m_sqlutils.cpp
+# and src/modules/extra/m_sqlutils.h into /src/modules
+# Needed for, and loaded before: SQLauth and SQLoper
+#<module name="m_sqlutils.so">
+
+#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
+# SQL authentication module: Allows IRCd connections to be tied into
+# a database table (for example a forum). You must copy the source for
+# this module from the directory src/modules/extra
+# Depends on the SQLutils module being loaded first.
+#<module name="m_sqlauth.so">
+#
+#-#-#-#-#-#-#-#-#-#-#- SQLAUTH CONFIGURATION -#-#-#-#-#-#-#-#-#-#-#-#
+# #
+# m_sqlauth.so is too complex it describe here, see the wiki: #
+# http://www.inspircd.org/wiki/SQL_Authentication_Module #
+
+#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
+# SQL logging module: Allows you to log network-wide data for your
+# network in a fully normalised set of SQL tables. You must copy the
+# source for this module from the directory src/modules/extra
+#<module name="m_sqllog.so">
+#
+#-#-#-#-#-#-#-#-#-#-#- SQLLOG CONFIGURATION -#-#-#-#-#-#-#-#-#-#-#-#
+# #
+# dbid - Database ID to use (see m_sql) #
+# #
+# See also: http://www.inspircd.org/wiki/SQL_Logging_Module #
+# #
+#<sqllog dbid="1">
+
+#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
+# SQL oper module: Allows you to store oper credentials in an SQL table
+# You must copy the source for this module from the directory src/modules/extra
+# Depends on the SQLutils module being loaded first.
+#<module name="m_sqloper.so">
+#
+#-#-#-#-#-#-#-#-#-#-#- SQLOPER CONFIGURATION -#-#-#-#-#-#-#-#-#-#-#-#
+# #
+# dbid - Database ID to use (see m_sql) #
+# hash - Hashing provider to use for password hashing #
+# #
+# See also: http://www.inspircd.org/wiki/SQL_Oper_Storage_Module #
+# #
+#<sqloper dbid="1" hash="md5">
+
+#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
+# SVSHold module: Implements SVSHOLD. Like Q:Lines, but can only be #
+# added/removed by Services. #
+#<module name="m_svshold.so">
+
+#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
+# SWHOIS module: Allows you to add arbitary lines to user WHOIS.
+#<module name="m_swhois.so">
+
+#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
+# Taxonomy module: Adds the /TAXONOMY command, used to view all
+# metadata attached to a user.
+#<module name="m_taxonomy.so">
+
+#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
+# Test command module: Does nothing significant. Read: pointless.
+#<module name="m_testcommand.so">
+
+#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
+# Timed bans module: Adds timed bans and the /TBAN command
+#<module name="m_timedbans.so">
+
+#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
+# Test line module: Adds the /TLINE command, used to test how many
+# users a /GLINE or /ZLINE etc would match.
+#<module name="m_tline.so">
+
+#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
+# UHNAMES support module: Adds support for the IRCX style UHNAMES
+# extension, which displays ident and hostname in the names list for
+# each user, saving clients from doing a WHO on the channel. Note that
+# this module is not widely supported yet. If a client does not support
+# UHNAMES it will not enable it, this will not break incompatible
+# clients.
+#<module name="m_uhnames.so">
+
+#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
+# Uninvite module: Adds the /UNINVITE command which lets users remove
+# pending invites from channels without waiting for the user to join.
+#<module name="m_uninvite.so">
+
+#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
+# Userip module: Adds the /USERIP command
+#<module name="m_userip.so">
+
+#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
+# Vhost module: Adds the VHOST command which allows for adding virtual
+# hosts which are accessible using a username and password in the config.
+#<module name="m_vhost.so">
+#
+#-#-#-#-#-#-#-#-#-#-#- VHOST CONFIGURATION -#-#-#-#-#-#-#-#-#-#-#-#-#
+# #
+# user - Username for the vhost. #
+# #
+# pass - Password for the vhost. #
+# #
+# host - Vhost to set. #
+#
+#<vhost user="some_username" pass="some_password" host="some.host">
+
+#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
+# Watch module: Adds the WATCH command, which is used by clients to
+# maintain notify lists.
+#<module name="m_watch.so">
+#
+# Configuration tags:
+#
+#<watch maxentries="32">
+#
+# Sets the maximum number of entries on a user's watch list.
+
+#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
+# XLine database: Stores all *Lines (G/Z/K/R/any added by other modules)
+# in a file "xline.db" which can be re-loaded on restart. This is useful
+# for two reasons: it keeps bans so users may not evade them, and on
+# bigger networks, server connections will take less time as there will
+# be a lot less bans to apply - as most of them will already be there.
+#<module name="m_xline_db.so">
+
+#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
+# XMLSocket module: Adds support for connections using the shockwave
+# flash XMLSocket. Note that this does not work if the client you are
+# using has retarded ideas of the IRC protocol. Your client must still
+# send RFC-correct lines to the server, this module only changes the
+# line ending from newlines to null terminators.
+#
+#<module name="m_xmlsocket.so">
+
+#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
+# ZipLinks module: Adds support for zlib deflate on server to server
+# connections. Both ends of the connection must load this module.
+#
+#<module name="m_ziplink.so">
+#
+# To use this module, you must enable it as a transport type in your
+# <link> tags or <bind> tags using the transport name 'zip'.
+# See the documentation of <link> and <bind>, respectively.
+#
+
+#-#-#-#-#-#-#-#-#-#-#-#-#-#- BAN OPTIONS -#-#-#-#-#-#-#-#-#-#-#-#-#-#
+# #
+# The ban tags define nick masks, host masks and ip ranges which are #
+# banned from your server. All details in these tags are local to #
+# Your server. #
+# #
+# #
+# badip lines ban an ip range (same as a zline) #
+# #
+# ipmask - The ip range to ban (wildcards possible) #
+# CIDR is supported in the IP mask. #
+# reason - Reason to display when disconnected #
+# #
+# badnick lines ban a nick mask (same as a qline) #
+# #
+# nick - Nick mask to ban (wildcards possible) #
+# reason - Reason to display on /NICK #
+# #
+# badhost lines ban a user@host mask (same as a kline) #
+# #
+# host - ident@hostname (wildcards possible) #
+# If you specify an IP, CIDR is supported. #
+# reason - Reason to display on disconnection #
+# #
+# exception lines define a hostmask that is excempt from [kzg]lines #
+# #
+# host - ident@hostname (wildcards possible) #
+# If you specify an IP, CIDR is supported. #
+# reason - Reason, shown only in /stats e #
+# #
+
+<badip ipmask="69.69.69.69" reason="No porn here thanks.">
+
+<badnick nick="ChanServ" reason="Reserved For Services">
+<badnick nick="NickServ" reason="Reserved For Services">
+<badnick nick="OperServ" reason="Reserved For Services">
+<badnick nick="MemoServ" reason="Reserved For Services">
+
+<badhost host="*@hundredz.n.hundredz.o.1337.kiddies.com" reason="Too many 1337 kiddiots">
+<badhost host="*@localhost" reason="No irc from localhost!">
+<badhost host="*@172.32.0.0/16" reason="This subnet is bad.">
+
+<exception host="*@ircop.host.com" reason="Opers hostname">
+
+#-#-#-#-#-#-#-#-#-#-#- INSANE BAN OPTIONS -#-#-#-#-#-#-#-#-#-#-#-#-#-#
+# #
+# This optional tag allows you to specify how wide a gline, eline, #
+# kline, zline or qline can be before it is forbidden from being #
+# set. By setting hostmasks="yes", you can allow all G, K, E lines, #
+# no matter how many users the ban would cover. This is not #
+# recommended! By setting ipmasks="yes", you can allow all Z lines, #
+# no matter how many users these cover too. Needless to say we #
+# don't recommend you do this, or, set nickmasks="yes", which will #
+# allow any qline. #
+# #
+# The trigger value indicates how wide any mask will be before it is #
+# prevented from being set. The default value is 95.5% if this tag is #
+# not defined in your configuration file, meaning that if your #
+# network has 1000 users, a gline matching over 955 of them will be #
+# prevented from being added. #
+# #
+# Please note that remote servers (and services) are exempt from #
+# these restrictions and expected to enforce their own policies #
+# locally! #
+# #
+
+<insane hostmasks="no" ipmasks="no" nickmasks="no" trigger="95.5">
+
+#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#- YAWN -#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
+# #
+# You should already know what to do here :) #
+
+<die value="User error. Insert new user and press any key. (you didn't edit your config properly.)">
+
+
+#########################################################################
+# #
+# - InspIRCd Development Team - #
+# http://www.inspircd.org #
+# #
+#########################################################################