]> git.netwichtig.de Git - user/henk/code/inspircd.git/blobdiff - conf/modules.conf.example
Don't query module version prior to init; fixes valgrind segfault
[user/henk/code/inspircd.git] / conf / modules.conf.example
index 209e405db0a621641774bc569905b58db3ba54f8..a1d9e1bebf7695dc2de4318d620f5436f4a7f758 100644 (file)
 #                    "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".                          #
+#                    commands with a newline (which can be written in #
+#                    the file literally, or encoded as &nl; or \n     #
+#                    depending on the config format setting).         #
 #                                                                     #
 # requires    -      If you provide a value for 'requires' this means #
 #                    the given nickname MUST be online for the alias  #
 #<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="BOTSERV" replace="PRIVMSG BotServ :$2-" requires="BotServ" uline="yes">
+#<alias text="HOSTSERV" replace="PRIVMSG HostServ :$2-" requires="HostServ" uline="yes">
+#<alias text="MEMOSERV" replace="PRIVMSG MemoServ :$2-" requires="MemoServ" uline="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">
+#<alias text="BS" replace="PRIVMSG BotServ :$2-" requires="BotServ" uline="yes">
+#<alias text="HS" replace="PRIVMSG HostServ :$2-" requires="HostServ" uline="yes">
+#<alias text="MS" replace="PRIVMSG MemoServ :$2-" requires="MemoServ" uline="yes">
 #
 # An example of using the format value to create an alias with two
 # different behaviours depending on the format of the parameters.
 # Channel filter module: Allows channel-op defined message
 # filtering using simple string matches (channel mode +g)
 #<module name="m_chanfilter.so">
+#
+# If hidemask is set to yes, the user will not be shown the mask when
+# his/her message is blocked.
+#<chanfilter hidemask="yes">
 
 #-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
 # Channel logging module: used to send snotice output to channels, to
 #<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
+       # noservices: With this set to yes, when a user joins a empty channel,
+       # the server will set +q on them. If set to no, it will only set +o
        # on them until they register the channel.
        noservices="no"
 
        qprefix="~"
 
        # aprefix: Prefix (symbol) to use for +a users.
-       aprefix="&"
+       aprefix="&amp;"
 
        # 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,
 # CHGHOST module: Adds the /CHGHOST command
 # This module is oper-only.
 # To use, CHGHOST must be in one of your oper class blocks.
+# NOTE: Services will not be able to set vhosts on users if this module
+# isn't loaded. If you're planning on running services, you probably
+# want to load this.
 #<module name="m_chghost.so">
 #
 #-#-#-#-#-#-#-#-# /CHGHOST - /SETHOST  CONFIGURATION #-#-#-#-#-#-#-#-#
 #
 #-#-#-#-#-#-#-#-#-#-#- 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.                                #
+# If you specify the m_cloaking.so module as above, you must define   #
+# cloak keys, and optionally a cloak prefix as shown below. The cloak #
+# keys must be shared across the network for correct cloaking.        #
+#                                                                     #
+# There are four methods of cloaking:                                 #
+#                                                                     #
+#   half           Cloak only the "unique" portion of a host; show    #
+#                  the last 2 parts of the domain, /16 subnet of IPv4 #
+#                  or /48 subnet of the IPv6 address.                 #
+#                                                                     #
+#   full           Cloak the users completely, using three slices for #
+#                  common CIDR bans (IPv4: /16, /24; IPv6: /48, /64)  #
+#                                                                     #
+# These methods use a single key that can be any length of text.      #
+# An optional prefix may be specified to mark cloaked hosts.          #
+#                                                                     #
+# The following methods are maintained for backwards compatibility;   #
+# they are slightly less secure, and always hide unresolved IPs       #
+#                                                                     #
+#   compat-host    InspIRCd 1.2-compatible host-based cloaking        #
+#   compat-ip      InspIRCd 1.2-compatible ip-always cloaking         #
+#                                                                     #
+# You must specify key1, key2, key3, key4 for the compat cloaking     #
+# modes; the values must be less than 0x80000000 and should be picked #
+# at random. Prefix is mandatory, will default to network name if not #
+# specified, and will always have a "-" appended.                     #
+#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
+#
+#<cloak mode="half"
+#       key="secret"
+#       prefix="net-">
 
 #-#-#-#-#-#-#-#-#-#-#-#- CLOSE MODULE #-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
 # Close module: Allows an oper to close all unregistered connections.
 # than the auditorium mode. Only channel ops may set the +D mode.
 #<module name="m_delayjoin.so">
 
