-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
-# 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.
-#
-# Old style:
-# <cgihost type="pass" mask="www.mysite.com"> # Get IP from PASS
-# <cgihost type="ident" mask="otherbox.mysite.com"> # Get IP from ident
-# <cgihost type="passfirst" mask="www.mysite.com"> # See the docs
-# New style:
-# <cgihost type="webirc" pass="foobar"
-# mask="somebox.mysite.com"> # Get IP from WEBIRC
-#
-# 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">