diff options
-rw-r--r-- | conf/modules.conf.example | 22 | ||||
-rw-r--r-- | conf/temp/temp.conf | 2579 | ||||
-rw-r--r-- | src/modules/m_services.cpp | 245 | ||||
-rw-r--r-- | win/inspircdVC80.vcproj | 20 | ||||
-rw-r--r-- | win/inspircdVC90.vcproj | 20 |
5 files changed, 6 insertions, 2880 deletions
diff --git a/conf/modules.conf.example b/conf/modules.conf.example index 3cd8508fd..ce0149372 100644 --- a/conf/modules.conf.example +++ b/conf/modules.conf.example @@ -1336,28 +1336,18 @@ #-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-# # 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"> #-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-# diff --git a/conf/temp/temp.conf b/conf/temp/temp.conf deleted file mode 100644 index cfa952aa8..000000000 --- a/conf/temp/temp.conf +++ /dev/null @@ -1,2579 +0,0 @@ -######################################################################## -# # -# ___ ___ ____ ____ _ # -# |_ _|_ __ ___ _ __|_ _| _ \ / ___|__| | # -# | || '_ \/ __| '_ \| || |_) | | / _` | # -# | || | | \__ \ |_) | || _ <| |__| (_| | # -# |___|_| |_|___/ .__/___|_| \_\\____\__,_| # -# |_| # -# ____ __ _ _ _ # -# / ___|___ _ __ / _(_) __ _ _ _ _ __ __ _| |_(_) ___ _ __ # -# | | / _ \| '_ \| |_| |/ _` | | | | '__/ _` | __| |/ _ \| '_ \ # -# | |__| (_) | | | | _| | (_| | |_| | | | (_| | |_| | (_) | | | | # -# \____\___/|_| |_|_| |_|\__, |\__,_|_| \__,_|\__|_|\___/|_| |_| # -# |___/ # -# # -##################################||#################################### - #||# -##################################||#################################### -# # -# This is an example of the config file for InspIRCd. # -# Change the options to suit your network. # -# # -# This is a test.conf with semi-sane defaults if you just want # -# to get a network up and running as quickly as possible or if # -# you want a quick testnet for something. # -# It is not extremely secure, but we *STRONGLY* recommend # -# using inspircd.conf.example and all the other sub-confs # -# instead. # -# # -# This .conf in it's current form is not supported. # -# Please do not ask for help if something isn't working # -# as you expected. # -# For a supported .conf, please use inspircd.conf.example # -# # -# $Id: inspircd.conf.example 10648 2008-10-16 18:07:27Z brain $ -# # -# ____ _ _____ _ _ ____ _ _ _ # -# | _ \ ___ __ _ __| | |_ _| |__ (_)___ | __ )(_) |_| | # -# | |_) / _ \/ _` |/ _` | | | | '_ \| / __| | _ \| | __| | # -# | _ < __/ (_| | (_| | | | | | | | \__ \ | |_) | | |_|_| # -# |_| \_\___|\__,_|\__,_| |_| |_| |_|_|___/ |____/|_|\__(_) # -# # -# Lines prefixed with READ THIS BIT, as shown above, are IMPORTANT # -# lines, and you REALLY SHOULD READ THEM. Yes, THIS MEANS YOU. Even # -# if you've configured InspIRCd before, these probably indicate # -# something new or different to this version and you SHOULD READ IT. # -# # -######################################################################## -# # -# Unalphabeticalise the modules list at your own risk # -# # -######################################################################## - -#-#-#-#-#-#-#-#-#-# INCLUDE CONFIGURATION #-#-#-#-#-#-#-#-#-#-#-#-#-# -# # -# This optional tag allows you to include another config file # -# allowing you to keep your configuration tidy. The configuration # -# file you include will be treated as part of the configuration file # -# which includes it, in simple terms the inclusion is transparent. # -# # -# All paths to config files are relative to the directory of the main # -# config file inspircd.conf, unless the filename starts with a forward# -# slash (/) in which case it is treated as an absolute path. # -# # -# You may also include an executable file, in which case if you do so # -# the output of the executable on the standard output will be added # -# to your config at the point of the include tag. # -# # -# Syntax is as follows: # -#<include file="file.conf"> # -#<include executable="/path/to/executable parameters"> # -# # -# Executable Include Example: # -#<include executable="/usr/bin/wget -O - http://mynet.net/inspircd.conf"> -# # - - -#-#-#-#-#-#-#-#-#-#-#-#- SERVER DESCRIPTION -#-#-#-#-#-#-#-#-#-#-#-#- -# # -# Here is where you enter the information about your server. # -# # - -<server - # name: Hostname of your server. Does not need to be valid. - name="test.yournet.net" - - # description: Server description. Spaces are allowed. - description="Test IRC Server" - - # network: Network name given on connect to clients. - # Should be the same on all servers on the network and - # not contain spaces. - network="TestNet"> - - -#-#-#-#-#-#-#-#-#-#-#-#- ADMIN INFORMATION -#-#-#-#-#-#-#-#-#-#-#-# -# # -# Describes the Server Administrator's real name (optionally), # -# nick, and email address. # -# # - -<admin - # name: Real Name - name="NetAdmin" - - # nick: Nickname (preferably what you use on the network) - nick="NetAdmin" - - # email: email address. Does not have to be valid - # but should be for the users to be able to contact you. - email="admin@localhost"> - - -#-#-#-#-#-#-#-#-#-#-#-#- PORT CONFIGURATION -#-#-#-#-#-#-#-#-#-#-#- -# # -# Enter the port and address bindings here. # -# # -# # -# ____ _ _____ _ _ ____ _ _ _ # -# | _ \ ___ __ _ __| | |_ _| |__ (_)___ | __ )(_) |_| | # -# | |_) / _ \/ _` |/ _` | | | | '_ \| / __| | _ \| | __| | # -# | _ < __/ (_| | (_| | | | | | | | \__ \ | |_) | | |_|_| # -# |_| \_\___|\__,_|\__,_| |_| |_| |_|_|___/ |____/|_|\__(_) # -# # -# If you want to link servers to InspIRCd you must load the # -# m_spanningtree.so module! Please see the modules list below for # -# information on how to load this module! If you do not load this # -# module, server ports will NOT be bound! # -# # -# PLEASE NOTE: If you have build InspIRCd with IPv6 support, you MUST # -# specify a bind address if you want the IRCd to bind to a IPv4 IP. # - -#<bind - # address: IP address to bind to if the box that you are hosting - # on has more than one IP, else the ircd will try to bind to all - # IP's on the box if this is not defined - #address="" - - # port: Port for users and/or servers to be able to connect to. - # you can select multiple ports by separating them - # with a - character like the example below. - #port="6697" - - # type: Type of bind block this is. It can either be clients or - # servers. Whichever you select will be the only type able to connect - # to this bind section. - #type="clients" - - # ssl: If you want this bind section to use SSL, define either - # gnutls or openssl here. The appropriate SSL modules must be loaded - # for ssl to work. If you do not want this bind section to support ssl, - # just remove this option. - #ssl="gnutls"> - -<bind address="" port="6660-6669" type="clients"> - -# When linking servers, the openssl and gnutls transports are largely -# link-compatible and can be used alongside each other or either/or -# on each end of the link without any significant issues. -# Transports can only be used on server blocks. -# Supported Transports are: "zip", "openssl" and "gnutls". -# You must load m_ziplinks module for zip, m_ssl_openssl for openssl -# or m_ssl_gnutls for gnutls. - -#<bind address="" port="7000,7001" type="servers"> -#<bind address="1.2.3.4" port="7005" type="servers" transport="openssl"> - - -#-#-#-#-#-#-#-#-#-#- DIE/RESTART CONFIGURATION -#-#-#-#-#-#-#-#-#-#- -# # -# You can configure the passwords here which you wish to use for # -# the die and restart commands. Only trusted IRCop's who will # -# need this ability should know the die and restart password. # -# # - -<power - - # diepass: Password for opers to use if they need to shutdown (die) - # a server. - diepass="z0mg-die" - - # restartpass: Password for opers to use if they need to restart - # a server. - restartpass="restart-n0w"> - - -#-#-#-#-#-#-#-#-#-#- CONNECTIONS CONFIGURATION -#-#-#-#-#-#-#-#-#-#-# -# # -# This is where you can configure which connections are allowed # -# and denied access onto your server. The password is optional. # -# You may have as many of these as you require. To allow/deny all # -# connections, use a '*' or 0.0.0.0/0. # -# # - -<connect - # allow: What IP addresses/hosts to allow for this block. - allow="*" - - # maxchans: Maximum number of channels a user in this class - # be in at one time. This overrides every other maxchans setting. - #maxchans="30" - - # timeout: How long (in seconds) the server will wait before - # disconnecting a user if they do not do anything on connect. - # (Note, this is a client-side thing, if the client does not - # send /nick, /user or /pass) - timeout="60" - - # flood: After x lines (flood) in x seconds (see threshold) - # the user is disconnected for flooding. - flood="20" - - # threshold: In how many seconds can a user flood x lines (see flood) - # before they are disconnected for excess flood. - threshold="1" - - # pingfreq: How often the server tries to ping connecting clients/servers. - pingfreq="120" - - # sendq: Amount of data that the server is allowed to send to the user - # before they are dropped. - sendq="262144" - - # recvq: amount of data allowed in a clients queue before they are dropped. - recvq="8192" - - # localmax: Maximum local connections per IP. - localmax="3" - - # globalmax: Maximum global (network-wide) connections per IP. - globalmax="3" - - # limit: How many users are allowed in this class - limit="5000" - - # modes: Usermodes that are set on users in this block on connect. - # Enabling this option requires that the m_conn_umodes module be loaded. - # This entry is highly recommended to use for/with IP Cloaking/masking. - modes="+x"> - -<connect - # deny: Will not let people connect if they have specified host/IP. - deny="69.254.*"> -<connect deny="3ffe::0/32"> - -#-#-#-#-#-#-#-#-#-#-#-#- CIDR CONFIGURATION -#-#-#-#-#-#-#-#-#-#-#- -# # -# CIDR configuration allows detection of clones and applying of # -# throttle limits across a CIDR range. (A CIDR range is a group of # -# IPs, for example, the CIDR range 192.168.1.0-192.168.1.255 may be # -# represented as 192.168.1.0/24). This means that abuse across an ISP # -# is detected and curtailed much easier. # -# # - -<cidr - # ipv4clone: specifies how many bits of an IP address should be - # looked at for clones. The default only looks for clones on a - # single IP address of a user. You do not want to set this - # extremely low. (Values are 0-32). - ipv4clone="32" - - # ipv6clone: specifies how many bits of an IP address should be - # looked at for clones. The default only looks for clones on a - # single IP address of a user. You do not want to set this - # extremely low. (Values are 0-128). - ipv6clone="128"> - -#-#-#-#-#-#-#-#-#-#-#-#- CLASS CONFIGURATION -#-#-#-#-#-#-#-#-#-#-#- -# # -# Classes are a group of commands which are grouped together and # -# given a unique name. They're used to define which commands # -# are available to certain types of Operators. # -# # -# # -# Note: It is possible to make a class which covers all available # -# commands. To do this, specify commands="*". This is not really # -# recommended, as it negates the whole purpose of the class system, # -# however it is provided for fast configuration (e.g. in test nets) # -# # - -<class - name="Shutdown" - - # commands: oper commands that users of this class can run. - commands="DIE RESTART REHASH LOADMODULE UNLOADMODULE RELOAD" - - # usermodes: Oper-only usermodes that opers with this class can use. - usermodes="*" - - # chanmodes: Oper-only channel modes that opers with this class can use. - chanmodes="*"> - -<class name="ServerLink" commands="CONNECT SQUIT RCONNECT MKPASSWD MKSHA256 ALLTIME SAJOIN SAMODE SANICK SAPART SAQUIT" usermodes="*" chanmodes="*"> -<class name="BanControl" commands="KILL GLINE KLINE ZLINE QLINE ELINE TBAN TLINE USERIPCBAN CHECK CLOSE CLONES GLOBOPS JUMPSERVER SHUN LOCKSERV UNLOCKSERV NICKLOCK NICKUNLOCK" usermodes="*" chanmodes="*"> -<class name="OperChat" commands="WALLOPS GLOBOPS SETIDLE SPYLIST SPYNAMES TRACE TAXONOMY" usermodes="*" chanmodes="*"> -<class name="HostCloak" commands="SETHOST SETIDENT SETNAME CHGHOST CHGIDENT CHGNAME SETIDLE SWHOIS" usermodes="*" chanmodes="*"> - - -#-#-#-#-#-#-#-#-#-#-#-#- OPERATOR COMPOSITION -#-#-#-#-#-#-#-#-#-#-# -# # -# This is where you specify which types of operators you have on # -# your server, as well as the commands they are allowed to use. # -# This works alongside with the classes specified above. # -# # - -<type - # name: Name of type. Used in actual olines below. - # Cannot contain spaces. If you would like a space, use - # the _ character instead and it will translate to a space on whois. - name="NetAdmin" - - # classes: classes (above blocks) that this type belongs to. - classes="OperChat BanControl HostCloak Shutdown ServerLink" - - # host: host oper gets on oper-up. This is optional. - host="netadmin.yournet.net" - - # modes: usermodes besides +o that are set on a oper of this type - # when they oper up. Used for snomasks and other things. - # Requires that m_opermodes.so be loaded. - modes="+s +cCqQ" - override="*"> - -<type name="GlobalOp" classes="OperChat BanControl HostCloak ServerLink" host="ircop.omega.org.za"> -<type name="Helper" classes="HostCloak" host="helper.omega.org.za"> - - -#-#-#-#-#-#-#-#-#-#-#- OPERATOR CONFIGURATION -#-#-#-#-#-#-#-#-#-#-# -# # -# Opers are defined here. This is a very important section. # -# Remember to only make operators out of trust worthy people. # -# # - -# oline with plain-text password -<oper - # name: oper login that is used to oper up (/oper name password). - # Remember: This is case sensitive - name="admin" - - # password: case-sensitive, unhashed...yea...self-explanatory. - password="s3cret" - - # host: What hostnames/IP's are allowed to oper up with this oline. - # Multiple options can be separated by spaces and CIDR's are allowed. - host="*@*" - - # ** ADVANCED ** This option is disabled by default. - # fingerprint: When using the m_oper_ssl_cert module, you may specify - # a key fingerprint here. This can be obtained by using the - # /fingerprint command while the module is loaded. This enhances - # security by verifying that the person opering up has the matching - # key/certificate combination. This enhances security a great deal. - # If m_oper_ssl and/or m_ssl_gnutls/m_ssl_openssl aren't loaded, - # this option will be ignored. - #fingerprint="67:CB:9D:C0:13:24:8A:82:9B:B2:17:1E:D1:1B:EC:D4" - - # type: What oper type this oline is. See the block above for list - # of types. NOTE: This is case-sensitive as well. - type="NetAdmin"> - -# oline with hashed password. It is highly recommended to use hashed passwords. -#<oper - # name: oper login that is used to oper up (/oper name password). - # Remember: This is case sensitive - #name="Brain" - - # hash: what hash this password is hashed with. requires the module - # for selected hash (m_md5.so, m_sha256.so or m_ripemd160) be - # loaded and the oper password hashing module (m_password_hash.so) - # loaded. Options here are: "md5", "sha256" and "ripemd160". - #hash="sha256" - - # password: a hash of your password (see above option) hashed - # with /mkpasswd *hash* *password* . See m_password_hash in modules.conf - # for more information about password hashing. - #password="1ec1c26b50d5d3c58d9583181af8076655fe00756bf7285940ba3670f99fcba0" - - # host: What hostnames/IP's are allowed to oper up with this oline. - # Multiple options can be separated by spaces and CIDR's are allowed. - #host="ident@dialup15.isp.com *@localhost *@server.com *@3ffe::0/16" - - # type: What oper type this oline is. See the block above for list - # of types. NOTE: This is case-sensitive as well. - #type="NetAdmin"> - - -#-#-#-#-#-#-#-#-#-#-#- SERVER LINK CONFIGURATION -#-#-#-#-#-#-#-#-#-# -# # -# Defines which servers can link to this one, and which servers this # -# server may create outbound links to. # -# # -# If you would like more detailed options, but a slightly more # -# painful configuration, please see inspircd.conf.example.old # -# # -# ____ _ _____ _ _ ____ _ _ _ # -# | _ \ ___ __ _ __| | |_ _| |__ (_)___ | __ )(_) |_| | # -# | |_) / _ \/ _` |/ _` | | | | '_ \| / __| | _ \| | __| | # -# | _ < __/ (_| | (_| | | | | | | | \__ \ | |_) | | |_|_| # -# |_| \_\___|\__,_|\__,_| |_| |_| |_|_|___/ |____/|_|\__(_) # -# # -# If you want to link servers to InspIRCd you must load the # -# m_spanningtree.so module! Please see the modules list below for # -# information on how to load this module! If you do not load this # -# module, server links will NOT work! # -# # -# Also, if you define any transports, you must load the modules for # -# these transports BEFORE you load m_spanningtree, e.g. place them # -# above it in the configuration file. Currently this means the three # -# modules m_ssl_gnutls, m_ziplinks and m_ssl_openssl, depending on # -# which you choose to use. # -# # - -#<link name="hub.penguin.org" - - # ipaddr: The IP address of the remote server. - # Can also be a hostname, but hostname must resolve. - #ipaddr="penguin.box.com" - - # port: the port to connect to this server on - #port="7000" - - # allowmask: Range of IP addresses to allow for this link. - # Can be a CIDR (see example). - #allowmask="69.58.44.0/24" - - # autoconnect: Time to wait to attempt to autoconnect - # to remote server (in seconds). - #autoconnect="300" - - # failover: If defined, if this link fails, - # what is the next link that is tried. - #failover="hub.other.net" - - # timeout: If defined, this option defines how long the server - # will wait to consider the connect attempt failed and try the - # failover (see above). - #timeout="15" - - # transport: If defined, this states extra modules that can be - # used in the connection. Options are: "openssl" and "gnutls" - # for encryption (they are compatible with each other) and - # "zip" for compression. You must use the same (or a compa- - # tible) transport on both sides of the link. - #transport="gnutls" - - # bind: Local IP address to bind to. - #bind="1.2.3.4" - - # statshidden: defines if IP is shown to opers when - # /stats c is invoked. - #statshidden="no" - - # hidden: If this is set to yes, this server and it's "child" - # servers will not be shown when users do a /map or /links - #hidden="no" - - # passwords: the passwords we send and recieve. - # The remote server will have these passwords reversed. - #sendpass="outgoing!password" - #recvpass="incoming!password"> - -# A duplicate of the first link block without comments -# if you like copying & pasting. -#<link name="hub.penguin.org" - #ipaddr="penguin.box.com" - #port="7000" - #allowmask="69.58.44.0/24" - #autoconnect="300" - #failover="hub.other.net" - #timeout="15" - #transport="gnutls" - #bind="1.2.3.4" - #statshidden="no" - #hidden="no" - #sendpass="outgoing!password" - #recvpass="incoming!password"> - -# Link block for services. Options are the same as for the first -# link block (depending on what your services package supports). -#<link name="services.antarctic.com" - #ipaddr="localhost" - #port="7000" - #allowmask="127.0.0.0/8" - #sendpass="penguins" - #recvpass="polarbears"> - - -#-#-#-#-#-#-#-#-#-#-#-#- ULINES CONFIGURATION #-#-#-#-#-#-#-#-#-#-#-#-# -# This tag defines a ulined server. A U-Lined server has special # -# permissions, and should be used with caution. Services servers are # -# usually u-lined in this manner. # -# # -# The 'silent' value, if set to yes, indicates that this server should# -# not generate quit and connect notices, which can cut down on noise # -# to opers on the network. # -# # -#<uline server="services.antarctic.com" silent="yes"> - -#-#-#-#-#-#-#-#-#-#- MISCELLANEOUS CONFIGURATION -#-#-#-#-#-#-#-#-#-# -# # - -<files - # motd: Path to your motd file. Path is relative to the conf directory. - motd="inspircd.motd.example" - - # rules: Path to your rules file. Path is relative to the conf directory. - rules="inspircd.rules.example"> - -#-#-#-#-#-#-#-#-#-#-#-# MAXIMUM CHANNELS -#-#-#-#-#-#-#-#-#-#-#-#-#-#-# -# # - -<channels - # users: Maximum number of channels a user can be in at once. - users="20" - - # opers: Maximum number of channels a oper can be in at once. - opers="60"> - -#-#-#-#-#-#-#-#-#-#-#-#-#-#-# DNS SERVER -#-#-#-#-#-#-#-#-#-#-#-#-#-#-# -# If these values are not defined, InspIRCd uses the default DNS resolver -# of your system. - -#<dns - # server: DNS server to use to attempt to resolve IP's to hostnames. - #server="127.0.0.1" - - # timeout: seconds to wait to try to resolve DNS/hostname. - #timeout="5"> - -# An example of using an IPv6 nameserver -#<dns server="::1" timeout="5"> - -#-#-#-#-#-#-#-#-#-#-#-#-#-#-# PID FILE -#-#-#-#-#-#-#-#-#-#-#-#-#-#-# -# # -# Define the path to the PID file here. The PID file can be used to # -# rehash the ircd from the shell or to terminate the ircd from the # -# shell using shell scripts, perl scripts, etc... and to monitor the # -# ircd's state via cron jobs. If this is a relative path, it will be # -# relative to the configuration directory, and if it is not defined, # -# the default of 'inspircd.pid' is used. # -# # - -#<pid file="/path/to/inspircd.pid"> - -#-#-#-#-#-#-#-#-#-#-#-#-#- BANLIST LIMITS #-#-#-#-#-#-#-#-#-#-#-#-#-#-# -# # -# Use these tags to customise the ban limits on a per channel basis. # -# The tags are read from top to bottom, and any tag found which # -# matches the channels name applies the banlimit to that channel. # -# It is advisable to put an entry with the channel as '*' at the # -# bottom of the list. If none are specified or no maxbans tag is # -# matched, the banlist size defaults to 64 entries. # -# # - -<banlist chan="*" limit="69"> - -#-#-#-#-#-#-#-#-#-#-#- DISABLED FEATURES -#-#-#-#-#-#-#-#-#-#-#-#-#-# -# # -# This tag is optional, and specifies one or more features which are # -# not available to non-operators. # -# # -# For example you may wish to disable NICK and prevent non-opers from # -# changing their nicknames. # -# Note that any disabled commands take effect only after the user has # -# 'registered' (e.g. after the initial USER/NICK/PASS on connection) # -# so for example disabling NICK will not cripple your network. # -# # -# `fakenonexistant' will make the ircd pretend that nonexistant # -# commands simply don't exist to non-opers ("no such command"). # -# # -#<disabled commands="TOPIC MODE" usermodes="" chanmodes="" fakenonexistant="yes"> - - -#-#-#-#-#-#-#-#-#-#-#-#-#- SERVER OPTIONS -#-#-#-#-#-#-#-#-#-#-#-#-# -# # -# Settings to define which features are usable on your server. # -# # - -<options - # prefixquit: What (if anything) a users' quit message - # should be prefixed with. - prefixquit="Quit: " - - # suffixquit: What (if anything) a users' quit message - # should be suffixed with. - suffixquit="" - - # prefixpart: What (if anything) a users' part message - # should be prefixed with. - prefixpart="\"" - - # suffixpart: What (if anything) a users' part message - # should be suffixed with. - suffixpart="\"" - - # 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. - # The default setting is to not enable this feature, so that - # only +q may remove +a, and nothing but services may remove +q. - deprotectothers="no" - - # syntaxhints: If enabled, if a user fails to send the correct parameters - # for a command, the ircd will give back soome help text of what - # the correct parameters are - syntaxhints="yes" - - # cyclehosts: If enabled, when a user gets a host set, it will cycle - # them in all their channels. If not, it will simply change their host - # without cycling them. - cyclehosts="no" - - # ircumsgprefix: Use undernet-style message prefixing for NOTICE and - # PRIVMSG. If enabled, it will add users' prefix to the line, if not, - # it will just message the user. - ircumsgprefix="no" - - # announcets: If set to yes, when the TS on a channel changes, all users - # in channel will be sent a NOTICE about it. - announcets="yes" - - # hostintopic: If enabled, channels will show the host of the topicsetter - # in the topic. - hostintopic="no" - - # pingwarning: If a server does not respond to a ping within x seconds, - # it will send a notice to opers with snomask +l informing that the server - # is about to ping timeout. - pingwarning="15" - - # serverpingfreq: How often pings are sent between servers (in seconds). - serverpingfreq="60" - - # allowhalfop: Allows the use of +h channelmode (halfops). - allowhalfop="yes" - - # defaultmodes: What modes are set on a empty channel when a user - # joins it and it is unregistered. This is similar to Asuka's - # autochanmodes. - defaultmodes="nt" - - # moronbanner: This is the text that is sent to a user when they are - # banned from the server. - moronbanner="You're banned! Email haha@abuse.com with the ERROR line below for help." - - # exemptchanops: Defines what channel modes channel operators are - # exempt from. Supported modes are +SfFgNc. Defaults to off. - exemptchanops="" - - # invitebypassmodes: This allows /invite to bypass other channel modes. - # (Such as +k, +j, +l, etc) - invitebypassmodes="yes"> - - -#-#-#-#-#-#-#-#-#-#-#-# PERFORMANCE CONFIGURATION #-#-#-#-#-#-#-#-#-#-# -# # - -<performance - # netbuffersize: Size of the buffer used to recieve data from clients. - # The ircd may only read this amount of text in 1 go at any time. - netbuffersize="10240" - - # maxwho: Maximum number of results to show in a /who query. - # It is not recommended to set this above 1024. - maxwho="128" - - # somaxconn: The maximum number of connections that may be waiting - # in the accept queue. This is *NOT* the total maximum number of - # connections per server. Some systems may only allow this to be up - # to 5, while others (such as linux and *BSD) default to 128. - somaxconn="128" - - # softlimit: This optional feature allows a defined softlimit for - # connections. If defined, it sets a soft max connections value. - # must be lower than ./configure maxclients. - softlimit="12800" - - # quietbursts: When syncing or splitting from a network, a server - # can generate a lof ot connect and quit messages to opers with - # +C and +Q snomasks. Setting this to yes squelches those messages, - # which makes it easier for opers, but degrades the functionality of - # bots like BOPM during netsplits. - quietbursts="yes" - - # nouserdns: If enabled, no user DNS lookups will be performed on - # connecting users. This can save a lot of resources on very busy servers. - nouserdns="no"> - -#-#-#-#-#-#-#-#-#-#-#-# SECURITY CONFIGURATION #-#-#-#-#-#-#-#-#-#-#-# -# # - -<security - - # announceinvites: If this option is set, then invites are announced - # to the channel when a user invites another user. If you consider - # this to be unnecessary noise, set this to 'none'. - # To announce to all ops, set this to 'ops' and to announce to all users, - # set the value to 'all'. The value 'dynamic' will make the messages - # go to every user who has power of INVITE on the channel. This - # is the recommended setting. - announceinvites="dynamic" - - # hidemodes: If enabled, then the listmodes given will be hidden - # from users below halfop. This is not recommended to be set on +b - # as it may break some functionality in popular clients such as mIRC. - hidemodes="eI" - - # disablehmac: If you are linking your InspIRCd to versions older - # than 1.1.6 (NOT RECOMMENDED), then you can specify this option and - # set it to yes. 1.1.6 and above support HMAC and challenge-response - # for password authentication. These can greatly enhance security of your - # server-to-server connections when you are not using SSL. - # It is highly recommended to keep this set to no. - disablehmac="no" - - # hideulines: If this value is set to yes, U-lined server will - # be hidden from non-opers in /links and /map. - hideulines="no" - - # flatlinks: If this value is set to yes, /map and /links will - # be flattened when shown to non-opers. - flatlinks="no" - - # hidewhois: When defined, the given text will be used in place - # of the server a user is on when whoised by a non-oper. Most - # networks will want to set this to something like "*.netname.net" - # to conceal the actual server a user is on. - hidewhois="" - - # hidebans: If this value is set to yes, when a user is banned ([gkz]lined) - # only opers will see the ban message when the user is removed - # from the server.. - hidebans="no" - - # hidekills: If defined, replaces who set a /kill with a custom string. - hidekills="" - - # hidesplits: If enabled, non-opers will not be able to see which - # servers split in a netsplit, they will only be able to see that one - # occurred (If their client has netsplit detection). - hidesplits="no" - - # maxtargets: Maximum number of targets per command. - # (Commands like /notice, /privmsg, /kick, etc) - maxtargets="20" - - # customversion: Displays a custom string when a user /version's - # the ircd. This may be set for security reasons or vanity reasons. - customversion="" - - # operspywhois: If this is set, when a oper /whois 's a user, - # it will show all channels the user is in including +s and +p - # channels. - operspywhois="yes" - - # userstats: /stats commands that users can run (oeprs can run all). - userstats="Pu"> - -#-#-#-#-#-#-#-#-#-#-#-#-# LIMITS CONFIGURATION #-#-#-#-#-#-#-#-#-#-#-# -# # -# This configuration tag defines the maximum sizes of various types # -# on IRC, such as the maximum length of a channel name, and the # -# maximum length of a channel. Note that with the exception of the # -# identmax value all values given here are the exact values you would # -# expect to see on IRC. This contrasts with the older InspIRCd # -# releases where these values would be one character shorter than # -# defined to account for a null terminator on the end of the text. # -# # -# These values should match network-wide otherwise issues will occur. # - -<limits - # maxnick: Maximum length of a nickname. - maxnick="31" - - # maxchan: Maximum length of a channel name. - maxchan="64" - - # maxmodes: Maximum number of mode changes per line. - maxmodes="20" - - # maxident: Maximum length of a ident/username. - maxident="11" - - # maxquit: Maximum length of a quit message. - maxquit="255" - - # maxtopic: Maximum length of a channel topic. - maxtopic="307" - - # maxkick: Maximum length of a kick message. - maxkick="255" - - # maxgecos: Maximum length of a GECOS (realname). - maxgecos="128" - - # maxaway: Maximum length of an away messahe. - maxaway="200"> - - -#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-# -# 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". -# -# 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. # -# # - -<whowas - # groupsize: Maximum entries per nick shown when performing - # a /whowas nick. - groupsize="10" - - # maxgroups: Maximum number of nickgroups that can be added to - # the list so that /whowas does not use a lot of resources on - # large networks. - maxgroups="100000" - - # maxkeep: 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. Minimum is - # 1 hour. - maxkeep="3d"> - -#-#-#-#-#-#-#-#-#-#-#-#-#-#- BAN OPTIONS -#-#-#-#-#-#-#-#-#-#-#-#-#-# -# # -# The ban tags define nick masks, host masks and ip ranges which are # -# banned from your server. All details in these tags are local to # -# Your server. # -# # - -<badip - # ipmask: IP range to ban. Wildcards and CIDR can be used. - ipmask="69.69.69.69" - - # reason: Reason to display when user is disconnected. - reason="No porn here thanks."> - -<badnick - # nick: Nick to disallow. Wildcards are supported. - nick="ChanServ" - - # reason: Reason to display on /nick. - reason="Reserved For Services"> -<badnick nick="NickServ" reason="Reserved For Services"> -<badnick nick="OperServ" reason="Reserved For Services"> -<badnick nick="MemoServ" reason="Reserved For Services"> - -<badhost - # host: ident@hostname to ban. - # Wildcards and CIDR (if you specify an IP) can be used. - host="*@hundredz.n.hundredz.o.1337.kiddies.com" - - # reason: Reason to display when user is disconnected - reason="Too many 1337 kiddiots"> -<badhost host="*@localhost" reason="No irc from localhost!"> -<badhost host="*@172.32.0.0/16" reason="This subnet is bad."> - -# exception: Hosts that are exempt from [kgz]lines. -<exception - # host: ident@hostname to exempt. - # Wildcards and CIDR (if you specify an IP) can be used. - host="*@ircop.host.com" - - # reason: Reason for exception. Only shown in /stats e - reason="Opers hostname"> - -#-#-#-#-#-#-#-#-#-#-#- INSANE BAN OPTIONS -#-#-#-#-#-#-#-#-#-#-#-#-#-# -# # -# This optional tag allows you to specify how wide a gline, eline, # -# kline, zline or qline can be before it is forbidden from being # -# set. By setting hostmasks="yes", you can allow all G, K, E lines, # -# no matter how many users the ban would cover. This is not # -# recommended! By setting ipmasks="yes", you can allow all Z lines, # -# no matter how many users these cover too. Needless to say we # -# don't recommend you do this, or, set nickmasks="yes", which will # -# allow any qline. # -# # - -<insane - # hostmasks: Allow bans with insane hostmasks (over-reaching bans) - hostmasks="no" - - # ipmasks: Allow bans with insane ipmasks (over-reaching bans) - ipmasks="no" - - # nickmasks: Allow bans with insane nickmasks (over-reaching bans) - nickmasks="no" - - # trigger: What percentage of users on the network to trigger - # specifying an insane ban as. The default is 95.5%, which means - # if you have a 1000 user network, a ban will not be allowed if it - # will be banning 955 or more users. - trigger="95.5"> - -#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-# MODULES #-#-#-#-#-#-#-#-#-#-#-#-#-#-# -# ____ _ _____ _ _ ____ _ _ _ # -# | _ \ ___ __ _ __| | |_ _| |__ (_)___ | __ )(_) |_| | # -# | |_) / _ \/ _` |/ _` | | | | '_ \| / __| | _ \| | __| | # -# | _ < __/ (_| | (_| | | | | | | | \__ \ | |_) | | |_|_| # -# |_| \_\___|\__,_|\__,_| |_| |_| |_|_|___/ |____/|_|\__(_) # -# # -# Well done, you've reached the end of the basic configuration, your # -# ircd should now start if you want to try it out! (./inspircd start) # -# # -# We now suggest you read and edit modules.conf, as modules are what # -# provide almost all the features of InspIRCd. :) # -# # -# The default does nothing -- we include it for simplicity for you. # -#-#-#-#-#-#-#-#-#-#-#-#-#- 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). -# You will almost always want to load this. -# -<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_password_hash.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"> -#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-# -# RIPEMD160 Module - Allows other modules to generate RIPEMD160 hashes, -# usually for cryptographic uses and security. -# -# IMPORTANT: -# Other modules may rely on this module being loaded to function. -<module name="m_ripemd160.so"> - -#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-# -# Abbreviation module: Provides the ability to abbreviate commands a-la -# BBC BASIC keywords. -<module name="m_abbreviation.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"> - -#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-# -# Allowinvite module: Gives channel mode +A to allow all users to use -# /invite, and extban A to deny invite from specific masks -<module name="m_allowinvite.so"> - -#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-# -# Alltime module: Shows time on all connected servers at once. -# This module is oper-only and provides /alltime. -# To use, ALLTIME must be in one of your oper class blocks. -<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"> - -#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-# -# CAP module: Provides the CAP negotiation mechanism seen in -# ratbox-derived ircds -<module name="m_cap.so"> - -#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-# -# CBAN module: Lets you disallow channels from being used at runtime. -# This module is oper-only and provides /cban. -# To use, CBAN must be in one of your oper class blocks. -<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. -# This module is oper-only. -<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"> - -#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-# -# Channel logging module: used to send snotice output to channels, to -# allow staff to centrally monitor and discuss network activity. -# -# The "channel" field is where you want the messages to go, "snomasks" -# is what snomasks you want to be sent to that channel. Multiple tags -# are allowed. -#<module name="m_chanlog.so"> -#<chanlog snomasks="AOcC" channel="#opers"> - -#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-# -# Channelban: Implements extended ban j:, which stops anyone in already -# in a channel matching a mask like +b j:#channel*mask from joining. -<module name="m_channelban.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. -# This module is oper-only. -# To use, CHECK must be in one of your oper class blocks. -<module name="m_check.so"> - -#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-# -# CHGHOST module: Adds the /CHGHOST command -# This module is oper-only. -# To use, CHGHOST must be in one of your oper class blocks. -<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="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ.-_/0123456789"> - -#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-# -# CHGIDENT module: Adds the /CHGIDENT command -# This module is oper-only. -# To use, CHGIDENT must be in one of your oper class blocks. -<module name="m_chgident.so"> - -#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-# -# CHGNAME module: Adds the /CHGNAME command -# This module is oper-only. -# To use, CHGNAME must be in one of your oper class blocks. -<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. -# To use, you should enable m_conn_umodes and add +x as -# an enabled mode. See the m_conn_umodes module for more information. -<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. -# This module is oper-only and provides /close. -# To use, CLOSE must be in one of your oper class blocks. -<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. -# This module is oper-only. -# To use, CLONES must be in one of your oper class blocks. -<module name="m_clones.so"> - -#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-# -# Common channels module: Adds user mode +c, which, when set, requires -# that users must share a common channel with you to PRIVMSG or NOTICE -# you. -<module name="m_commonchans.so"> - -#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-# -# Conn-Join: Allows you to force users to join one or more channels -# automatically upon connecting to the server. -#<module name="m_conn_join.so"> -# -#-#-#-#-#-#-#-#-#-#-#-#- CONNJOIN CONFIGURATION -#-#-#-#-#-#-#-#-#-#-# -# -# If you have m_conn_join.so loaded, you can configure it using the -# follow values: -# -#<autojoin channel="#one,#two,#three"> - -#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-# -# Conn-Usermodes: Set modes on users when they connect -# When this module is loaded <connect:allow> tags may have an optional -# modes="" value, which contains modes to add or remove from users -# when they connect to the server. -<module name="m_conn_umodes.so"> - -#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-# -# Conn-Wait-for-Pong: Don't let a user connect until they PONG -#<module name="m_conn_waitpong.so"> -# -#-#-#-#-#-#-#-#-#-#-#- WAITPONG CONFIGURATION -#-#-#-#-#-#-#-#-#-#-# -# # -# If you have the m_conn_waitpong.so module loaded, configure it with # -# the <waitpong> tag: # -# # -# sendsnotice - Whether to send a snotice on connect, like other # -# older ircds # -# # -# killonbadreply - Whether to kill the user if they send the wrong # -# PONG reply. # -# # -#<waitpong sendsnotice="yes" killonbadreply="yes"> - - -#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-# -# Channel cycle module. Server side /hop, with +ilk etc bypass. -<module name="m_cycle.so"> - -#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-# -# Connectban: Provides IP connection throttling. Any IP range that connects -# too many times (configurable) in an hour is zlined for a (configurable) -# duration, and their count resets to 0. -# -# ipv4cidr and ipv6cidr allow you to turn the comparison from individual -# IP addresses (32 and 128 bits) into CIDR masks, to allow for throttling -# 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. -# -#<module name="m_connectban.so"> - -#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-# -# Connection throttle module. Configuration: -#<module name="m_connflood.so"> -# -#-#-#-#-#-#-#-#-#-#-#- CONTHROTTLE CONFIGURATION -#-#-#-#-#-#-#-#-#-#-# -# seconds, maxconns - Amount of connections per <seconds>. -# -# timeout - Time to wait after the throttle was activated -# before deactivating it. Be aware that the time -# is seconds + timeout. -# -# quitmsg - The message that users get if they attempt to -# connect while the throttle is active. -# -# bootwait - Amount of time to wait before enforcing the -# throttling when the server just booted. -# -#<connflood seconds="30" maxconns="3" timeout="30" -# quitmsg="Throttled" bootwait="10"> - -#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-# -# Custom title module: Adds the /TITLE command which allows for trusted -# users to gain a custom whois line and a optional -# vhost can be specified. -#<module name="m_customtitle.so"> -# -#-#-#-#-#-#-#-#-#-#- CUSTOM TITLE CONFIGURATION -#-#-#-#-#-#-#-#-#-# -# name - The username used to identify -# password - The password used to identify -# host - Allowed hostmask [optional] -# title - Title shown in whois -# vhost - Displayed host [optional] -# -#<title name="foo" password="bar" title="Official Chat Helper"> -#<title name="bar" password="foo" host="ident@host.name" title="Official Chat Helper" vhost="helper.network.chat"> - -#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-# -# DCCALLOW module: Adds the /DCCALLOW command -<module name="m_dccallow.so"> -# -#-#-#-#-#-#-#-#-#-#-#- DCCALLOW CONFIGURATION -#-#-#-#-#-#-#-#-#-#-# -# blockchat - Whether to block DCC CHAT as well as DCC SEND -# length - Default duration of entries in DCCALLOW list -# action - Default action to take if no action is specified -# can be 'block' or 'allow' -# -# File configuration: -# pattern - The glob pattern to match against -# action - Action to take if a user attempts to send a file -# that matches this pattern, can be 'block' or 'allow' -# -#<dccallow blockchat="yes" length="5m" action="block"> -#<banfile pattern="*.exe" action="block"> -#<banfile pattern="*.txt" action="allow"> -# -#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-# - -#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-# -# Deaf module: adds support for ircu style usermode +d - deaf to -# channel messages and channel notices. -<module name="m_deaf.so"> - -#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-# -# Delay join module: Adds the channel mode +D which delays all JOIN -# messages from users until they speak. If they quit or part before -# speaking, their quit or part message will not be shown to the channel -# which helps cut down noise on large channels in a more friendly way -# than the auditorium mode. Only channel ops may set the +D mode. -<module name="m_delayjoin.so"> - -#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-# -# Deny Channels: Deny Channels from being used by users -<module name="m_denychans.so"> -# -#-#-#-#-#-#-#-#-#-#-#- DENYCHAN DEFINITIONS -#-#-#-#-#-#-#-#-#-#-#-# -# # -# If you have the m_denychans.so module loaded, you need to specify # -# the channels to deny: # -# # -# name - The channel name to deny. (glob masks are ok) # -# # -# allowopers - If operators are allowed to override the deny. # -# # -# reason - Reason given for the deny. # -# # -# redirect - Redirect the user to a different channel # -# # -#<badchan name="#gods*" allowopers="yes" reason="Tortoises!"> # -#<badchan name="#heaven" redirect="#hell" reason="Nice try!"> # -# # -# Redirects will not work if the target channel is set +L. # -# # -# Additionally, you may specify channels which are allowed, even if # -# a badchan tag specifies it would be denied: # -#<goodchan name="#godsleeps"> # -# Glob masks are accepted here also. - -#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-# -# Devoice Module: Let users devoice themselves. -<module name="m_devoice.so"> - -#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-# -# DNS Blacklist Module: Provides support for looking up IPs on one or # -# more blacklists. # -#<module name="m_dnsbl.so"> # -# # -# For configuration options please see the wiki page for m_dnsbl at # -# http://inspircd.org/wiki/DNS_Blacklist_Module # - -#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-# -# Filter module: Provides message filtering, similar to SPAMFILTER. -#<module name="m_filter.so"> -# # -# This module depends upon a regex provider such as m_regex_pcre or # -# m_regex_glob to function. You must specify which of these you want # -# m_filter to use via the tag below. # -# # -# Valid engines are: # -# # -# glob - Glob patterns, provided via m_regex_glob.so # -# pcre - PCRE regexps, provided via m_regex_pcre.so, needs libpcre # -# tre - TRE regexps, provided via m_regex_tre.so, requires libtre # -# posix - POSIX regexps, provided via m_regex_posix.so, not availale # -# on windows, no dependencies on other operating systems. # -# # -#<filteropts engine="glob"> # -# # -# Your choice of regex engine must match on all servers network-wide. -# -#-#-#-#-#-#-#-#-#-#-#- FILTER CONFIGURATION -#-#-#-#-#-#-#-#-#-#-#-# -# # -# Optional - If you specify to use the m_filter module, then # -# specfiy below the path to the filter.conf file, or define some # -# <filter> tags. # -# # -#<include file="filter.conf"> - -#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-# -# Foobar module: does nothing - historical relic -#<module name="m_foobar.so"> - -#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-# -# Gecosban: Implements extended ban r:, which stops anyone matching -# a mask like +b r:*realname?here* from joining a channel. -<module name="m_gecosban.so"> - -#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-# -# GeoIP module: Allows the server admin to ban users by country code. -#<module name="m_geoip.so"> -# -#-#-#-#-#-#-#-#-#-#-#-# GEOIP CONFIGURATION #-#-#-#-#-#-#-#-#-#-#-#-# -# # -# <geoip banunknown="false"> # -# # -# Set this value to true or yes to block unknown IP ranges which are # -# not in the database (usually LAN addresses, localhost, etc) # -# # -# <geoban country="TR" reason="This country not permitted"> # -# # -# Use one or more of these tags to ban countries by country code. # -# The country code must be in capitals and should be an ISO country # -# code such as TR, GB, or US. # - -#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-# -# Globops module: gives /GLOBOPS and SNOMASK +g -# This module is oper-only. -# To use, GLOBOPS must be in one of your oper class blocks. -<module name="m_globops.so"> - -#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-# -# Global load module: Allows loading and unloading of modules network- -# wide (USE WITH EXTREME CAUTION!) -# This module is oper-only and provides /gloadmodule, /gunloadmodule -# and /greloadmodule. -# To use, GLOADMODULE, GUNLOADMODULE and GRELOADMODULE -# must be in one of your oper class blocks. -#<module name="m_globalload.so"> - -#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-# -# HELPOP module: Provides the /HELPOP command -#<module name="m_helpop.so"> -# -#-#-#-#-#-#-#-#-#-#-#-#- HELPOP CONFIGURATION -#-#-#-#-#-#-#-#-#-#-# -# # -# Optional - If you specify to use the m_helpop.so module, then # -# specify below the path to the helpop.conf file, or if you like to # -# make a mess, define your helpop tags in this conf. # -# # -#<include file="helpop.conf"> - -#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-# -# HIDECHANS module: Allows opers to hide their channels list from non- -# opers by setting user mode +I on themselves. -<module name="m_hidechans.so"> -# -# 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- -# opers by setting user mode +H on themselves. -# This module is oper-only. -<module name="m_hideoper.so"> - -#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-# -# Hostchange module: Allows a different style of cloaking -#<module name="m_hostchange.so"> -# -#-#-#-#-#-#-#-#-#-#-#- HOSTCHANGE CONFIGURATION -#-#-#-#-#-#-#-#-#-# -# # -# Optional - If you choose to use the m_hostchange.so module. # -# Config Help - See http://www.inspircd.org/wiki/Host_Changer_Module # -# # -#<host suffix="polarbears.org" separator="." prefix=""> -#<hostchange mask="*@fbi.gov" action="addnick"> -#<hostchange mask="*r00t@*" action="suffix"> -#<hostchange mask="a@b.com" action="set" value="blah.blah.blah"> -#<hostchange mask="localhost" ports="7000,7001,7005-7007" action="set" value="blahblah.foo"> - -#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-# -# httpd module: Provides http server support for InspIRCd -#<module name="m_httpd.so"> -# -#-#-#-#-#-#-#-#-#-#-#-#- HTTPD CONFIGURATION -#-#-#-#-#-#-#-#-#-#-# -# -# Optional - If you choose to use the m_httpd.so module, then you must -# specify the port number and other details of your http server: -# -#<http ip="192.168.1.10" host="brainwave" port="32006" -# index="/home/brain/inspircd/http/index.html"> -# -# You may have as many of these tags as you wish, each with a different -# IP, port, host or index file. Each one will act as an independent -# HTTP server. -# - -#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-# -# http ACL module: Provides access control lists for m_httpd dependent -# modules. Use this module to restrict pages by IP address and by -# password. -# -#<module name="m_httpd_acl.so"> -# -#-#-#-#-#-#-#-#-#-#-#-#- HTTPD ACL CONFIGURATION -#-#-#-#-#-#-#-#-#-#-# -# -# Restrict access to the m_httpd_stats module to all but the local -# network and when the correct password is specified: -# -# <httpdacl path="/stats*" types="password,whitelist" -# username="secretstuff" password="mypasshere" whitelist="127.0.0.*,10.*"> -# -# Deny all connections to all but the main index page: -# -# <httpdacl path="/*" types="blacklist" blacklist="*"> -# - -#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-# -# http config module: Allows the server's configuration to be viewed -# over HTTP. Requires m_httpd.so to be loaded for it to function. -#<module name="m_httpd_config.so"> - -#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-# -# 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 -# When this module is loaded <connect:allow> tags may have an optional -# useident="yes|no" boolean value, determining whether or not to lookup -# ident on users matching that connect tag. -<module name="m_ident.so"> -# -#-#-#-#-#-#-#-#-#-#-#-#- IDENT CONFIGURATION -#-#-#-#-#-#-#-#-#-#-# -# # -# Optional - If you are using the m_ident.so module, then you can # -# specify the timeout for ident lookups here. If not defined, it will # -# default to one second. This is a non-blocking timeout which holds # -# the user in a 'connecting' state until the lookup is complete. # -# The bind value indicates which IP to bind outbound requests to. # -# # -<ident timeout="5" bind=""> - -#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-# -# Invite except module: Adds support for channel invite exceptions (+I) -<module name="m_inviteexception.so"> - -#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-# -# Invisible module - Adds support for usermode +Q (quiet) which lets an -# oper go 'invisible' similar to unrealircd 3.1's +I mode. Note that -# opers are still able to see invisible users, and if an oper with +Q -# deopers, they will become visible. -# -# IMPORTANT NOTE: To allow this mode to be used by a type of oper, you -# must first add the value canquiet="yes" to that oper's type tag. -# -# This module is oper-only. -# -<module name="m_invisible.so"> - -#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-# -# Join flood module: Adds support for join flood protection (+j) -<module name="m_joinflood.so"> - -#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-# -# Jump Server module: Adds support for the RPL_REDIR numeric -# This module is oper-only. -# To use, JUMPSERVER must be in one of your oper class blocks. -<module name="m_jumpserver.so"> - -#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-# -# Anti-Auto-Rejoin: Adds support for prevention of auto-rejoin (+J) -<module name="m_kicknorejoin.so"> - -#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-# -# Knock module: adds the /KNOCK command and +K channel mode -<module name="m_knock.so"> - -#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-# -# LDAP authentication module: Adds the ability to authenticate users # -# via LDAP. This is an extra module which must be enabled explicitly # -# by symlinking it from modules/extra, and requires the OpenLDAP libs # -# # -#<module name="m_ldapauth.so"> # -# # -# Configuration: # -# # -# <ldapauth baserdn="ou=People,dc=brainbox,dc=cc" # -# attribute="uid" # -# server="ldap://brainwave.brainbox.cc" # -# allowpattern="Guest*" # -# killreason="Access denied" # -# searchscope="subtree" # -# binddn="cn=Manager,dc=brainbox,dc=cc" # -# bindauth="mysecretpass" # -# verbose="yes"> # -# # -# The baserdn indicates the base DN to search in for users. Usually # -# this is 'ou=People,dc=yourdomain,dc=yourtld'. # -# # -# The attribute value indicates the attribute which is used to locate # -# a user account by name. On POSIX systems this is usually 'uid'. # -# # -# The server parameter indicates the LDAP server to connect to. The # -# ldap:// style scheme before the hostname proper is MANDITORY. # -# # -# The allowpattern value allows you to specify a wildcard mask which # -# will always be allowed to connect regardless of if they have an # -# account, for example guest users. # -# # -# Killreason indicates the QUIT reason to give to users if they fail # -# to authenticate. # -# # -# The searchscope value indicates the subtree to search under. On our # -# test system this is 'subtree'. Your mileage may vary. # -# # -# Setting the verbose value causes an oper notice to be sent out for # -# every failed authentication to the server, with an error string. # -# # -# The binddn and bindauth indicate the DN to bind to for searching, # -# and the password for the distinguished name. Some LDAP servers will # -# allow anonymous searching in which case these two values do not # -# need defining, otherwise they should be set similar to the examples # -# above. # - -#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-# -# Lock server module: Adds /LOCKSERV and /UNLOCKSERV commands that is # -# used to temporarily close/open for new connections to the server. # -# These commands require OPER status and that the LOCKSERV UNLOCKSERV # -# are specified in a <class> tag that the oper is part of. This is so # -# you can control who has access to this possible dangerous command. # -# If your server is locked and you got disconnected, do a REHASH from # -# shell to open up again. -# -# This module is oper-only. -# -<module name="m_lockserv.so"> - -#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-# -# Msg flood module: Adds message/notice flood protection (+f) -<module name="m_messageflood.so"> - -#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-# -# MsSQL module: Allows other SQL modules to access MS SQL Server -# through a unified API. You must copy the source for this module -# from the directory src/modules/extra, plus the file m_sqlv2.h -#<module name="m_mssql.so"> -# -#-#-#-#-#-#-#-#-#-#-#-#- SQL CONFIGURATION -#-#-#-#-#-#-#-#-#-#-#-#-# -# # -# m_mssql.so is more complex than described here, see wiki for more # -# info http://www.inspircd.org/wiki/SQLServer_Service_Provider_Module # -# -#<database name="db" username="user" password="pass" hostname="localhost" id="db1"> - -#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-# -# MySQL module: Allows other SQL modules to access MySQL databases -# through a unified API. You must copy the source for this module -# from the directory src/modules/extra, plus the file m_sqlv2.h -#<module name="m_mysql.so"> -# -#-#-#-#-#-#-#-#-#-#-#-#- SQL CONFIGURATION -#-#-#-#-#-#-#-#-#-#-#-#-# -# # -# m_mysql.so is more complex than described here, see the wiki for # -# more: http://www.inspircd.org/wiki/SQL_Service_Provider_Module # -# -#<database name="mydb" username="myuser" password="mypass" hostname="localhost" id="my_database2"> - -#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-# -# NAMESX module: Provides support for the NAMESX extension which allows -# clients to see all the prefixes set on a user without getting confused. -# This is supported by mIRC, x-chat, klient, and maybe more. -<module name="m_namesx.so"> - -#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-# -# Nickchange flood protection module: Allows up to X nick changes in Y seconds. -# Provides channel mode +F. -<module name="m_nickflood.so"> - -#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-# -# Nicklock module: Let opers change a user's nick and then stop that -# user from changing their nick again. -# This module is oper-only. -# To use, NICKLOCK and NICKUNLOCK must be in one of your oper class blocks. -<module name="m_nicklock.so"> - -#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-# -# No ctcp module: Adds the channel mode +C to block CTCPs -<module name="m_noctcp.so"> - -#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-# -# No kicks module: Adds the +Q channel mode -<module name="m_nokicks.so"> - -#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-# -# No nicks module: Adds the +N channel mode, as well as the +b N: -# extended bantype. +N stops all users from changing their nick, -# the +b N: extban stops anyone from matching a +b N:nick!user@host -# mask from changing their nick. -<module name="m_nonicks.so"> - -#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-# -# No Notice module: adds the channel mode +T -<module name="m_nonotice.so"> - -#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-# -# Oper channels mode: Adds the +O channel mode -# 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. -# 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"> - -#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-# -# Oper Join module: Auto-joins opers to a channel upon oper-up -# This module is oper-only. For the user equivalent, see m_conn_join. -<module name="m_operjoin.so"> -# -#-#-#-#-#-#-#-#-#-#-# OPERJOIN CONFIGURATION -#-#-#-#-#-#-#-#-#-#-# -# # -# If you are using the m_operjoin.so module, specify options here: # -# # -# channel - The channel name to join, can also be a comma # -# seperated list eg. "#channel1,#channel2". # -# # -# override - Lets the oper join walking thru any modes that # -# might be set, even bans. Use "yes" or "no". # -# # -<operjoin channel="#opers" override="no"> -# -# Alternatively you can use the autojoin="channellist" in a <type> # -# tag to set specific autojoins for a type of oper, for example: # -# -#<type name="Helper" autojoin="#help" classes="..."> - -#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-# -# Oper log module: Logs all oper commands to the ircd log at default -# loglevel. -# This module is oper-only. -<module name="m_operlog.so"> - -#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-# -# Oper MOTD module: Provides support for seperate message of the day -# on oper-up -# This module is oper-only. -#<module name="m_opermotd.so"> -# -#-#-#-#-#-#-#-#-#-#-# OPERMOTD CONFIGURATION -#-#-#-#-#-#-#-#-#-#-# -# # -# If you are using the m_opermotd.so module, specify the motd here # -# # -#<opermotd file="oper.motd"> - -#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-# -# Override module: Adds support for oper override -# This module is oper-only. -<module name="m_override.so"> -# -#-#-#-#-#-#-#-#-#-#-# OVERRIDE CONFIGURATION -#-#-#-#-#-#-#-#-#-#-# -# # -# m_override.so is too complex it describe here, see the wiki: # -# http://www.inspircd.org/wiki/Oper_Override_Module # - -#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-# -# Oper levels module: Gives each oper a level and prevents -# actions being taken against higher level opers -# Specify the level as the 'level' parameter of the <type> tag -# # This module is oper-only. -#<module name="m_operlevels.so"> - -#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-# -# Oper modes module: Allows you to specify modes to add/remove on oper -# Specify the modes as the 'modes' parameter of the <type> tag -# and/or as the 'modes' parameter of the <oper> tag. -# This module is oper-only. For the user equivalent, see m_conn_umodes -<module name="m_opermodes.so"> - -#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-# -# Oper password hash module: Allows hashed oper passwords -# Relies on the module m_md5.so and/or m_sha256.so being loaded before -# m_password_hash.so in the configuration file. -# This module is oper-only. -<module name="m_password_hash.so"> -# -#-#-#-#-#-#-#-#-#-#-# OPER HASH CONFIGURATION #-#-#-#-#-#-#-#-#-#-#-#-# -# -# To use this module, you must define a hash type for each oper's -# password you want to hash. For example: -# -# <oper name="Brain" -# host="ident@dialup15.isp.com" -# hash="sha256" -# password="a41d730937a53b79f788c0ab13e9e1d5" -# type="NetAdmin"> -# -# The types of hashing available vary depending on which hashing modules -# you load, but usually if you load m_sha256.so and m_md5.so, both md5 -# and sha256 type hashing will be available (the most secure of which -# is SHA256). - -#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-# -# Permanent Channels module: Channels with the permanent channels mode -# will remain open even after everyone else has left the channel, and -# therefore keep things like modes, ban lists and topic. Permanent -# channels -may- need support from your Services package to function -# properly with them. This adds channel mode +P. -# This module is oper-only. -<module name="m_permchannels.so"> -# -# You may also create channels on startup by using the <permchannels> block. -#<permchannels channel="#opers" modes="is" topic="Opers only."> - -#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-# -# PostgreSQL module: Allows other SQL modules to access PgSQL databases -# through a unified API. You must copy the source for this module -# from the directory src/modules/extra, plus the file m_sqlv2.h -#<module name="m_pgsql.so"> -# -#-#-#-#-#-#-#-#-#-#-#-#- SQL CONFIGURATION -#-#-#-#-#-#-#-#-#-#-#-#-# -# # -# m_pgsql.so is more complex than described here, see the wiki for # -# more: http://www.inspircd.org/wiki/SQL_Service_Provider_Module # -# -#<database name="mydb" username="myuser" password="mypass" hostname="localhost" id="my_database" ssl="no"> - -#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-# -# Muteban: Implements extended ban m:, which stops anyone matching -# a mask like +b m:nick!user@host from speaking on channel. -<module name="m_muteban.so"> -# - -#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-# -# Random Quote module: provides a random quote on connect. -# NOTE: Some of these may mimic fatal errors and confuse users and -# opers alike! - BEWARE! -#<module name="m_randquote.so"> -# -#-#-#-#-#-#-#-#-#-#- RANDOMQUOTES CONFIGURATION -#-#-#-#-#-#-#-#-#-#-# -# # -# Optional - If you specify to use the m_randquote.so module, then # -# specify below the path to the randquotes.conf file. # -# # -#<randquote file="randquotes.conf"> - -#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-# -# Redirect module: Adds channel redirection (mode +L) -<module name="m_redirect.so"> - -#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-# -# Regular Expression Provider for Glob or wildcard (?/*) matching. -# You must have at least 1 provider loaded to use m_filter or m_rline -# modules. This module has no additional requirements, as it uses the -# matching already present in InspIRCd core. -#<module name="m_regex_glob.so"> - -#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-# -# Regular Expression Provider for PCRE (Perl-Compatible Regular -# Expressions). You need libpcre installed to compile and load this -# module. You must have at least 1 provider loaded to use m_filter or -# m_rline. -#<module name="m_regex_pcre.so"> - -#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-# -# Regular Expression Provider for POSIX Regular Expressions. -# You shouldn't need any additional libraries on a POSIX-compatible -# system (ie: any Linux, BSD, but not Windows). You must have at least -# 1 provider loaded to use m_filter or m_rline. -# On POSIX-compliant systems, regex syntax can be found by using the -# command: 'man 7 regex'. -#<module name="m_regex_posix.so"> - -#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-# -# Regular Expression Provider for TRE Regular Expressions. -# This is the same regular expression engine used by UnrealIRCd, so -# if you are most familiar with the syntax of /spamfilter from there, -# this is the provider you want. You need libtre installed in order -# to compile and load this module. -#<module name="m_regex_tre.so"> - -#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-# -# Registered users only channel creation -# Allows only registered users and opers to create new channels. -#<module name="m_regonlycreate.so"> - -#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-# -# Remove module: Adds the /REMOVE command which is a peaceful -# alternative to /KICK -<module name="m_remove.so"> - -#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-# -# Restrict banned users module: -# Disallows banned users on a channel from messaging the channel, -# changing nick, or changing the topic, if loaded. -<module name="m_restrictbanned.so"> - -#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-# -# Restricted channels module: Allows only opers to create channels -#<module name="m_restrictchans.so"> - -#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-# -# Restrict message module: Allows users to only message opers -#<module name="m_restrictmsg.so"> - -#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-# -# Ban users through regular expression patterns -#<module name="m_rline.so"> -# -#-#-#-#-#-#-#-#-#-#-#-#- RLINE CONFIGURATION -#-#-#-#-#-#-#-#-#-#-#-#-# -# -# If you wish to re-check a user when they change nickname (can be -# useful under some situations, but *can* also use CPU with more users -# on a server) then set the following configuration value: -# Also, this is where you set what Regular Expression engine is to be -# used. If you ever change it while running, all of your R-Lines will be -# wiped. This is the regex engine used by all R-Lines set, and -# m_regex_<engine>.so must be loaded, or rline will be nonfunctional -# until you load it or change the engine to one that is loaded. -# -#<rline matchonnickchange="yes" engine="pcre"> -# -# Generally, you will NOT want to use 'glob' here, as this turns -# rline into just another gline. The exceptions are that rline will -# always use the full nick!user@host realname string, rather than only -# user@host, but beware that only the ? and * wildcards are available, -# and are the only way to specify where the space can occur if you do -# use glob. For this reason, is recommended to use a real regex engine -# so that at least \s or [[:space:]] is available. - -#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-# -# JSON-RPC module: Encode and decode JSON-RPC requests for modules -#<module name="m_rpc_json.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. -# To use, SAJOIN must be in one of your oper class blocks. -<module name="m_sajoin.so"> - -#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-# -# SAMODE module: Adds the oper /SAMODE command -# This module is oper-only. -# To use, SAMODE must be in one of your oper class blocks. -<module name="m_samode.so"> - -#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-# -# SANICK module: Allows opers to change user's nicks -# This module is oper-only. -# To use, SANICK must be in one of your oper class blocks. -<module name="m_sanick.so"> - -#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-# -# SAPART module: Adds the oper /SAPART command -# This module is oper-only. -# To use, SAPART must be in one of your oper class blocks. -<module name="m_sapart.so"> - -#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-# -# SAQUIT module: Adds the oper /SAQUIT command (abusable!!!) -# This module is oper-only. -# To use, SAQUIT must be in one of your oper class blocks. -<module name="m_saquit.so"> - -#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-# -# SASL authentication module: Provides support for IRC Authentication -# Layer (aka: atheme SASL) via AUTHENTICATE. -<module name="m_sasl.so"> - -#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-# -# Secure list module: Prevent /LIST in the first minute of connection, -# crippling most spambots and trojan spreader bots. -<module name="m_securelist.so"> -# -#-#-#-#-#-#-#-#-#-# SECURELIST CONFIGURATION -#-#-#-#-#-#-#-#-#-#-#-#-# -# # -# Securelist can be harmful to some irc search engines such as # -# netsplit.de and searchirc.com. To prevent securelist blocking these # -# sites from listing, define exception tags as shown below: # -<securehost exception="*@*.searchirc.org"> -<securehost exception="*@*.netsplit.de"> -<securehost exception="*@echo940.server4you.de"> -# # -# Define the following variable to change how long a user must wait # -# before issuing a LIST. If not defined, defaults to 60 seconds. # -# # -<securelist waittime="30"> - -#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-# -# Servprotect module: Provides support for Austhex style +k / -# UnrealIRCD +S services mode -#<module name="m_servprotect.so"> - -#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-# -# See nicks module: Allow for SNOMASK +N which shows nick changes. -# This module is oper-only. -<module name="m_seenicks.so"> - -#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-# -# Set Idle module: Adds a command for opers to change their -# idle time (mainly a toy) -# This module is oper-only. -# 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. -# -# 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"> - -#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-# -# Sethost module: Adds the /SETHOST command -# This module is oper-only. -# To use, SETHOST must be in one of your oper class blocks. -# See m_chghost for how to customise valid chars for hostnames -<module name="m_sethost.so"> - -#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-# -# Setident module: Adds the /SETIDENT command -# This module is oper-only. -# To use, SETIDENT must be in one of your oper class blocks. -<module name="m_setident.so"> - -#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-# -# SETNAME module: Adds the /SETNAME command -# This module is oper-only. -# To use, SETNAME must be in one of your oper class blocks. -<module name="m_setname.so"> - -#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-# -# Serverban: Implements extended ban s:, which stops anyone connected -# to a server matching a mask like +b s:server.mask.here from joining. -<module name="m_serverban.so"> - -#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-# -# Show Whois module: Adds the +W usermode which allows opers -# to see when they are whois'ed (can be annoying). -# This module is oper-only. -<module name="m_showwhois.so"> - -#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-# -# Shun module: Provides the /shun command, which stops a user executing -# most commands. -# This module is oper-only. -# To use, SHUN must be in one of your oper class blocks. -<module name="m_shun.so"> -# -# You may also configure which commands you wish a user to be able to -# perform. It should be noted that if a shunned user issues QUIT or PART -# then their message will be removed, as if they did not issue one. -# -# You may also (optionally) let the user know that their command was blocked. -#<shun enabledcommands="PING PONG QUIT PART JOIN" notifyuser="yes"> - -#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-# -# Spy module: Provides the ability to see the complete names list of -# channels an oper is not a member of -# This module is oper-only. -<module name="m_spy.so"> - -#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-# -# SSL channel mode module: Adds support for SSL-only channels (+z). -# does not do anything useful without a working SSL module (see below) -#<module name="m_sslmodes.so"> - -#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-# -# Dummy ssl module: If you have other servers on your network which -# have SSL, but your server does not have ssl enabled, you should load -# this module, which will handle SSL metadata (e.g. the "Is using ssl" -# field in the WHOIS information). -#<module name="m_ssl_dummy.so"> - -#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-# -# GnuTLS ssl module: Adds support for client-server SSL using GnuTLS, -# if enabled. You must copy the source for this module from the directory -# src/modules/extra, or answer 'yes' in ./configure when asked if you -# want to enable this, or it will not load. -#<module name="m_ssl_gnutls.so"> -# -#-#-#-#-#-#-#-#-#-#-#- GNUTLS CONFIGURATION -#-#-#-#-#-#-#-#-#-#-#-# -# # -# m_ssl_gnutls.so is too complex it describe here, see the wiki: # -# http://www.inspircd.org/wiki/GnuTLS_SSL_Module # -# # -# NOTE: If you want to use this module to encrypt and sign your # -# server to server traffic, you MUST load it before m_spanningtree in # -# your configuration file! # - -#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-# -# SSL Info module: Allows users to retrieve information about other -# user's peer SSL certificates and keys. This can be used by client -# scripts to validate users. For this to work, one of m_ssl_gnutls.so -# or m_ssl_openssl.so must be loaded. You must symlink the source for -# this module from the directory src/modules/extra. -#<module name="m_sslinfo.so"> - -#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-# -# OpenSSL ssl module: Adds support for client-server SSL using OpenSSL, -# if enabled. You must copy the source for this module from the directory -# src/modules/extra, or answer 'yes' in ./configure when asked if you -# want to enable this, or it will not load. -#<module name="m_ssl_openssl.so"> -# -#-#-#-#-#-#-#-#-#-#-#- OPENSSL CONFIGURATION -#-#-#-#-#-#-#-#-#-#-#-# -# # -# m_ssl_openssl.so is too complex it describe here, see the wiki: # -# http://www.inspircd.org/wiki/OpenSSL_SSL_Module # -# # -# NOTE: If you want to use this module to encrypt and sign your # -# server to server traffic, you MUST load it before m_spanningtree in # -# your configuration file! # - -#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-# -# SSL Cert Oper module: Allows opers to oper up using the key fingerprint -# stored within their SSL certificate and key pair. -# When using this module, one of m_ssl_gnutls.so or m_ssl_openssl.so must -# be loaded. An extra value should be added to enabled opers, which -# is in the following format: fingerprint="<hash>". For more information, -# see the example in the oper blocks. -# 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"> - -#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-# -# SILENCE module: Adds support for /SILENCE -<module name="m_silence.so"> -# -# Configuration tags: -# -<silence maxentries="32"> -# -# Sets the maximum number of entries on a users silence list. - -#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-# -# SQLite3 module: Allows other SQL modules to access SQLite3 # -# databases through a unified API. You must link the source for this # -# module from the directory src/modules/extra to src/modules, plus # -# the file m_sqlv2.h # -#<module name="m_sqlite3.so"> -# -#-#-#-#-#-#-#-#-#-#-#-#- SQL CONFIGURATION -#-#-#-#-#-#-#-#-#-#-#-#-# -# # -# m_sqlite.so is more complex than described here, see the wiki for # -# more: http://www.inspircd.org/wiki/SQLite3_Service_Provider_Module # -# -#<database hostname="/full/path/to/database.db" id="anytext"> - -#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-# -# SQLutils module: Provides some utilities to SQL client modules, such -# as mapping queries to users and channels. You must copy the source -# for this module from the directory src/modules/extra/m_sqlutils.cpp -# and src/modules/extra/m_sqlutils.h into /src/modules -# Needed for, and loaded before: SQLauth and SQLoper -#<module name="m_sqlutils.so"> - -#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-# -# SQL authentication module: Allows IRCd connections to be tied into -# a database table (for example a forum). You must copy the source for -# this module from the directory src/modules/extra -# Depends on the SQLutils module being loaded first. -#<module name="m_sqlauth.so"> -# -#-#-#-#-#-#-#-#-#-#-#- SQLAUTH CONFIGURATION -#-#-#-#-#-#-#-#-#-#-#-# -# # -# m_sqlauth.so is too complex it describe here, see the wiki: # -# http://www.inspircd.org/wiki/SQL_Authentication_Module # - -#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-# -# SQL logging module: Allows you to log network-wide data for your -# network in a fully normalised set of SQL tables. You must copy the -# source for this module from the directory src/modules/extra -#<module name="m_sqllog.so"> -# -#-#-#-#-#-#-#-#-#-#-#- SQLLOG CONFIGURATION -#-#-#-#-#-#-#-#-#-#-#-# -# # -# dbid - Database ID to use (see m_sql) # -# # -# See also: http://www.inspircd.org/wiki/SQL_Logging_Module # -# # -#<sqllog dbid="1"> - -#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-# -# SQL oper module: Allows you to store oper credentials in an SQL table -# You must copy the source for this module from the directory src/modules/extra -# Depends on the SQLutils module being loaded first. -#<module name="m_sqloper.so"> -# -#-#-#-#-#-#-#-#-#-#-#- SQLOPER CONFIGURATION -#-#-#-#-#-#-#-#-#-#-#-# -# # -# dbid - Database ID to use (see m_sql) # -# hash - Hashing provider to use for password hashing # -# # -# See also: http://www.inspircd.org/wiki/SQL_Oper_Storage_Module # -# # -#<sqloper dbid="1" hash="md5"> - -#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-# -# SVSHold module: Implements SVSHOLD. Like Q:Lines, but can only be # -# added/removed by Services. # -#<module name="m_svshold.so"> - -#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-# -# SWHOIS module: Allows you to add arbitary lines to user WHOIS. -# This module is oper-only. -# To use, SWHOIS must be in one of your oper class blocks. -<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"> - -#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-# -# 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. -<module name="m_timedbans.so"> - -#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-# -# Test line module: Adds the /TLINE command, used to test how many -# users a /GLINE or /ZLINE etc would match. -# This module is oper-only. -# To use, TLINE must be in one of your oper class blocks. -<module name="m_tline.so"> - -#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-# -# UHNAMES support module: Adds support for the IRCX style UHNAMES -# extension, which displays ident and hostname in the names list for -# each user, saving clients from doing a WHO on the channel. Note that -# this module is not widely supported yet. If a client does not support -# UHNAMES it will not enable it, this will not break incompatible -# clients. -<module name="m_uhnames.so"> - -#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-# -# Uninvite module: Adds the /UNINVITE command which lets users remove -# pending invites from channels without waiting for the user to join. -<module name="m_uninvite.so"> - -#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-# -# Userip module: Adds the /USERIP command -# This module is oper-only. -# To use, USERIP must be in one of your oper class blocks. -<module name="m_userip.so"> - -#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-# -# Vhost module: Adds the VHOST command which allows for adding virtual -# hosts which are accessible using a username and password in the config. -#<module name="m_vhost.so"> -# -#-#-#-#-#-#-#-#-#-#-#- VHOST CONFIGURATION -#-#-#-#-#-#-#-#-#-#-#-#-# -# # -# user - Username for the vhost. # -# # -# pass - Password for the vhost. # -# # -# host - Vhost to set. # -# -#<vhost user="some_username" pass="some_password" host="some.host"> - -#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-# -# Watch module: Adds the WATCH command, which is used by clients to -# maintain notify lists. -<module name="m_watch.so"> -# -# Configuration tags: -# -<watch maxentries="32"> -# -# Sets the maximum number of entries on a user's watch list. - -#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-# -# XLine database: Stores all *Lines (G/Z/K/R/any added by other modules) -# in a file "xline.db" which can be re-loaded on restart. This is useful -# for two reasons: it keeps bans so users may not evade them, and on -# bigger networks, server connections will take less time as there will -# be a lot less bans to apply - as most of them will already be there. -<module name="m_xline_db.so"> - -#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-# -# ZipLinks module: Adds support for zlib deflate on server to server -# connections. Both ends of the connection must load this module. -# -#<module name="m_ziplink.so"> -# -# To use this module, you must enable it as a transport type in your -# <link> tags or <bind> tags using the transport name 'zip'. -# See the documentation of <link> and <bind>, respectively. -# - - -######################################################################### -# # -# - InspIRCd Development Team - # -# http://www.inspircd.org # -# # -######################################################################### diff --git a/src/modules/m_services.cpp b/src/modules/m_services.cpp deleted file mode 100644 index 92be81f9d..000000000 --- a/src/modules/m_services.cpp +++ /dev/null @@ -1,245 +0,0 @@ -/* +------------------------------------+ - * | Inspire Internet Relay Chat Daemon | - * +------------------------------------+ - * - * InspIRCd: (C) 2002-2008 InspIRCd Development Team - * See: http://www.inspircd.org/wiki/index.php/Credits - * - * This program is free but copyrighted software; see - * the file COPYING for details. - * - * --------------------------------------------------- - */ - -#include "inspircd.h" - -static bool kludgeme = false; - -/* $ModDesc: Povides support for services +r user/chan modes and more */ - -/** Channel mode +r - mark a channel as identified - */ -class Channel_r : public ModeHandler -{ - - public: - Channel_r(InspIRCd* Instance) : ModeHandler(Instance, 'r', 0, 0, false, MODETYPE_CHANNEL, false) { } - - ModeAction OnModeChange(User* source, User* dest, Channel* channel, std::string ¶meter, bool adding, bool) - { - // only a u-lined server may add or remove the +r mode. - if ((ServerInstance->ULine(source->nick.c_str())) || (ServerInstance->ULine(source->server)) || (!*source->server || (source->nick.find('.') != std::string::npos))) - { - // Only change the mode if it's not redundant - if ((adding && !channel->IsModeSet('r')) || (!adding && channel->IsModeSet('r'))) - { - channel->SetMode('r',adding); - return MODEACTION_ALLOW; - } - - return MODEACTION_DENY; - } - else - { - source->WriteNumeric(500, "%s :Only a server may modify the +r channel mode", source->nick.c_str()); - return MODEACTION_DENY; - } - } -}; - -/** User mode +r - mark a user as identified - */ -class User_r : public ModeHandler -{ - - public: - User_r(InspIRCd* Instance) : ModeHandler(Instance, 'r', 0, 0, false, MODETYPE_USER, false) { } - - ModeAction OnModeChange(User* source, User* dest, Channel* channel, std::string ¶meter, bool adding, bool) - { - if ((kludgeme) || (ServerInstance->ULine(source->nick.c_str())) || (ServerInstance->ULine(source->server)) || (!*source->server || (source->nick.find('.') != std::string::npos))) - { - if ((adding && !dest->IsModeSet('r')) || (!adding && dest->IsModeSet('r'))) - { - dest->SetMode('r',adding); - return MODEACTION_ALLOW; - } - return MODEACTION_DENY; - } - else - { - source->WriteNumeric(500, "%s :Only a server may modify the +r user mode", source->nick.c_str()); - return MODEACTION_DENY; - } - } -}; - -/** Channel mode +R - registered users only - */ -class Channel_R : public SimpleChannelModeHandler -{ - public: - Channel_R(InspIRCd* Instance) : SimpleChannelModeHandler(Instance, 'R') { } -}; - -/** User mode +R - only allow PRIVMSG and NOTICE from registered users - */ -class User_R : public SimpleUserModeHandler -{ - public: - User_R(InspIRCd* Instance) : SimpleUserModeHandler(Instance, 'R') { } -}; - -/** Channel mode +M - only allow privmsg and notice to channel from registered users - */ -class Channel_M : public SimpleChannelModeHandler -{ - public: - Channel_M(InspIRCd* Instance) : SimpleChannelModeHandler(Instance, 'M') { } -}; - -/** Dreamnforge-like services support - */ -class ModuleServices : public Module -{ - - Channel_r* m1; - Channel_R* m2; - Channel_M* m3; - User_r* m4; - User_R* m5; - public: - ModuleServices(InspIRCd* Me) - : Module(Me) - { - - m1 = new Channel_r(ServerInstance); - m2 = new Channel_R(ServerInstance); - m3 = new Channel_M(ServerInstance); - m4 = new User_r(ServerInstance); - m5 = new User_R(ServerInstance); - - if (!ServerInstance->Modes->AddMode(m1) || !ServerInstance->Modes->AddMode(m2) || !ServerInstance->Modes->AddMode(m3) - || !ServerInstance->Modes->AddMode(m4) || !ServerInstance->Modes->AddMode(m5)) - { - throw ModuleException("You cannot load m_services.so and m_services_account.so at the same time (or some other module has claimed our modes)!"); - } - - kludgeme = false; - Implementation eventlist[] = { I_OnWhois, I_OnUserPostNick, I_OnUserPreMessage, I_OnUserPreNotice, I_OnUserPreJoin }; - ServerInstance->Modules->Attach(eventlist, this, 5); - } - - /* <- :stitch.chatspike.net 307 w00t w00t :is a registered nick */ - virtual void OnWhois(User* source, User* dest) - { - if (dest->IsModeSet('r')) - { - /* user is registered */ - ServerInstance->SendWhoisLine(source, dest, 307, "%s %s :is a registered nick", source->nick.c_str(), dest->nick.c_str()); - } - } - - - virtual void OnUserPostNick(User* user, const std::string &oldnick) - { - /* On nickchange, if they have +r, remove it */ - if (user->IsModeSet('r') && assign(user->nick) != oldnick) - { - std::vector<std::string> modechange; - modechange.push_back(user->nick); - modechange.push_back("-r"); - kludgeme = true; - ServerInstance->SendMode(modechange,user); - kludgeme = false; - } - } - - virtual int OnUserPreMessage(User* user,void* dest,int target_type, std::string &text, char status, CUList &exempt_list) - { - if (!IS_LOCAL(user)) - return 0; - - if (target_type == TYPE_CHANNEL) - { - Channel* c = (Channel*)dest; - if ((c->IsModeSet('M')) && (!user->IsModeSet('r'))) - { - if ((ServerInstance->ULine(user->nick.c_str())) || (ServerInstance->ULine(user->server))) - { - // user is ulined, can speak regardless - return 0; - } - // user messaging a +M channel and is not registered - user->WriteNumeric(477, "%s %s :You need a registered nickname to speak on this channel", user->nick.c_str(), c->name.c_str()); - return 1; - } - } - if (target_type == TYPE_USER) - { - User* u = (User*)dest; - if ((u->IsModeSet('R')) && (!user->IsModeSet('r'))) - { - if ((ServerInstance->ULine(user->nick.c_str())) || (ServerInstance->ULine(user->server))) - { - // user is ulined, can speak regardless - return 0; - } - // user messaging a +R user and is not registered - user->WriteNumeric(477, "%s %s :You need a registered nickname to message this user", user->nick.c_str(), u->nick.c_str()); - return 1; - } - } - return 0; - } - - virtual int OnUserPreNotice(User* user,void* dest,int target_type, std::string &text, char status, CUList &exempt_list) - { - return OnUserPreMessage(user,dest,target_type,text,status, exempt_list); - } - - virtual int OnUserPreJoin(User* user, Channel* chan, const char* cname, std::string &privs, const std::string &keygiven) - { - if (chan) - { - if (chan->IsModeSet('R')) - { - if (!user->IsModeSet('r')) - { - if ((ServerInstance->ULine(user->nick.c_str())) || (ServerInstance->ULine(user->server))) - { - // user is ulined, won't be stopped from joining - return 0; - } - // joining a +R channel and not identified - user->WriteNumeric(477, "%s %s :You need a registered nickname to join this channel", user->nick.c_str(), chan->name.c_str()); - return 1; - } - } - } - return 0; - } - - virtual ~ModuleServices() - { - kludgeme = true; - ServerInstance->Modes->DelMode(m1); - ServerInstance->Modes->DelMode(m2); - ServerInstance->Modes->DelMode(m3); - ServerInstance->Modes->DelMode(m4); - ServerInstance->Modes->DelMode(m5); - delete m1; - delete m2; - delete m3; - delete m4; - delete m5; - } - - virtual Version GetVersion() - { - return Version("$Id$",VF_COMMON|VF_VENDOR,API_VERSION); - } -}; - - -MODULE_INIT(ModuleServices) diff --git a/win/inspircdVC80.vcproj b/win/inspircdVC80.vcproj index 1e5c670c9..7ddb288a1 100644 --- a/win/inspircdVC80.vcproj +++ b/win/inspircdVC80.vcproj @@ -3426,26 +3426,6 @@ </FileConfiguration>
</File>
<File
- RelativePath="..\src\modules\m_services.cpp"
- >
- <FileConfiguration
- Name="Debug|Win32"
- ExcludedFromBuild="true"
- >
- <Tool
- Name="VCCLCompilerTool"
- />
- </FileConfiguration>
- <FileConfiguration
- Name="Release|Win32"
- ExcludedFromBuild="true"
- >
- <Tool
- Name="VCCLCompilerTool"
- />
- </FileConfiguration>
- </File>
- <File
RelativePath="..\src\modules\m_services_account.cpp"
>
<FileConfiguration
diff --git a/win/inspircdVC90.vcproj b/win/inspircdVC90.vcproj index 74e1e754a..9ddb5b47d 100644 --- a/win/inspircdVC90.vcproj +++ b/win/inspircdVC90.vcproj @@ -3363,26 +3363,6 @@ </FileConfiguration>
</File>
<File
- RelativePath="..\src\modules\m_services.cpp"
- >
- <FileConfiguration
- Name="Debug|Win32"
- ExcludedFromBuild="true"
- >
- <Tool
- Name="VCCLCompilerTool"
- />
- </FileConfiguration>
- <FileConfiguration
- Name="Release|Win32"
- ExcludedFromBuild="true"
- >
- <Tool
- Name="VCCLCompilerTool"
- />
- </FileConfiguration>
- </File>
- <File
RelativePath="..\src\modules\m_services_account.cpp"
>
<FileConfiguration
|