+#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
+# Delay message module: Adds the channel mode +d which disallows a user
+# from talking in the channel unless they've been joined for X seconds.
+# Settable a la: /mode +d 30
+#<module name="m_delaymsg.so>
+
 #-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
 # Deny Channels: Deny Channels from being used by users
 #<module name="m_denychans.so"> 
 # For configuration options please see the wiki page for m_dnsbl at   #
 # http://wiki.inspircd.org/Modules/dnsbl                              #
 
+#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
+# Exempt Channel Operators Module: Provides support for allowing      #
+# channel operators to be exempt from some channel modes.  Supported  #
+# modes are blockcaps, noctcp, blockcolor, nickflood, flood, censor,  #
+# filter, regmoderated, nonick, nonotice, and stripcolor.             #
+#<module name="m_exemptchanops.so">                                   #
+#                                                                     #
+#-#-#-#-#-#-#-#-#-#-  EXEMPTCHANOPS CONFIGURATION  -#-#-#-#-#-#-#-#-#-#
+#  alwaysexempt      - Modes channel operators are always exempt from,
+#                      regardless of channel setting.
+#  neverexempt       - Modes channel operators are never exempt from,
+#                      regardless of channel setting.
+#<exemptchanops alwaysexempt="nickflood censor flood filter" neverexempt="regmoderated">
+
+
 #-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
 # Filter module: Provides message filtering, similar to SPAMFILTER.
 #<module name="m_filter.so">
 #                                                                     #
 #<include file="filter.conf">
 
-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
-# Foobar module: does nothing - historical relic
-#<module name="m_foobar.so">
-
 #-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
 # Gecosban: Implements extended ban r:, which stops anyone matching
 # a mask like +b r:*realname?here* from joining a channel.
 # 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.
+# This module requires GeoIP to be installed on your system,
+# use your package manager to find the appropriate packages
+# or check the InspIRCd wiki page for this module.
 #<module name="m_geoip.so">
 #
 #-#-#-#-#-#-#-#-#-#-#-#  GEOIP CONFIGURATION  #-#-#-#-#-#-#-#-#-#-#-#-#
 #
 #-#-#-#-#-#-#-#-#-#-#-#-  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.
+# If you choose to use the m_httpd.so module, then you will need to add
+# a <bind> tag with type "httpd", and load at least one of the other
+# m_httpd_* modules to provide pages to display.
 #
 
 #-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
 # opers are still able to see invisible users, and if an oper with +Q
 # deopers, they will become visible. 
 #
-# This module is oper-only.
+# This module is oper-only and seen by many to be quite abusive.
 #
 #<module name="m_invisible.so">
 
 #<module name="m_nonotice.so">
 
 #-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
-# Oper channels mode: Adds the +O channel mode
-# This module is oper-only.
-#<module name="m_operchans.so">
+# Network buisness join module
+# Allows an oper to join a channel using /OJOIN, giving them +Y on the
+# channel which makes them immune to kick/deop/etc.
+#<module name="m_ojoin.so">
+#
+#<ojoin prefix="!" notice="yes" op="yes">
+# Specify the prefix that +Y will grant here
+# Leave prefix empty if you do not wish +Y to grant a prefix
+# If notice is set to on, upon ojoin, the server will notice
+# the channel saying that the oper is joining on network business
+# If op is set to on, it will give them +o along with +Y
+
 
 #-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
