# |_| \_\___|\__,_|\__,_| |_| |_| |_|_|___/ |____/|_|\__(_) #
# #
# 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).
-# You will almost always want to load this.
-#
-#<module name="m_spanningtree.so">
-
+# module. Since several features (like SSL server links) rely on #
+# other modules being loaded before m_spanningtree, the module itself #
+# is at the bottom of this file. DO NOT forget to load it. 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. #
+# #
#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
# MD5 Module - Allows other modules to generate MD5 hashes, usually for
# Chanprotect module: gives +q and +a channel modes
#<module name="m_chanprotect.so">
+<chanprotect
+ # noservices: With this set to no, when a user joins a empty channel,
+ # the server will set +q on them. If set to yes, it will only set +o
+ # on them until they register the channel.
+ noservices="no"
+
+ # qprefix: Prefix (symbol) to use for +q users.
+ qprefix="~"
+
+ # aprefix: Prefix (symbol) to use for +a users.
+ aprefix="&"
+
+ # deprotectself: If this value is set (true, yes or 1), it will allow
+ # +a and +q users to remove the +a and +q from themselves, otherwise,
+ # the status will have to be removed by services.
+ deprotectself="yes"
+
+ # 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.
+ deprotectothers="yes">
+
+
#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
# Check module: gives /check
# Check is useful for looking up information on channels,
# over whole ISPs/blocks of IPs, which may be needed to prevent attacks.
#
#<connectban threshold="10" duration="10m" ipv4cidr="32" ipv6cidr="128">
-# This allows for 10 quits in an hour with a 10 minute ban if that is exceeded.
+# This allows for 10 connections in an hour with a 10 minute ban if that is exceeded.
#
#<module name="m_connectban.so">
#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
# GeoIP module: Allows the server admin to ban users by country code.
+# This modules is in extras. Re-run configure with: ./configure --enable-extras=m_geoip.cpp
+# and run make install, then uncomment this module to enable it.
#<module name="m_geoip.so">
#
#-#-#-#-#-#-#-#-#-#-#-# GEOIP CONFIGURATION #-#-#-#-#-#-#-#-#-#-#-#-#
#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
# HIDECHANS module: Allows opers to hide their channels list from non-
# opers by setting user mode +I on themselves.
-# This module is oper-only.
# <module name="m_hidechans.so">
+#
+# HIDECHANS can optionally prevent opers from seeing channels on a +I
+# user, for more privacy if set to true.
+# This setting is not recommended for most mainstream networks.
+#<hidechans affectsopers="false">
#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
# HIDEOPER module: Allows opers to hide their oper status from non-
# 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
# 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="">
+#<ident timeout="5">
#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
# Invite except module: Adds support for channel invite exceptions (+I)
# 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 #
+# This modules is in extras. Re-run configure with: ./configure --enable-extras=m_ldapauth.cpp
+# and run make install, then uncomment this module to enable it. #
# #
#<module name="m_ldapauth.so"> #
# #
# need defining, otherwise they should be set similar to the examples #
# above. #
+#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
+# LDAP oper configuration module: Adds the ability to authenticate #
+# opers via LDAP. This is an extra module which must be enabled #
+# explicitly by symlinking it from modules/extra, and requires the #
+# OpenLDAP libs. Re-run configure with: ./configure --enable-extras=m_ldapoper.cpp
+# and run make install, then uncomment this module to enable it. #
+# #
+#<module name="m_ldapoper.so">
+# #
+# Configuration: #
+# #
+# <ldapoper baserdn="ou=People,dc=brainbox,dc=cc"
+# server="ldap://brainwave.brainbox.cc"
+# searchscope="subtree"
+# binddn="cn=Manager,dc=brainbox,dc=cc"
+# bindauth="mysecretpass">
+# #
+# Available configuration items are identical to the same items in #
+# m_ldapauth above. #
+
#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
# Lock server module: Adds /LOCKSERV and /UNLOCKSERV commands that is #
# used to temporarily close/open for new connections to the server. #
#
#<module name="m_lockserv.so">
+#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
+# Map hiding module: replaces /MAP and /LINKS output to users with a #
+# message to see a website, set by maphide="http://link.to/site" in #
+# the security tag, instead. #
+#<module name="m_maphide.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
+# This modules is in extras. Re-run configure with: ./configure --enable-extras=m_mssql.cpp
+# and run make install, then uncomment this module to enable it.
+#
#<module name="m_mssql.so">
#
#-#-#-#-#-#-#-#-#-#-#-#- SQL CONFIGURATION -#-#-#-#-#-#-#-#-#-#-#-#-#
# 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
+# This modules is in extras. Re-run configure with: ./configure --enable-extras=m_mysql.cpp
+# and run make install, then uncomment this module to enable it.
+#
#<module name="m_mysql.so">
#
#-#-#-#-#-#-#-#-#-#-#-#- SQL CONFIGURATION -#-#-#-#-#-#-#-#-#-#-#-#-#
# mask from changing their nick.
#<module name="m_nonicks.so">
+#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
+# No part message module: adds extban 'p' to block part messages from #
+# matching users. #
+#<module name="m_nopartmsg.so">
+
#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
# No Notice module: adds the channel mode +T
#<module name="m_nonotice.so">
# This module is oper-only.
#<module name="m_operchans.so">
-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
-# Oper flood module: Removes flood limits from users upon opering up
-# This module is oper-only.
-#<module name="m_operflood.so">
-
#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
# Oper invex/extban module: Adds +beI type O, to ban, exempt, and invex
# given oper type masks.
# This module is oper-only.
#<module name="m_operlog.so">
+#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
+# Oper prefixing module: Gives IRC operators a prefix status character
+# on all channels they are in.
+#
+#<module name="m_operprefix.so">
+#
+# You may additionally customise the prefix character.
+#<operprefix prefix="!">
+
#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
# Oper MOTD module: Provides support for seperate message of the day
# on oper-up
# #
# If you are using the m_opermotd.so module, specify the motd here #
# #
-#<opermotd file="oper.motd">
+# onoper - Should the message be sent on /OPER or only when #
+# /OPERMOTD is used. Use "yes" or "no". #
+# #
+#<opermotd file="oper.motd" onoper="yes">
#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
# Override module: Adds support for oper override
# 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
+# This modules is in extras. Re-run configure with: ./configure --enable-extras=m_pgsql.cpp
+# and run make install, then uncomment this module to enable it.
+#
#<module name="m_pgsql.so">
#
#-#-#-#-#-#-#-#-#-#-#-#- SQL CONFIGURATION -#-#-#-#-#-#-#-#-#-#-#-#-#
# 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">
# To use, SAQUIT must be in one of your oper class blocks.
#<module name="m_saquit.so">
+#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
+# SATOPIC module: Adds the oper /SATOPIC command
+# This module is oper-only.
+# To use, SATOPIC must be in one of your oper class blocks.
+#<module name="m_satopic.so">
+
#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
# SASL authentication module: Provides support for IRC Authentication
# Layer (aka: atheme SASL) via AUTHENTICATE.
# To use, SETIDLE must be in one of your oper class blocks.
#<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!!
-# *** This module DOES NOT support Atheme services, please use ***
-# *** m_services_account if you are planning on using Atheme. ***
-#<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.
#
+# At the same time, this offers +r for users and channels to mark them
+# as identified seperately from the idea of a master account, which
+# can be useful for services which are heavily nick-as-account centric.
+#
+# This replaces m_services from 1.1 and earlier.
+#
# Also of note is that this module implements two extbans:
# +b R: (stop matching account names from joining)
# +b M: (stop matching account names from speaking)
#
-# 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">
#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
# to see when they are whois'ed (can be annoying).
# This module is oper-only.
#<module name="m_showwhois.so">
+#
+# If you wish, you may also let users set this mode. Only opers with the
+# users/auspex priv will see real hosts of people, though. This setting
+# is not reloadable via /rehash, and will require /reloadmodule, as
+# it directly affects the mode object itself.
+#<showwhois opersonly="yes"
+#
+# You may also set whether or not users should recieve whois notices, should
+# they be /whois'd by an oper.
+# showfromopers="yes">
#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
# Shun module: Provides the /shun command, which stops a user executing
# 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.
+# This modules is in extras. Re-run configure with: ./configure --enable-extras=m_sslinfo.cpp
+# and run make install, then uncomment this module to enable it.
+#
#<module name="m_sslinfo.so">
#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
# 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 #
+# This modules is in extras. Re-run configure with: ./configure --enable-extras=m_aqlite.cpp
+# and run make install, then uncomment this module to enable it. #
+#
#<module name="m_sqlite3.so">
#
#-#-#-#-#-#-#-#-#-#-#-#- SQL CONFIGURATION -#-#-#-#-#-#-#-#-#-#-#-#-#
# 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
+# This modules is in extras. Re-run configure with: ./configure --enable-extras=m_sqlutils.cpp
+# and run make install, then uncomment this module to enable it.
+#
#<module name="m_sqlutils.so">
#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
# 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.
+# This modules is in extras. Re-run configure with: ./configure --enable-extras=m_sqlauth.cpp
+# and run make install, then uncomment this module to enable it.
+#
#<module name="m_sqlauth.so">
#
#-#-#-#-#-#-#-#-#-#-#- SQLAUTH CONFIGURATION -#-#-#-#-#-#-#-#-#-#-#-#
# 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
+# This modules is in extras. Re-run configure with: ./configure --enable-extras=m_sqllog.cpp
+# and run make install, then uncomment this module to enable it.
+#
#<module name="m_sqllog.so">
#
#-#-#-#-#-#-#-#-#-#-#- SQLLOG CONFIGURATION -#-#-#-#-#-#-#-#-#-#-#-#
# 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.
+# This modules is in extras. Re-run configure with: ./configure --enable-extras=m_sqloper.cpp
+# and run make install, then uncomment this module to enable it.
+#
#<module name="m_sqloper.so">
#
#-#-#-#-#-#-#-#-#-#-#- SQLOPER CONFIGURATION -#-#-#-#-#-#-#-#-#-#-#-#
#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
# ZipLinks module: Adds support for zlib deflate on server to server
# connections. Both ends of the connection must load this module.
+# This modules is in extras. Re-run configure with: ./configure --enable-extras=m_ziplink.cpp
+# and run make install, then uncomment this module to enable it.
#
#<module name="m_ziplink.so">
#
# <link> tags or <bind> tags using the transport name 'zip'.
# See the documentation of <link> and <bind>, respectively.
#
+
+
+#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
+# ____ _ _____ _ _ ____ _ _ _ #
+# | _ \ ___ __ _ __| | |_ _| |__ (_)___ | __ )(_) |_| | #
+# | |_) / _ \/ _` |/ _` | | | | '_ \| / __| | _ \| | __| | #
+# | _ < __/ (_| | (_| | | | | | | | \__ \ | |_) | | |_|_| #
+# |_| \_\___|\__,_|\__,_| |_| |_| |_|_|___/ |____/|_|\__(_) #
+# #
+# To link servers to InspIRCd, you MUST load the m_spanningtree #
+# module. Since several features (like SSL server links) rely on #
+# other modules being loaded before m_spanningtree, the module itself #
+# is at the bottom of this file. DO NOT forget to load it. 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).
+# You will almost always want to load this.
+#
+#<module name="m_spanningtree.so">
+
+