X-Git-Url: https://git.netwichtig.de/gitweb/?a=blobdiff_plain;f=docs%2Finspircd.conf.example;h=e6f5d8ea1b46bbb16b2c20e5b8e993106d7561e0;hb=861ca7f2fe22c95cbbdbe534ba6477cc5f8baaf3;hp=d1dee96ca94e8b5e6341cf77baa30a79115b0032;hpb=1b0e1acd50e67da9ab46919c3cbddbaa2165240f;p=user%2Fhenk%2Fcode%2Finspircd.git diff --git a/docs/inspircd.conf.example b/docs/inspircd.conf.example index d1dee96ca..e6f5d8ea1 100644 --- a/docs/inspircd.conf.example +++ b/docs/inspircd.conf.example @@ -37,7 +37,10 @@ # something new or different to this version and you SHOULD READ IT. # # # ######################################################################## - +# # +# Unalphabeticalise the modules list at your own risk # +# # +######################################################################## #-#-#-#-#-#-#-#-#-#-#-#- SERVER DESCRIPTION -#-#-#-#-#-#-#-#-#-#-#-#- @@ -76,8 +79,13 @@ # # # Enter the port and address bindings here. # # # -# bind address - specifies which the address which ports bind # -# port - opens an unused port # +# bind address - specifies which the address which ports bind. # +# may be a hostname or an IP address. Resolution of # +# hostnames may block for up to one second per IP # +# as port binding occurs before the socket engine is # +# initialized and therefore nonblocking DNS is not # +# available at this point until startup is complete. # +# port - The port number to bind to # # 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 # @@ -97,9 +105,14 @@ # # # Syntax is as follows: # # # -# # -# # -# # +# # +# # +# # +# If InspIRCd is built for IPV6, and you wish to accept IPV4 clients, # +# then you must specify your IPV6 clients in the following form: # +# ::ffff:1.2.3.4, where 1.2.3.4 is the IPV4 address to bind the # +# port on. If InspIRCd is built for IPV4 connections (this is the # +# default) then you do not need to prefix your addresses like this. # # # @@ -146,26 +159,31 @@ # # # Syntax is as follows: # # # -# # -# # -# # -# # -# # -# # -# # +# # +# # +# # +# # +# # +# # +# # +# # +# # +# IP masks may be specified in CIDR format for IPV4 and IPV6. # # # # You may optionally include timeout="x" on any allow line, which # # specifies the amount of time given before an unknown connection # # is closed if USER/NICK/PASS are not given. This value is in secs # # # -# You may also optionally include a flood="x" line which indicates # +# 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. The default is to # -# DISABLE this feature. 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. # +# before they are disconnected for excess flood. This feature can # +# not be disabled, however it can be set to exremely 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" # @@ -189,11 +207,22 @@ # 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). # +# # - + + #-#-#-#-#-#-#-#-#-#-#-#- CLASS CONFIGURATION -#-#-#-#-#-#-#-#-#-#-#- @@ -219,8 +248,8 @@ - - + + @@ -231,6 +260,9 @@ # 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 # @@ -255,7 +287,6 @@ - @@ -271,7 +302,8 @@ # are modules that allow for oper password encryption. # # # # host - host of client allowed to oper-up. # -# wildcards accepted # +# wildcards accepted, seperate multiple hosts with space # +# You may also specify CIDR ip addresses. # # # # type - specified above, defines the kind of operator # # # @@ -284,7 +316,7 @@ @@ -315,6 +347,22 @@ # 16 or 32 characters in length for a 64, 128 or 256 # # bit key, respectively. # # # +# hidden - When using m_spanningtree.so for linking. you may # +# set this to 'yes', and if you do, the IP address/ # +# hostname of this connection will NEVER be shown to # +# any opers on the network. In /STATS c its address # +# will show as *@, and during CONNECT and # +# inbound connections, its IP will show as # +# 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 (in CIDR form). # +# 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. # +# # # to u:line a server (give it extra privilages required for running # # services, Q, etc) you must include the tag as shown # # in the example below. You can have as many of these as you like. # @@ -323,11 +371,11 @@ # that server to operoverride modes. This should only be used for # # services and protected oper servers! # # # -# IMPORTANT NOTE: When specifying the ip address and/or host, the # -# server software will prioritize RESOLVED hostnames above ip # -# addresses, so for example if your target server resolves to a.b.com # -# you MUST put a.b.com into your link block, and NOT the IP address # -# of a.b.com. The system uses reverse resolution. # +# NOTE: If you have built InspIRCd with IPV6 support, and you want # +# to link to an IPV4 server, you must specify the IP address in the # +# form '::ffff:1.2.3.4' where 1.2.3.4 is the IP address of the target # +# server. If you have built InspIRCd for IPV4 (this is the default) # +# you should not prefix your IP addresses in this fashion. # # # # ____ _ _____ _ _ ____ _ _ _ # # | _ \ ___ __ _ __| | |_ _| |__ (_)___ | __ )(_) |_| | # @@ -344,6 +392,7 @@ @@ -351,6 +400,7 @@ @@ -363,14 +413,16 @@ # files. # # # - + #-#-#-#-#-#-#-#-#-#-#-#-#-#-# DNS SERVER -#-#-#-#-#-#-#-#-#-#-#-#-#-#-# # # -# Define your DNS server address here. InspIRCd has its own resolver # -# and you must define this otherwise nobody's host will resolve. The # -# timeout value is in seconds. # +# Define your DNS server address here. InspIRCd has its own resolver. # +# If you do not define this value, the first dns server from your # +# /etc/resolv.conf file is read. If no entries are found in this file # +# or the file cannot be opened, the default value '127.0.0.1' is used # +# instead. The timeout value is in seconds. # # # # ____ _ _____ _ _ ____ _ _ _ # # | _ \ ___ __ _ __| | |_ _| |__ (_)___ | __ )(_) |_| | # @@ -387,9 +439,22 @@ # 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, and you want # +# to use an IPV4 nameserver, you must specify the IP address in the # +# form '::ffff:1.2.3.4' where 1.2.3.4 is the IP address of the target # +# server. If you have built InspIRCd for IPV4 (this is the default) # +# you should not prefix your IP addresses in this fashion. # +# # +# IF YOUR RESOLV.CONF CONTAINS ONLY IPV4 ADDRESSES, AND YOU ARE USING # +# IPV6, YOU MUST DEFINE THE TAG, AND USE THE ::FFFF # +# PREFIX NOTATION. IF YOU DO NOT, HOSTS WILL *NOT* RESOLVE. # +# # +# An example of using IPV4 nameservers over IPV6 +# + #-#-#-#-#-#-#-#-#-#-#-#-#-#-# PID FILE -#-#-#-#-#-#-#-#-#-#-#-#-#-#-# # # # Define the path to the PID file here. The PID file can be used to # @@ -422,8 +487,8 @@ # 'registered' (e.g. after the initial USER/NICK/PASS on connection) # # so for example disabling NICK will not cripple your network. # # # -# # -# # + +# #-#-#-#-#-#-#-#-#-#-#-#-#-#-#- RTFM LINE -#-#-#-#-#-#-#-#-#-#-#-#-#-# @@ -444,6 +509,7 @@ # 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 # @@ -487,6 +553,66 @@ # oper-only 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 true, yes or 1, /MAP and /LINKS # +# will be flattened when shown to a non-oper. # +# # +# hideulines - When you are using m_spanningtree.so, and this # +# value is set to true, yes 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. # +# # +# tempdir - If defined, indicates a path where modules will be # +# temporarily copied before loading. If not defined, # +# defaults to /tmp. # +# # +# 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 et 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. # +# # @@ -537,252 +673,639 @@ # #-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-# -# Foobar module - does nothing -# +# Alias module: Allows you to define server-side command aliases +# +# +#-#-#-#-#-#-#-#-#-#-#- 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 jsut this use.# +# An alias tag requires the following values to be defined in it: # +# # +# text - The text to detect at the start of the line, # +# must be at the start of the line to trigger the # +# alias. Cant contain spaces, but case insensitive # +# replace - The text to replace 'text' with. Usually this # +# will be "PRIVMSG ServiceName" or similar. # +# requires - If you provide a value for 'requires' this means # +# the given nickname MUST be online for the alias # +# to successfully trigger. If they are not, then # +# 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. # +# # +# +# +# +# + +#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-# +# Antibear security module: Prevents 'bear.txt' based trojans from +# connecting to your network by sending them a numeric they can't handle. +# + +#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-# +# Antibottler module: Labels bottler leech bots +# + +#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-# +# Ban except module: Adds support for channel ban exceptions (+e) +# + +#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-# +# Block amsg module: Attempt to block all usage of /amsg and /ame +# +# +#-#-#-#-#-#-#-#-#-#-#- BLOCKAMSG CONFIGURATION -#-#-#-#-#-#-#-#-#-#-# +# # +# If you have the m_blockamsg.so module loaded, you can configure it # +# with the 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. # +# +# + +#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-# +# Block CAPS module: Blocking all-CAPS messages with cmode +P +# + +#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-# +# Block colour module: Blocking colour-coded messages with cmode +c +# + +#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-# +# Botmode module: Adds the user mode +B +# + +#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-# +# CBAN module: Lets you disallow channels from being used at runtime. +# + +#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-# +# Censor module: Adds the channel mode +G +# +# +#-#-#-#-#-#-#-#-#-#-#- CENSOR CONFIGURATION -#-#-#-#-#-#-#-#-#-#-#-# +# # +# Optional - If you specify to use the m_censor module, then specfiy # +# below the path to the censor.conf file. See also: # +# Censor file, see http://www.inspircd.org/wiki/Censor_Module # +# +# + +#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-# +# Channel filter module: Allows channel-op defined message +# filtering using simple string matches (channel mode +g) +# #-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-# # Chanprotect module: gives +q and +a channel modes # #-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-# -# Globops module: gives /GLOBOPS and usermode +g -# +# CHGHOST module: Adds the /CHGHOST command +# #-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-# -# Noinvite module: Gives channel mode +V -# +# CHGIDENT module: Adds the /CHGIDENT command +# #-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-# -# Oper MD5 module: Allows MD5 hashed oper passwords -# +# Cloaking module: Adds usermode +x and cloaking support +# +# +#-#-#-#-#-#-#-#-#-#-#- CLOAKING CONFIGURATION -#-#-#-#-#-#-#-#-#-#-#-# +# # +# Optional - If ypu 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 tag. # +# # +# # +# # +# Please note that the key values will accept any number, positive # +# or negative, and should be large numbers. Using small numbers such # +# as "7" or "1924" will seriously weaken the security of your cloak. # #-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-# -# Restricted channels module: Allows only opers to create channels -# +# Conn-Lusers: Shows the LUSERS output on connect +# + +#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-# +# Conn-Wait-for-Pong: Don't let a user connect until they PONG +# +# +#-#-#-#-#-#-#-#-#-#-#- WAITPONG CONFIGURATION -#-#-#-#-#-#-#-#-#-#-# +# # +# If you have the m_conn_waitpong.so module loaded, configure it with # +# the tag: # +# # +# sendsnotice - Whether to send a snotice on connect, like Unreal# +# killonbadreply - Whether to kill the user if they send the wrong # +# PONG reply. # +# +# + +#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-# +# Connection throttle module. Configuration: +# +# +#-#-#-#-#-#-#-#-#-#-#- CONTHROTTLE CONFIGURATION -#-#-#-#-#-#-#-#-#-#-# +# seconds, maxconns - Amount of connections per . +# 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. +# +# #-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-# # Deny Channels: Deny Channels from being used by users # +# +#-#-#-#-#-#-#-#-#-#-#- 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. # +# allowopers - If operators are allowed to override the deny. # +# reason - Reason given for the deny. # +# +# #-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-# -# Services support module: Adds several usermodes such as +R and +M -# +# Devoice Module: Let users devoice themselves. +# #-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-# -# Userip module: Adds the /USERIP command -# +# Filter module: Provides glob-based message filtering +# +#OR +# PCRE filter module: Filters messages using regular expressions +# +# +#-#-#-#-#-#-#-#-#-#-#- 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. # +# +# #-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-# -# Alias module: Allows you to define server-side command aliases -# +# Foobar module - does nothing - historical relic +# #-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-# -# CHGHOST module: Adds the /CHGHOST command -# +# Globops module: gives /GLOBOPS and usermode +g +# + +#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-# +# Global load module: Allows loading and unloading of modules network- +# wide (USE WITH EXTREME CAUTION!) +# #-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-# # HELPOP module: Provides the /HELPOP command # +# +#-#-#-#-#-#-#-#-#-#-#-#- HELPOP CONFIGURATION -#-#-#-#-#-#-#-#-#-#-# +# # +# Optional - If you specify to use the m_helpop.so module, then # +# specify below the path to the helpop.conf file. # +# +# #-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-# -# No kicks module: Adds the +Q channel mode -# +# Hostchange module: Allows a different style of cloaking +# +# +#-#-#-#-#-#-#-#-#-#-#- HOSTCHANGE CONFIGURATION -#-#-#-#-#-#-#-#-#-# +# # +# Optional - If you choose to use the m_hostchange.so module. # +# Config Help - See http://www.inspircd.org/wiki/Host_Changer_Module # +# +# +# +# +# #-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-# -# Oper MOTD module: Provides support for seperate message of the day -# on oper-up -# +# httpd module: Provides http server support for InspIRCd +# +# +#-#-#-#-#-#-#-#-#-#-#-#- 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: +# +# +# #-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-# -# Restrict message module: Allows users to only message opers -# +# http stats module: Provides basic stats pages over HTTP +# Required m_httpd.so +# +# +#-#-#-#-#-#-#-#-#-#-#-#- HTTPD STATS CONFIGURATION -#-#-#-#-#-#-#-#-#-# +# +# No extra configuration yet. +# #-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-# -# Sethost module: Adds the /SETHOST command -# +# Ident: Provides RFC 1413 ident lookup support +# +# +#-#-#-#-#-#-#-#-#-#-#-#- 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. # +# +# #-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-# -# Antibottler module: Labels bottler leech bots -# +# Invite except module: Adds support for channel invite exceptions (+I) +# #-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-# -# Watch module: Adds the WATCH command, which is used by clients to -# maintain notify lists. -# +# Join flood module: Adds support for join flood protection (+j) +# #-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-# -# Cloaking module: Adds usermode +x and cloaking support -# +# Anti-Auto-Rejoin: Adds support for prevention of auto-rejoin (+J) +# #-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-# -# Hostchange module: Allows a different style of cloaking -# +# Knock module: adds the /KNOCK command and +K channel mode +# #-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-# -# No nicks module: Adds the +N channel mode -# +# Msg flood module: Adds message/notice flood protection (+f) +# #-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-# -# Override module: Adds support for oper override -# +# 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 +# +# +#-#-#-#-#-#-#-#-#-#-#-#- 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 # +# +# #-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-# -# SAJOIN module: Adds the /SAJOIN command -# +# Nicklock module: Let opers change a user's nick and then stop that +# user from changing their nick again. /NICKLOCK and /NICKUNLOCK +# #-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-# -# Set Idle module: Adds a command for opers to change their -# idle time (mainly a toy) -# +# No ctcp module: Adds the channel mode +C to block CTCPs +# #-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-# -# Block colour module: Adds the +c channel mode -# +# Noinvite module: Gives channel mode +V +# #-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-# -# Conn-Lusers: Shows the LUSERS output on connect -# +# No kicks module: Adds the +Q channel mode +# #-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-# -# Ident: Provides RFC 1413 ident lookup support -# +# No nicks module: Adds the +N channel mode +# #-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-# # No Notice module: adds the channel mode +T # #-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-# -# Parking module: Adds parking support and /PARK and /UNPARK -# +# Oper channels mode: Adds the +O channel mode +# #-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-# -# SAMODE module: Adds the oper /SAMODE command -# +# Oper Join module: Forces opers to join a channel on oper-up +# +# +#-#-#-#-#-#-#-#-#-#-# OPERJOIN CONFIGURATION -#-#-#-#-#-#-#-#-#-#-# +# # +# If you are using the m_operjoin.so module, specify the channel here # +# +# #-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-# -# SETNAME module: Adds the /SETNAME command -# +# Oper MOTD module: Provides support for seperate message of the day +# on oper-up +# +# +#-#-#-#-#-#-#-#-#-#-# OPERMOTD CONFIGURATION -#-#-#-#-#-#-#-#-#-#-# +# # +# If you are using the m_opermotd.so module, specify the motd here # +# +# #-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-# -# Botmode module: Adds the user mode +B -# +# Override module: Adds support for oper override +# +# +#-#-#-#-#-#-#-#-#-#-# OVERRIDE CONFIGURATION -#-#-#-#-#-#-#-#-#-#-# +# # +# m_override.so is too complex it describe here, see the wiki: # +# http://www.inspircd.org/wiki/Oper_Override_Module # #-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-# -# Filter module: Provides glob-based message filtering -# +# 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 tag +# #-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-# -# Knock module: adds the /KNOCK command and +K channel mode -# +# Oper MD5 module: Allows MD5 hashed oper passwords +# #-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-# -# Oper channels mode: Adds the +O channel mode -# +# Oper SHA256 module: Allows SHA256 hashed oper passwords +# This module is in src/modules/extra +# + +#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-# +# Oper modes module: Allows you to specify modes to add/remove on oper +# Specify the modes as the 'modes' parameter of the tag +# + +#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-# +# Parking module: Adds parking support and /PARK and /UNPARK +# +# +#-#-#-#-#-#-#-#-#-#-#-# PARK CONFIGURATION -#-#-#-#-#-#-#-#-#-#-#-# +# # +# m_park.so is too complex it describe here, see the wiki: # +# http://www.inspircd.org/wiki/User_Parking_Module # + +#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-# +# 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 +# +# +#-#-#-#-#-#-#-#-#-#-#-#- 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 # +# +# #-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-# # Random Quote module: provides a random quote on connect # +# +#-#-#-#-#-#-#-#-#-#- RANDOMQUOTES CONFIGURATION -#-#-#-#-#-#-#-#-#-#-# +# # +# Optional - If you specify to use the m_randquote.so module, then # +# specify below the path to the randquotes.conf file. # +# +# #-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-# -# SANICK module: Allows opers to change user's nicks -# +# Redirect module: Adds channel redirection (mode +L) +# #-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-# -# Show Whois module: Adds the +W usermode which allows opers -# to see when they are whois'ed -# +# Remove module: Adds the /REMOVE command which is a peaceful +# alternative to /KICK +# #-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-# -# Strip colour module: Adds the channel mode +S -# +# Restricted channels module: Allows only opers to create channels +# #-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-# -# Censor module: Adds the channel mode +G -# +# Restrict message module: Allows users to only message opers +# #-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-# -# Nick locking module: Adds the oper-only /NICKLOCK command -# +# Provide /LIST throttling (to prevent flooding) and /LIST safety to +# prevent excess flood when the list is large. +# #-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-# -# Oper Join module: Forces opers to join a channel on oper-up -# +# SAJOIN module: Adds the /SAJOIN command +# #-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-# -# Redirect module: Adds channel redirection (mode +L) -# +# SAMODE module: Adds the oper /SAMODE command +# + +#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-# +# SANICK module: Allows opers to change user's nicks +# #-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-# # SAPART module: Adds the oper /SAPART command # #-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-# -# SILENCE module: Adds support for /SILENCE -# +# SAQUIT module: Adds the oper /SAQUIT command (abusable!!!) +# + +#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#- +# Secure list module: Prevent /LIST in the first minute of connection, +# crippling most spambots and trojan spreader bots. +# #-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-# -# Test command module: Does nothing significant -# +# Set Idle module: Adds a command for opers to change their +# idle time (mainly a toy) +# #-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-# -# Channel filter module: Allows channel-op defined message -# filtering using simple string matches (channel mode +g) -# +# 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. +# #-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-# -# No ctcp module: Adds the channel mode +C to block CTCPs -# +# 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. +# it cannot be used at the same time as m_services, above. +# #-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-# -# Oper levels module: Gives each oper a level and prevents -# actions being taken against higher level opers -# +# Sethost module: Adds the /SETHOST command +# #-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-# -# Remove module: Adds the /REMOVE command which is a peaceful -# alternative to /KICK -# +# Setident module: Adds the /SETIDENT command +# #-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-# -# SAQUIT module: Adds the oper /SAQUIT command (abusable!!!) -# +# SETNAME module: Adds the /SETNAME command +# #-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-# -# Timed bans module: Adds timed bans and the /TBAN command -# +# Show Whois module: Adds the +W usermode which allows opers +# to see when they are whois'ed +# #-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-# -# Oper modes module: Allows you to specify modes to add/remove on oper -# +# 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. (standard 'abusive' features +# of unrealircd, modulized here in InspIRCd). +# #-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-# -# SWHOIS module: Allows you to add arbitary lines to user WHOIS. -# +# SSL channel mode module: Adds support for SSL-only channels (+z). +# does not do anything useful without a working SSL module (see below) +# +#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-# +# 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). +# -#-#-#-#-#-#-#-#-#-#-#- FILTER CONFIGURATION -#-#-#-#-#-#-#-#-#-#-#-# +#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-# +# 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. +# +# +#-#-#-#-#-#-#-#-#-#-#- GNUTLS CONFIGURATION -#-#-#-#-#-#-#-#-#-#-#-# # # -# Optional - If you specify to use the m_filter.so module, then # -# specfiy below the path to the filter.conf file. # +# m_ssl_gnutls.so is too complex it describe here, see the wiki: # +# http://www.inspircd.org/wiki/GnuTLS_SSL_Module # -# +#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-# +# 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. +# +# +#-#-#-#-#-#-#-#-#-#-#- OPENSSL CONFIGURATION -#-#-#-#-#-#-#-#-#-#-#-# +# # +# m_ssl_openssl.so is too complex it describe here, see the wiki: # +# http://www.inspircd.org/wiki/OpenSSL_SSL_Module # + +#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-# +# Strip colour module: Adds the channel mode +S +# +#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-# +# SILENCE module: Adds support for /SILENCE +# -#-#-#-#-#-#-#-#-#-#-#-#- HELPOP CONFIGURATION -#-#-#-#-#-#-#-#-#-#-# +#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-# +# 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 +# +# +#-#-#-#-#-#-#-#-#-#-#- SQLAUTH CONFIGURATION -#-#-#-#-#-#-#-#-#-#-#-# # # -# Optional - If you specify to use the m_helpop.so module, then # -# specify below the path to the helpop.conf file. # +# 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 normalized set of SQL tables. You must copy the +# source for this module from the directory src/modules/extra +# +# +#-#-#-#-#-#-#-#-#-#-#- SQLLOG CONFIGURATION -#-#-#-#-#-#-#-#-#-#-#-# +# # +# dbid - Database ID to use (see m_sql) # +# # +# See also: http://www.inspircd.org/wiki/SQL_Logging_Module # +# # +# +#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-# +# 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 +# +# +#-#-#-#-#-#-#-#-#-#-#- SQLOPER CONFIGURATION -#-#-#-#-#-#-#-#-#-#-#-# +# # +# dbid - Database ID to use (see m_sql) # +# # +# See also: http://www.inspircd.org/wiki/SQL_Oper_Storage_Module # +# # +# -#-#-#-#-#-#-#-#-#-#- RANDOMQUOTES CONFIGURATION -#-#-#-#-#-#-#-#-#-#-# +#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-# +# SWHOIS module: Allows you to add arbitary lines to user WHOIS. +# + +#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-# +# Test command module: Does nothing significant. Read: pointless. +# + +#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-# +# Timed bans module: Adds timed bans and the /TBAN command +# + +#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-# +# Test line module: Adds the /TLINE command, used to test how many +# users a /GLINE or /ZLINE etc would match. +# + +#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-# +# Uninvite module: Adds the /UNINVITE command which lets users remove +# pending invites from channels without waiting for the user to join. +# + +#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-# +# Userip module: Adds the /USERIP command +# + +#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-# +# Vhost module: Adds the VHOST command which allows for adding virtual +# hosts which are accessible using a username and password in the config. +# +# +#-#-#-#-#-#-#-#-#-#-#- VHOST CONFIGURATION -#-#-#-#-#-#-#-#-#-#-#-#-# # # -# Optional - If you specify to use the m_randquotes.so module, then # -# specify below the path to the randquotes.conf file. # +# user - Username for the vhost. # +# # +# pass - Password for the vhost. # +# # +# host - Vhost to set. # +# +# -# +#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-# +# Watch module: Adds the WATCH command, which is used by clients to +# maintain notify lists. +# #-#-#-#-#-#-#-#-#-#-#-#-#-#- BAN OPTIONS -#-#-#-#-#-#-#-#-#-#-#-#-#-# # # @@ -794,6 +1317,7 @@ # 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) # @@ -804,11 +1328,13 @@ # 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 # # # @@ -821,39 +1347,10 @@ + -#-#-#-#-#-#-#-#-#-#-#- 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 jsut this use.# -# An alias tag requires the following values to be defined in it: # -# # -# text - The text to detect at the start of the line, # -# must be at the start of the line to trigger the # -# alias. May contain spaces, but case insensitive. # -# replace - The text to replace 'text' with. Usually this # -# will be "PRIVMSG ServiceName" or similar. # -# 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. # -# # - - - - - - #-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#- YAWN -#-#-#-#-#-#-#-#-#-#-#-#-#-#-# # # # You should already know what to do here :) #