-# Oper invex/extban module: Adds +beI type O, to ban, exempt, and invex
-# given oper type masks.
+# Oper channels mode: Adds the +O channel mode and +beI type O:<mask>
+# to ban, exempt, and invex given oper type masks.
 # e.g, /mode #channel +iI O:* is equivilant to chmode +O, but you
 # may also, e.g. /mode #channel +iI O:AdminTypeOnly to only allow admins.
 # +be work in a similar fashion.
-# This module is oper-only.
 #
-#<module name="m_operinvex.so">
+#<module name="m_operchans.so">
 
 #-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
 # Oper Join module: Auto-joins opers to a channel upon oper-up
 # This module is oper-only.
 #<module name="m_permchannels.so">
 #
+# If you like, m_permchannels can write a config file of permanent channels
+# whenever +P is set, unset, or the topic/modes on a +P channel is changed.
+# If you want to do this, set the filename below, and uncomment the include.
+#
+#<permchanneldb filename="conf/permchannels.conf">
+#<include file="permchannels.conf">
+#
 # You may also create channels on startup by using the <permchannels> block.
 #<permchannels channel="#opers" modes="is" topic="Opers only.">
 
 #-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
 # Registered users only channel creation
 # Allows only registered users and opers to create new channels.
+#
+# You probably *DO NOT* want to load this module on a public network.
+#
 #<module name="m_regonlycreate.so">
 
 #-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
 #<module name="m_remove.so">
 
 #-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
-# Restricted channels module: Allows only opers to create channels
+# Restricted channels module: Allows only opers to create channels.
+#
+# You probably *DO NOT* want to load this module on a public network.
+#
 #<module name="m_restrictchans.so">
 
 #-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
-# Restrict message module: Allows users to only message opers
+# Restrict message module: Allows users to only message opers.
+#
+# You probably *DO NOT* want to load this module on a public network.
+#
 #<module name="m_restrictmsg.so">
 
 #-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
 # RPC test module: A test of the RPC API
 #<module name="m_rpctest.so">
 
-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
-# 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
 # This module is oper-only.
 <securehost exception="*@*.searchirc.org">
 <securehost exception="*@*.netsplit.de">
 <securehost exception="*@echo940.server4you.de">
+<securehost exception="*@*.ircdriven.com">
 #                                                                     #
 # Define the following variable to change how long a user must wait   #
 # before issuing a LIST. If not defined, defaults to 60 seconds.      #
 # 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
 # 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.
-# 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.
+# or m_ssl_openssl.so must be loaded. This module also adds the 
+# "* <user> is using a secure connection" whois line, the ability for
+# opers to use SSL fingerprints to verify their identity and the ability
+# to force opers to use SSL connections in order to oper up.
+# It is highly recommended to load this module especially if
+# you use SSL on your network.
+# For how to use the oper features, please see the first example <oper> tag
+# in opers.conf.example.
 #
 #<module name="m_sslinfo.so">
 
 # 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.
-# This module is oper-only.
-#<module name="m_ssl_oper_cert.so">
-
 #-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
 # Strip colour module: Adds the channel mode +S
 #<module name="m_stripcolor.so">
 #<module name="m_swhois.so">
 
 #-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
-# Taxonomy module: Adds the /TAXONOMY command, used to view all
-#                  metadata attached to a user.
-# This module is oper-only.
-# To use, TAXONOMY must be in one of your oper class blocks.
-#<module name="m_taxonomy.so">
-
-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
-# Test command module: Does nothing significant. Read: pointless.
-#<module name="m_testcommand.so">
+# Test module: enable this to create a command useful in testing
+# flood control. To avoid accidental use on live networks, the server
+# name must contain ".test" to load the module
+#<module name="m_testnet.so">
 
 #-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
-# Timed bans module: Adds timed bans and the /TBAN command
-# This module is oper-only.
-# To use, TBAN must be in one of your oper class blocks.
+# Timed bans module: Adds timed channel bans and the /TBAN command
 #<module name="m_timedbans.so">
 
 #-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
 #
 #<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'.
+# To use this module, you must enable it as a ssl type in your
+# <link> tags or <bind> tags using the ssl name 'ziplinks'.
 # See the documentation of <link> and <bind>, respectively.
 #