summaryrefslogtreecommitdiff
path: root/data
diff options
context:
space:
mode:
authorAdam <Adam@anope.org>2013-05-05 01:55:04 -0400
committerAdam <Adam@anope.org>2013-05-05 01:55:04 -0400
commit1d0bb9b26b7ad58ab0bf979ac046f4511b3bf12b (patch)
tree4486f0784bdf050fd7eb225c0cb9df352ce1f45a /data
parent781defb7076ddfddf723ca08cd0a518b6657b64f (diff)
Rework the config file reader to be much more flexible and move many configuration directives to the actual modules they are used in.
Diffstat (limited to 'data')
-rw-r--r--data/botserv.example.conf86
-rw-r--r--data/chanserv.example.conf105
-rw-r--r--data/chanstats.example.conf5
-rw-r--r--data/example.conf267
-rw-r--r--data/global.example.conf30
-rw-r--r--data/hostserv.example.conf52
-rw-r--r--data/memoserv.example.conf32
-rw-r--r--data/modules.example.conf84
-rw-r--r--data/nickserv.example.conf286
-rw-r--r--data/operserv.example.conf237
10 files changed, 592 insertions, 592 deletions
diff --git a/data/botserv.example.conf b/data/botserv.example.conf
index b0cc513ae..8f67c4be2 100644
--- a/data/botserv.example.conf
+++ b/data/botserv.example.conf
@@ -56,17 +56,14 @@ service
*
* Provides essential functionality for BotServ.
*/
-module { name = "botserv" }
-
-/*
- * Configuration for BotServ provided by bs_main.
- */
-botserv
+module
{
+ name = "botserv"
+
/*
* The name of the client that should be BotServ.
*/
- name = "BotServ"
+ client = "BotServ"
/*
* The default bot options for newly registered channels. Note that changing these options
@@ -92,19 +89,6 @@ botserv
minusers = 1
/*
- * The maximum number of entries a single bad words list can have. Setting it too high can
- * reduce performance slightly.
- */
- badwordsmax = 32
-
- /*
- * The amount of time that data for a user is valid in BotServ. If the data exceeds this time,
- * it is reset or deleted depending on the case. Do not set it too high, otherwise your
- * resources will be slightly affected.
- */
- keepdata = 10m
-
- /*
* The bots are currently not affected by any modes or bans when they try to join a channel.
* But some people may want to make it act like a real bot, that is, for example, remove all
* the bans affecting the bot before joining the channel, remove a ban that affects the bot
@@ -116,26 +100,18 @@ botserv
#smartjoin = yes
/*
- * If set, the bots will use a kick reason that does not state the word when it is kicking.
- * This is especially useful if you have young people on your network.
- *
- * This directive is optional.
+ * Defines the prefixes for fantasy commands in channels. One of these characters will have to be prepended
+ * to all fantasy commands. If you choose "!", for example, fantasy commands will be "!kick",
+ * "!op", etc. This directive is optional, if left out, the default fantasy character is "!".
*/
- gentlebadwordreason = yes
+ #fantasycharacter = "!."
/*
- * If set, BotServ will use case sensitive checking for badwords.
+ * Modes to set on service bots when they join channels, comment this out for no modes
*
* This directive is optional.
*/
- #casesensitive = yes
-
- /*
- * Defines the prefixes for fantasy commands in channels. One of these characters will have to be prepended
- * to all fantasy commands. If you choose "!", for example, fantasy commands will be "!kick",
- * "!op", etc. This directive is optional, if left out, the default fantasy character is "!".
- */
- #fantasycharacter = "!."
+ botmodes = "ao"
}
/*
@@ -184,7 +160,22 @@ bs_autoassign
*
* Used for controlling the channel badword list.
*/
-module { name = "bs_badwords" }
+module
+{
+ name = "bs_badwords"
+
+ /*
+ * The maximum number of entries a single bad words list can have.
+ */
+ badwordsmax = 32
+
+ /*
+ * If set, BotServ will use case sensitive checking for badwords.
+ *
+ * This directive is optional.
+ */
+ #casesensitive = yes
+}
command { service = "BotServ"; name = "BADWORDS"; command = "botserv/badwords"; }
/*
@@ -246,7 +237,26 @@ command { service = "BotServ"; name = "INFO"; command = "botserv/info"; }
*
* Used for configuring what bots should kick for.
*/
-module { name = "bs_kick" }
+module
+{
+ name = "bs_kick"
+
+ /*
+ * The amount of time that data for a user is valid in BotServ. If the data exceeds this time,
+ * it is reset or deleted depending on the case. Do not set it too high, otherwise your
+ * resources will be slightly affected.
+ */
+ keepdata = 10m
+
+ /*
+ * If set, the bots will use a kick reason that does not state the word when it is kicking.
+ * This is especially useful if you have young people on your network.
+ *
+ * This directive is optional.
+ */
+ gentlebadwordreason = yes
+}
+
command { service = "BotServ"; name = "KICK"; command = "botserv/kick"; }
command { service = "BotServ"; name = "KICK AMSG"; command = "botserv/kick/amsg"; }
command { service = "BotServ"; name = "KICK BADWORDS"; command = "botserv/kick/badwords"; }
@@ -285,7 +295,8 @@ command { service = "BotServ"; name = "SET PRIVATE"; command = "botserv/set/priv
/* Fantasy commands
*
* Fantasy commands can be executed in channels that have a BotServ bot by prefixing the
- * command with one of the fantasy characters configured in botserv:fantasycharacter.
+ * command with one of the fantasy characters configured in botserv's fantasycharacter
+ * directive.
*
* Sane defaults are provided below that do not need to be edited unless you wish to change the default behavior.
*/
@@ -321,7 +332,6 @@ fantasy { name = "UNSUSPEND"; command = "chanserv/unsuspend"; permission = "chan
fantasy { name = "UP"; command = "chanserv/up"; }
fantasy { name = "VOP"; command = "chanserv/vop"; }
-
/* Use m_rewrite to rewrite the op, deop, etc. fantasy commands (see chanserv.conf). */
fantasy { name = "OWNER"; command = "rewrite"; }
fantasy { name = "DEOWNER"; command = "rewrite"; }
diff --git a/data/chanserv.example.conf b/data/chanserv.example.conf
index 08954eaa6..6dc40991a 100644
--- a/data/chanserv.example.conf
+++ b/data/chanserv.example.conf
@@ -56,17 +56,14 @@ service
*
* Provides essential functionality for ChanServ.
*/
-module { name = "chanserv" }
-
-/*
- * Configuration for ChanServ provided by cs_main.
- */
-chanserv
+module
{
+ name = "chanserv"
+
/*
* The name of the client that should be ChanServ.
*/
- name = "ChanServ"
+ client = "ChanServ"
/*
* The default options for newly registered channels. Note that changing these options
@@ -95,7 +92,7 @@ chanserv
* This directive is optional, if left blank, the options will default to keeptopic, secure, securefounder,
* and signkick. If you really want no defaults, use "none" by itself as the option.
*/
- defaults="keeptopic peace secure securefounder signkick"
+ defaults = "keeptopic peace secure securefounder signkick"
/*
* The maximum number of channels which may be registered to a single nickname.
@@ -114,23 +111,7 @@ chanserv
expire = 14d
/*
- * The length of time before a suspended channel becomes unsuspended.
- *
- * This directive is optional.
- * If not set, the default is never.
- */
- #suspendexpire = 90d
-
- /*
- * The lenth of time before a forbidden channel drops.
- *
- * This directive is optional.
- * If not set, the default is never.
- */
- #forbidexpire = 90d
-
- /*
- * The default ban type for newly registered channels (and when importing old databases).
+ * The default ban type for newly registered channels.
*
* defbantype can be:
*
@@ -147,27 +128,12 @@ chanserv
accessmax = 1024
/*
- * The maximum number of entries on a channel's autokick list.
- */
- autokickmax = 32
-
- /*
- * The default reason for an autokick if none is given.
- */
- autokickreason = "User has been banned from the channel"
-
- /*
* The length of time ChanServ stays in a channel after kicking a user from a channel they are not
* permitted to be in. This only occurs when the user is the only one in the channel.
*/
inhabit = 15s
/*
- * The maximum number of channels to be returned for a ChanServ LIST command.
- */
- listmax = 50
-
- /*
* Allow only IRC Operators to use ChanServ.
*
* This directive is optional.
@@ -195,18 +161,6 @@ chanserv
require = "r"
/*
- * Some IRCds can enforce mode locks server-side. This reduces the spam caused by
- * services immediately reversing mode changes for locked modes.
- */
- use_server_side_mlock = yes
-
- /*
- * Some IRCds can enforce topic locks server-side. This reduces the spam caused by
- * services immediately reversing topic changes.
- */
- use_server_side_topiclock = yes
-
- /*
* The maximum length of the reason field for user commands such as chanserv/kick
* and chanserv/ban.
*/
@@ -902,7 +856,21 @@ command { service = "ChanServ"; name = "LEVELS"; command = "chanserv/levels"; gr
*
* Used for preventing users from joining channels.
*/
-module { name = "cs_akick" }
+module
+{
+ name = "cs_akick"
+
+ /*
+ * The maximum number of entries on a channel's autokick list.
+ */
+ autokickmax = 32
+
+ /*
+ * The default reason for an autokick if none is given.
+ */
+ autokickreason = "User has been banned from the channel"
+}
+
command { service = "ChanServ"; name = "AKICK"; command = "chanserv/akick"; group = "chanserv/management"; }
/*
@@ -952,13 +920,14 @@ command { service = "ChanServ"; name = "ENFORCE"; command = "chanserv/enforce";
*
* Used to configure entry messages sent to users when they join a channel.
*/
-module { name = "cs_entrymsg" }
-command { service = "ChanServ"; name = "ENTRYMSG"; command = "chanserv/entrymsg"; group = "chanserv/management"; }
-cs_entrymsg
+module
{
+ name = "cs_entrymsg"
+
/* The maximum number of entrymsgs allowed per channel. If not set, defaults to 5. */
maxentries = 5
}
+command { service = "ChanServ"; name = "ENTRYMSG"; command = "chanserv/entrymsg"; group = "chanserv/management"; }
/*
* cs_flags
@@ -1018,7 +987,16 @@ command { service = "ChanServ"; name = "KICK"; command = "chanserv/kick"; }
*
* Used for retrieving and searching the registered channel list.
*/
-module { name = "cs_list" }
+module
+{
+ name = "cs_list"
+
+ /*
+ * The maximum number of channels to be returned for a ChanServ LIST command.
+ */
+ listmax = 50
+}
+
command { service = "ChanServ"; name = "LIST"; command = "chanserv/list"; permission = "chanserv/list"; group = "chanserv/admin"; }
/*
@@ -1143,7 +1121,18 @@ command { service = "ChanServ"; name = "STATUS"; command = "chanserv/status"; }
*
* Used for suspending and unsuspending channels. Suspended channels can not be used but their settings are stored.
*/
-module { name = "cs_suspend" }
+module
+{
+ name = "cs_suspend"
+
+ /*
+ * The length of time before a suspended channel expires.
+ *
+ * This directive is optional.
+ * If not set, the default is never.
+ */
+ expire = 90d
+}
command { service = "ChanServ"; name = "SUSPEND"; command = "chanserv/suspend"; permission = "chanserv/suspend"; group = "chanserv/admin"; }
command { service = "ChanServ"; name = "UNSUSPEND"; command = "chanserv/unsuspend"; permission = "chanserv/suspend"; group = "chanserv/admin"; }
diff --git a/data/chanstats.example.conf b/data/chanstats.example.conf
index 0f131a85a..f686cd216 100644
--- a/data/chanstats.example.conf
+++ b/data/chanstats.example.conf
@@ -3,9 +3,10 @@
* Make sure BotServ, ChanServ and NickServ are running.
*/
-module { name = "m_chanstats" }
-chanstats
+module
{
+ name = "m_chanstats"
+
/*
* The name of this engine.
* This must match with the name of an SQL engine block.
diff --git a/data/example.conf b/data/example.conf
index 55390e391..82be8c9b5 100644
--- a/data/example.conf
+++ b/data/example.conf
@@ -21,6 +21,15 @@
* foo = bar
* }
*
+ * Note that nameless blocks are allowed and are often used with comments to allow
+ * easially commenting an entire block, for example:
+ * #foobar
+ * {
+ * moo = "cow"
+ * foo = bar
+ * }
+ * is an entirely commented block.
+ *
* Keys are case insensitive. Values depend on what key - generally, information is
* given in the key comment. The quoting of values (and most other syntax) is quite
* flexible, however, please do not forget to quote your strings:
@@ -40,11 +49,6 @@
*
* "86400", "86400s", "1440m", "24h", "1d"
*
- * CAUTION:
- * Please note that your services might _CRASH_ if you add more format-
- * strings (%s, %d, etc.) to custom messages than Anope needs. Use the
- * default messages to see how many format-strings are needed.
- *
* In the documentation for each directive, one of the following will be
* included to indicate whether an option is required:
*
@@ -106,19 +110,17 @@ define
* the output from it will be included into your configuration.
*/
-/*
-include
+#include
{
type = "file"
name = "some.conf"
}
-include
+#include
{
type = "executable"
name = "/usr/bin/wget -q -O - http://some.misconfigured.network.com/services.conf"
}
-*/
/*
* [REQUIRED] IRCd Config
@@ -234,7 +236,33 @@ serverinfo
* - ratbox
* - unreal
*/
-module { name = "inspircd12" }
+module
+{
+ name = "inspircd20"
+
+ /*
+ * Some protocol modules can enforce mode locks server-side. This reduces the spam caused by
+ * services immediately reversing mode changes for locked modes.
+ *
+ * If the protocol module you have loaded does not support this, this setting will have no effect.
+ */
+ use_server_side_mlock = yes
+
+ /*
+ * Some protocol modules can enforce topic locks server-side. This reduces the spam caused by
+ * services immediately reversing topic changes.
+ *
+ * If the protocol module you have loaded does not support this, this setting will have no effect.
+ */
+ use_server_side_topiclock = yes
+
+ /*
+ * Some IRCds allow "SASL" authentication to let users identify to Services
+ * during the IRCd user registration process. If set, Services will allow
+ * authenticating users through this mechanism.
+ */
+ sasl = yes
+}
/*
* [REQUIRED] Network Information
@@ -279,6 +307,34 @@ networkinfo
* Comment out or set to 0 to disable.
*/
modelistsize = 100
+
+ /*
+ * The characters allowed in hostnames. This is used for validating hostnames given
+ * to services, such as BotServ bot hostnames and user vhosts. Changing this is not
+ * recommended unless you know for sure your IRCd supports whatever characters you are
+ * wanting to use. Telling services to set a vHost containing characters your IRCd
+ * disallows could potentially break the IRCd and/or Services.
+ *
+ * It is recommended you DON'T change this.
+ */
+ vhost_chars = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789.-"
+
+ /*
+ * If set to true, allows vHosts to not contain dots (.).
+ * Newer IRCds generally do not have a problem with this, but the same warning as
+ * vhost_chars applies.
+ *
+ * It is recommended you DON'T change this.
+ */
+ allow_undotted_vhosts = false
+
+ /*
+ * The characters that are not allowed to be at the very beginning or very ending
+ * of a vHost. The same warning as vhost_chars applies.
+ *
+ * It is recommended you DON'T change this.
+ */
+ disallow_start_or_end = ".-"
}
/*
@@ -328,19 +384,6 @@ options
#seed = 9866235
/*
- * Allows Services to continue file write operations (i.e. database saving)
- * even if the original file cannot be backed up. Enabling this option may
- * allow Services to continue operation under conditions where it might
- * otherwise fail, such as a nearly-full disk.
- *
- * NOTE: Enabling this option can cause irrecoverable data loss under some
- * conditions, so make CERTAIN you know what you're doing when you enable it!
- *
- * This directive is optional, and you are discouraged against enabling it.
- */
- #nobackupokay = yes
-
- /*
* If set, Services will perform more stringent checks on passwords. If this
* isn't set, Services will only disallow a password if it is the same as the
* entity (nickname name) with which it is associated. When set, however,
@@ -406,41 +449,15 @@ options
* will use doing this. Higher values will cause less accurate timing but
* less CPU usage.
*
- * This shouldn't be set any higher than 10 seconds, and 1 second is best
- * if your system is powerful enough (or your network small enough) to
- * handle it. 0 will cause the timeout list to be checked every time
- * through the main loop, which will probably slow down Services too much
- * to be useful on most networks.
- *
* Note that this value is not an absolute limit on the period between
* checks of the timeout list; the previous may be as great as readtimeout
* (above) during periods of inactivity.
*
- * If this directive is not given, it will default to 0. See the 2nd paragraph
- * above for performance impacts if you do this.
+ * If this directive is not given, it will default to 0.
*/
timeoutcheck = 3s
/*
- * Sets the number of days backups of databases are kept. If you don't give it,
- * or if you set it to 0, Services won't backup the databases.
- *
- * NOTE: Services must run 24 hours a day for this feature to work.
- *
- * This directive is optional, but recommended.
- */
- keepbackups = 3
-
- /*
- * If set, Services will require a reason when a FORBID is added, else the
- * reason is optional. This directive also applies to SUSPENDed channels as
- * well.
- *
- * This directive is optional.
- */
- forceforbidreason = yes
-
- /*
* If set, this will allow users to let Services send PRIVMSGs to them
* instead of NOTICEs. Also see the defmsg option of nickserv:defaults,
* which also toggles the default communication (PRIVMSG or NOTICE) to
@@ -471,35 +488,6 @@ options
#hidestatso = yes
/*
- * Prevents users from registering their nick if they are not connected
- * for at least the given number of seconds.
- *
- * This directive is optional.
- */
- #nickregdelay = 30
-
- /*
- * If set, forbids the registration of nicks that contain an existing
- * nick with Services access. For example, if Tester is a Services Oper,
- * you can't register NewTester or Tester123 unless you are an IRC
- * Operator.
- *
- * NOTE: If you enable this, you will have to be logged in as an IRC
- * operator in order to register a Services Root nick when setting up
- * Anope for the first time.
- *
- * This directive is optional.
- */
- #restrictopernicks = yes
-
- /*
- * The number of LOGON/OPER news items to display when a user logs on.
- *
- * This directive is optional, if no set it will default to 3.
- */
- #newscount = 3
-
- /*
* A space-separated list of ulined servers on your network, it is assumed that
* the servers in this list are allowed to set channel modes and Services will
* not attempt to reverse their mode changes.
@@ -511,16 +499,9 @@ options
#ulineservers = "stats.your.network"
/*
- * Modes to set on service bots when they join channels, comment this out for no modes
- *
- * This directive is optional.
- */
- botmodes = "ao"
-
- /*
- * How long to wait between connection retries, in seconds.
+ * How long to wait between connection retries with the uplink(s).
*/
- retrywait = 60
+ retrywait = 60s
/*
* If set, Services will hide commands that users don't have the privileges to execute
@@ -539,6 +520,39 @@ options
* Note for this to work the regex module providing the regex engine must be loaded.
*/
regexengine = "regex/pcre"
+
+ /*
+ * A list of languages to load on startup that will be available in /nickserv set language.
+ * Useful if you translate Anope to your language. (Explained further in docs/LANGUAGE).
+ * Note that english should not be listed here because it is the base language.
+ *
+ * Removing .UTF-8 will instead use the default encoding for the language, eg. iso-8859-1 for western European languages.
+ */
+ languages = "ca_ES.UTF-8 de_DE.UTF-8 el_GR.UTF-8 es_ES.UTF-8 fr_FR.UTF-8 hu_HU.UTF-8 it_IT.UTF-8 nl_NL.UTF-8 pl_PL.UTF-8 pt_PT.UTF-8 ru_RU.UTF-8 tr_TR.UTF-8"
+
+ /*
+ * Default language that non- and newly-registered nicks will receive messages in.
+ * Leave empty to default to English.
+ */
+ #defaultlanguage = "es_ES.UTF-8"
+
+ /*
+ * The username, and possibly hostname, used for fake users created when Services needs to
+ * hold a nickname.
+ */
+ enforceruser = "enforcer"
+ enforcerhost = "localhost.net"
+
+ /*
+ * The length of time Services hold nicknames.
+ */
+ releasetimeout = 1m
+
+ /*
+ * When a user's nick is forcibly changed to enforce a "nick kill", their new nick will start
+ * with this value. The rest will be made up of 6 or 7 digits.
+ */
+ guestnickprefix = "Guest"
}
/*
@@ -865,7 +879,7 @@ opertype
* As with all permissions, make sure to only give trustworthy people access to Services.
*/
-oper
+#oper
{
/* The nickname of this services oper */
#name = "nick1"
@@ -893,19 +907,17 @@ oper
#vhost = "oper.mynet"
}
-/*
-oper
+#oper
{
name = "nick2"
type = "Services Administrator"
}
-oper
+#oper
{
name = "nick3"
type = "Helper"
}
-*/
/*
* [OPTIONAL] Mail Config
@@ -1048,9 +1060,10 @@ mail
* You should only use this to upgrade old databases to a newer database format by loading
* other database modules in addition to this one, which will be used when saving databases.
*/
-#module { name = "db_old" }
-db_old
+#module
{
+ name = "db_old"
+
/*
* This is the encryption type used by the databases. This must be set correctly or
* your passwords will not work. Valid options are: md5, oldmd5, sha1, and plain.
@@ -1067,28 +1080,45 @@ db_old
* Then unload this and restart Anope, loading from the new database.
*/
#module { name = "db_plain" }
-db_plain
-{
- /*
- * The database name db_plain should use
- */
- database = "anope.db"
-}
/*
* db_flatfile
*
* This is the default flatfile database format.
*/
-module { name = "db_flatfile" }
-db_flatfile
+module
{
+ name = "db_flatfile"
+
/*
* The database name db_flatfile should use
*/
database = "anope.db"
/*
+ * Sets the number of days backups of databases are kept. If you don't give it,
+ * or if you set it to 0, Services won't backup the databases.
+ *
+ * NOTE: Services must run 24 hours a day for this feature to work.
+ *
+ * This directive is optional, but recommended.
+ */
+ keepbackups = 3
+
+ /*
+ * Allows Services to continue file write operations (i.e. database saving)
+ * even if the original file cannot be backed up. Enabling this option may
+ * allow Services to continue operation under conditions where it might
+ * otherwise fail, such as a nearly-full disk.
+ *
+ * NOTE: Enabling this option can cause irrecoverable data loss under some
+ * conditions, so make CERTAIN you know what you're doing when you enable it!
+ *
+ * This directive is optional, and you are discouraged against enabling it.
+ */
+ #nobackupokay = yes
+
+ /*
* If enabled, services will fork a child process to save databases.
*
* This is only useful with very large databases, with hundreds
@@ -1099,29 +1129,24 @@ db_flatfile
}
/*
- * db_sql
+ * db_sql and db_sql_live
*
- * This module allows saving and loading databases using one of the SQL engines.
+ * db_sql module allows saving and loading databases using one of the SQL engines.
* This module loads the databases once on startup, then incrementally updates
* objects in the database as they are changed within Anope in real time. Changes
* to the SQL tables not done by Anope will have no effect and will be overwritten.
*
- */
-#module { name = "db_sql" }
-
-/*
- * db_sql_live
- *
- * This module allows saving and loading databases using one of the SQL engines.
+ * db_sql_live module allows saving and loading databases using one of the SQL engines.
* This module reads and writes to SQL in real time. Changes to the SQL tables
* will be immediately reflected into Anope. This module should not be loaded
* in conjunction with db_sql.
+ *
*/
-#module { name = "db_sql_live" }
-
-/* Configuration block for both db_sql and db_sql_live */
-db_sql
+#module
{
+ name = "db_sql"
+ #name = "db_sql_live
+
/*
* The SQL service db_sql(_live) should use, these are configured in modules.conf.
* For MySQL, this should probably be mysql/main.
@@ -1210,7 +1235,7 @@ include
* Requires a MySQL Database.
*/
#include
-#{
-# type = "file"
-# name = "chanstats.example.conf"
-#}
+{
+ type = "file"
+ name = "chanstats.example.conf"
+}
diff --git a/data/global.example.conf b/data/global.example.conf
index 2ae7cdc99..b013537d6 100644
--- a/data/global.example.conf
+++ b/data/global.example.conf
@@ -56,38 +56,30 @@ service
*
* Provides essential functionality for Global.
*/
-module { name = "global" }
-
-/*
- * Configuration for Global provided by gl_main.
- */
-global
+module
{
+ name = "global"
+
/*
* The name of the client that should be Global.
*/
- name = "Global"
+ client = "Global"
/*
- * If set, Services will send global messages on starting up and shutting
- * down/restarting.
+ * This is the global message that will be sent when Services are being
+ * shutdown/restarted.
*
* This directive is optional.
*/
- #globaloncycle = yes
-
- /*
- * This is the global message that will be sent when Services are being
- * shutdown/restarted. This directive is only required if you enable
- * globaloncycle above.
- */
- globaloncycledown = "Services are restarting, they will be back shortly - please be good while we're gone"
+ #globaloncycledown = "Services are restarting, they will be back shortly - please be good while we're gone"
/*
* This is the global message that will be sent when Services (re)join the
- * network. This directive is only required if you enable globaloncycle above.
+ * network.
+ *
+ * This directive is optional.
*/
- globaloncycleup = "Services are now back online - have a nice day"
+ #globaloncycleup = "Services are now back online - have a nice day"
/*
* If set, Services will hide the IRC Operator's nick in a global
diff --git a/data/hostserv.example.conf b/data/hostserv.example.conf
index 1d406ef5b..10063ae7d 100644
--- a/data/hostserv.example.conf
+++ b/data/hostserv.example.conf
@@ -56,45 +56,14 @@ service
*
* Provides essential functionality for HostServ.
*/
-module { name = "hostserv" }
-
-/*
- * Configuration for HostServ provided by hs_main.
- */
-hostserv
+module
{
- /*
- * The name of the client that should be HostServ.
- */
- name = "HostServ"
+ name = "hostserv"
/*
- * The characters allowed in a vHost. Changing this is not recommended unless
- * you know for sure your IRCd supports whatever characters you are wanting to use.
- * Telling services to set a vHost containing characters your IRCd disallows could
- * potentially break the IRCd and/or Services. Note these are 1 byte characters, so
- * UTF-8 characters will not work.
- *
- * It is recommended you DON'T change this.
- */
- vhost_chars = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789.-"
-
- /*
- * If set to true, allows vHosts to not contain dots (.).
- * Newer IRCds generally do not have a problem with this, but the same warning as
- * vhost_chars applies.
- *
- * It is recommended you DON'T change this.
- */
- allow_undotted_vhosts = false
-
- /*
- * The characters that are not allowed to be at the very beginning or very ending
- * of a vHost. The same warning as vhost_chars applies.
- *
- * It is recommended you DON'T change this.
+ * The name of the client that should be HostServ.
*/
- disallow_start_or_end = ".-"
+ client = "HostServ"
}
/*
@@ -169,13 +138,10 @@ command { service = "HostServ"; name = "ON"; command = "hostserv/on"; }
*
* Used to manage vHosts requested by users.
*/
-module { name = "hs_request" }
-command { service = "HostServ"; name = "REQUEST"; command = "hostserv/request"; }
-command { service = "HostServ"; name = "ACTIVATE"; command = "hostserv/activate"; permission = "hostserv/set"; }
-command { service = "HostServ"; name = "REJECT"; command = "hostserv/reject"; permission = "hostserv/set"; }
-command { service = "HostServ"; name = "WAITING"; command = "hostserv/waiting"; permission = "hostserv/set"; }
-hs_request
+module
{
+ name = "hs_request"
+
/*
* If set, Services will send a memo to the user requesting a vHost when it's been
* approved or rejected.
@@ -187,6 +153,10 @@ hs_request
*/
#memooper = yes
}
+command { service = "HostServ"; name = "REQUEST"; command = "hostserv/request"; }
+command { service = "HostServ"; name = "ACTIVATE"; command = "hostserv/activate"; permission = "hostserv/set"; }
+command { service = "HostServ"; name = "REJECT"; command = "hostserv/reject"; permission = "hostserv/set"; }
+command { service = "HostServ"; name = "WAITING"; command = "hostserv/waiting"; permission = "hostserv/set"; }
/*
* hs_set
diff --git a/data/memoserv.example.conf b/data/memoserv.example.conf
index 40678bf53..6e4fd1e8d 100644
--- a/data/memoserv.example.conf
+++ b/data/memoserv.example.conf
@@ -56,18 +56,14 @@ service
*
* Provides essential functionality for MemoServ.
*/
-module { name = "memoserv" }
-
-/*
- * Configuration for MemoServ provided by ms_main.
- */
-memoserv
+module
{
+ name = "memoserv"
/*
* The name of the client that should be MemoServ. Clients are configured
* with the service blocks.
*/
- name = "MemoServ"
+ client = "MemoServ"
/*
* The maximum number of memos a user is allowed to keep by default. Normal users may set the
@@ -88,16 +84,6 @@ memoserv
* This directive is optional, but recommended.
*/
senddelay = 3s
-
- /*
- * Allow the use of memo receipts for the following groups:
- *
- * 1 - Opers Only
- * 2 - Everybody
- *
- * This directive is optional.
- */
- #memoreceipt = 1
}
/*
@@ -193,7 +179,17 @@ command { service = "MemoServ"; name = "READ"; command = "memoserv/read"; }
*
* Requires configuring memoserv:memoreceipt.
*/
-#module { name = "ms_rsend" }
+#module
+{
+ name = "ms_rsend"
+
+ /*
+ * Only allow Services Operators to use ms_rsend.
+ *
+ * This directive is optional.
+ */
+ operonly = false
+}
#command { service = "MemoServ"; name = "RSEND"; command = "memoserv/rsend"; }
/*
diff --git a/data/modules.example.conf b/data/modules.example.conf
index ef862221f..f1a5b8d7f 100644
--- a/data/modules.example.conf
+++ b/data/modules.example.conf
@@ -21,9 +21,10 @@ module { name = "help" }
* Adds support for the DNS protocol. By itself this module does nothing useful,
* but other modules such as m_dnsbl and os_dns require this.
*/
-#module { name = "m_dns" }
-dns
+#module
{
+ name = "m_dns"
+
/*
* The nameserver to use for resolving hostnames, must be an IP or a resolver configuration file.
* The below should work fine on all unix like systems. Windows users will have to find their nameservers
@@ -74,9 +75,10 @@ dns
* is found on the blacklist they will be immediately banned. This is a crucial module
* to prevent bot attacks.
*/
-#module { name = "m_dnsbl" }
-m_dnsbl
+#module
{
+ name = "m_dnsbl"
+
/*
* If set, Services will check clients against the DNSBLs when services connect to its uplink.
* This is not recommended, and on large networks will open a very large amount of DNS queries.
@@ -136,9 +138,10 @@ blacklist
*
* Gives users who are op in the specified help channel usermode +h (helpop).
*/
-#module { name = "m_helpchan" }
-m_helpchan
+#module
{
+ name = "m_helpchan"
+
helpchannel = "#help"
}
@@ -324,9 +327,10 @@ mysql
* back to services. If services are able to connect through the proxy to itself
* then it knows it is an insecure proxy, and will ban it.
*/
-#module { name = "m_proxyscan" }
-m_proxyscan
+#module
{
+ name = "m_proxyscan"
+
/*
* The target IP services tells the proxy to connect back to. This must be a publicly
* avaiable IP that remote proxies can connect to.
@@ -402,9 +406,10 @@ proxyscan
* This module allows authenticating users against an external SQL database using a custom
* query.
*/
-#module { name = "m_sql_authentication" }
-m_sql_authentication
+#module
{
+ name = "m_sql_authentication"
+
/* SQL engine to use. Should be configured elsewhere with m_mysql, m_sqlite, etc. */
engine = "mysql/main"
@@ -446,9 +451,10 @@ m_sql_authentication
* This module allows granting users services operator privileges and possibly IRC Operator
* privileges based on an external SQL database using a custom query.
*/
-#module { name = "m_sql_oper" }
-m_sql_oper
+module
{
+ name = "m_sql_oper"
+
/* SQL engine to use. Should be configured elsewhere with m_mysql, m_sqlite, etc. */
engine = "mysql/main"
@@ -509,37 +515,38 @@ module { name = "m_regex_pcre" }
*/
module { name = "m_rewrite" }
#command
-#{
-# service = "ChanServ"; name = "CLEAR"; command = "rewrite"
-#
-# /* Enable m_rewrite. */
-# rewrite = true
-#
-# /* Source message to match. A $ can be used to match anything. */
-# rewrite_source = "CLEAR $ USERS"
-#
-# /*
-# * Message to rewrite the source message to. A $ followed by a number, eg $0, gets
-# * replaced by the number-th word from the source_message, starting from 0.
-# */
-# rewrite_target = "KICK $1 *"
-#
-# /*
-# * The command description. This only shows up in HELP's output.
-# * Comment this option to prevent the command from showing in the
-# * HELP command.
-# */
-# rewrite_description = "Clears all users from a channel"
-#}
+{
+ service = "ChanServ"; name = "CLEAR"; command = "rewrite"
+
+ /* Enable m_rewrite. */
+ rewrite = true
+
+ /* Source message to match. A $ can be used to match anything. */
+ rewrite_source = "CLEAR $ USERS"
+
+ /*
+ * Message to rewrite the source message to. A $ followed by a number, eg $0, gets
+ * replaced by the number-th word from the source_message, starting from 0.
+ */
+ rewrite_target = "KICK $1 *"
+
+ /*
+ * The command description. This only shows up in HELP's output.
+ * Comment this option to prevent the command from showing in the
+ * HELP command.
+ */
+ rewrite_description = "Clears all users from a channel"
+}
/*
* m_ssl
*
* This module uses SSL to connect to the uplink server(s).
*/
-#module { name = "m_ssl" }
-ssl
+module
{
+ name = "m_ssl"
+
/*
* An optional certificate and key for m_ssl to give to the uplink.
*
@@ -582,9 +589,10 @@ m_xmlrpc
*
* This module requires m_httpd.
*/
-#module { name = "webcpanel" }
-webcpanel
+#module
{
+ name = "webcpanel"
+
/* Web server to use. */
server = "httpd/main";
diff --git a/data/nickserv.example.conf b/data/nickserv.example.conf
index 3c2034ddb..67358b9d6 100644
--- a/data/nickserv.example.conf
+++ b/data/nickserv.example.conf
@@ -56,17 +56,14 @@ service
*
* Provides essential functionality for NickServ.
*/
-module { name = "nickserv" }
-
-/*
- * Configuration for NickServ provided by ns_main.
- */
-nickserv
+module
{
+ name = "nickserv"
+
/*
* The name of the client that should be NickServ.
*/
- name = "NickServ"
+ client = "NickServ"
/*
* Force users to give an e-mail address when they register a nick.
@@ -77,18 +74,11 @@ nickserv
/*
* Require users who change their email address to confirm they
- * own it.
+ * own their new email.
*/
confirmemailchanges = no
/*
- * Registration confirmation setting. Set to "none" for no registration confirmation,
- * "mail" for email confirmation, and "admin" to have services operators manually confirm
- * every registration. Set to "disable" to completely disable all registrations.
- */
- registration = "none"
-
- /*
* A message sent to users on connect if they use an unregistered nick.
*
* This directive is optional.
@@ -122,34 +112,12 @@ nickserv
defaults = "secure private hide_email hide_mask memo_signon memo_receive autoop"
/*
- * A list of languages to load on startup that will be available in /nickserv set language.
- * Useful if you translate Anope to your language. (Explained further in docs/LANGUAGE).
- * Note that english should not be listed here because it is the base language.
- *
- * Removing .UTF-8 will instead use the default encoding for the language, eg. iso-8859-1 for western European languages.
- */
- languages = "ca_ES.UTF-8 de_DE.UTF-8 el_GR.UTF-8 es_ES.UTF-8 fr_FR.UTF-8 hu_HU.UTF-8 it_IT.UTF-8 nl_NL.UTF-8 pl_PL.UTF-8 pt_PT.UTF-8 ru_RU.UTF-8 tr_TR.UTF-8"
-
- /*
- * Default language that non- and newly-registered nicks will receive messages in.
- * Leave empty to default to English.
- */
- #defaultlanguage = "es_ES.UTF-8"
-
- /*
* The minimum length of time between consecutive uses of NickServ's REGISTER command. This
* directive is optional, but recommended. If not set, this restriction will be disabled.
*/
regdelay = 30s
/*
- * The minimum length of time between consecutive uses of NickServ's RESEND command.
- *
- * This directive is optional, but recommended. If not set, this restriction will be disabled.
- */
- resenddelay = 90s
-
- /*
* The length of time before a nick's registration expires.
*
* This directive is optional, but recommended. If not set, the default is 21 days.
@@ -157,13 +125,6 @@ nickserv
expire = 21d
/*
- * The length of time before a suspended nick becomes unsuspended.
- *
- * This directive is optional. If not set, the default is never.
- */
- #suspendexpire = 90d
-
- /*
* The length of time a user using an unconfirmed account has
* before the account will be released for general use again.
*
@@ -172,57 +133,6 @@ nickserv
#unconfirmedexpire = 1d
/*
- * The maximum number of nicks allowed in a group.
- *
- * This directive is optional, but recommended. If not set or set to 0, no limits will be applied.
- */
- maxaliases = 16
-
- /*
- * The maximum number of entries allowed on a nickname's access list.
- */
- accessmax = 32
-
- /*
- * The username (and possibly hostname) used for the fake user created when NickServ collides
- * a user.
- */
- enforceruser = "enforcer"
- enforcerhost = "localhost.net"
-
- /*
- * The delay before a NickServ collided nick is released.
- */
- releasetimeout = 1m
-
- /*
- * Allow the use of the IMMED option in the NickServ SET KILL command.
- *
- * This directive is optional.
- */
- #allowkillimmed = yes
-
- /*
- * If set, the NickServ GROUP command won't allow any group change. This is recommended for
- * better performance and to protect against nick stealing, however users will have less
- * flexibility.
- *
- * This directive is optional, but recommended.
- */
- #nogroupchange = yes
-
- /*
- * The maximum number of nicks to be returned for a NickServ LIST command.
- */
- listmax = 50
-
- /*
- * When a user's nick is forcibly changed to enforce a "nick kill", their new nick will start
- * with this value. The rest will be made up of 6 or 7 digits.
- */
- guestnickprefix = "Guest"
-
- /*
* Prevents the use of the ACCESS (excluding the LIST subcommand), DROP, FORBID, SUSPEND,
* GETPASS and SET PASSWORD commands by services operators on other services operators.
*
@@ -231,14 +141,6 @@ nickserv
secureadmins = yes
/*
- * If set, any user wanting to use the privileges of Services Root, Services Admin, or Services
- * Operator must have been logged as an IRC Operator with the /OPER command.
- *
- * This directive is optional, but recommended.
- */
- strictprivileges = yes
-
- /*
* If set, Services will set the channel modes a user has access to upon identifying, assuming
* they are not already set.
*
@@ -247,17 +149,17 @@ nickserv
modeonid = yes
/*
- * If set, Services will add the usermask of registering users to the access list of their
- * newly created account. If not set, users will always have to identify to NickServ before
- * being recognized, unless they manually add an address to the access list of their account.
+ * If set, Services will set these user modes on any user who identifies.
+ *
* This directive is optional.
*/
- addaccessonreg = yes
+ #modesonid = "+R"
/*
- * The maximum number of channels a user can have on NickServ's AJOIN command.
+ * If set, Services will not show netsplits in the last quit message field
+ * of NickServ's INFO command.
*/
- ajoinmax = 10
+ hidenetsplitquit = no
/*
* If set, is the length of time NickServ's killquick and kill options wait before
@@ -267,32 +169,18 @@ nickserv
kill = 60s
/*
- * If set, Services will set these user modes on any user who identifies.
+ * If set, forbids the registration of nicks that contain an existing
+ * nick with Services access. For example, if Tester is a Services Oper,
+ * you can't register NewTester or Tester123 unless you are an IRC
+ * Operator.
*
- * This directive is optional.
- */
- #modesonid = "+R"
-
- /*
- * If set, Services will svsnick and svsjoin users who use the recover
- * command on an identified user to the nick and channels of the recovered user.
+ * NOTE: If you enable this, you will have to be logged in as an IRC
+ * operator in order to register a Services Root nick when setting up
+ * Anope for the first time.
*
- * This directive is opional.
- */
- restoreonrecover = yes
-
- /*
- * Some IRCds allow "SASL" authentication to let users identify to Services
- * during the IRCd user registration process. If set, Services will allow
- * authenticating users through this mechanism.
- */
- sasl = yes
-
- /*
- * If set, Services will not show netsplits in the last quit message field
- * of NickServ's INFO command.
+ * This directive is optional.
*/
- hidenetsplitquit = no
+ #restrictopernicks = yes
}
/*
@@ -327,7 +215,24 @@ command { service = "NickServ"; name = "HELP"; command = "generic/help"; }
*
* Used for configuring what hosts have access to your account.
*/
-module { name = "ns_access" }
+module
+{
+ name = "ns_access"
+
+ /*
+ * The maximum number of entries allowed on a nickname's access list.
+ */
+ accessmax = 32
+
+ /*
+ * If set, Services will add the usermask of registering users to the access list of their
+ * newly created account. If not set, users will always have to identify to NickServ before
+ * being recognized, unless they manually add an address to the access list of their account.
+ * This directive is optional.
+ */
+ addaccessonreg = yes
+}
+
command { service = "NickServ"; name = "ACCESS"; command = "nickserv/access"; }
/*
@@ -337,7 +242,15 @@ command { service = "NickServ"; name = "ACCESS"; command = "nickserv/access"; }
*
* Used for configuring channels to join once you identify.
*/
-module { name = "ns_ajoin" }
+module
+{
+ name = "ns_ajoin"
+
+ /*
+ * The maximum number of channels a user can have on NickServ's AJOIN command.
+ */
+ ajoinmax = 10
+}
command { service = "NickServ"; name = "AJOIN"; command = "nickserv/ajoin"; }
/*
@@ -399,7 +312,26 @@ command { service = "NickServ"; name = "GETEMAIL"; command = "nickserv/getemail"
*
* Used for controlling nick groups.
*/
-module { name = "ns_group" }
+module
+{
+ name = "ns_group"
+
+ /*
+ * The maximum number of nicks allowed in a group.
+ *
+ * This directive is optional, but recommended. If not set or set to 0, no limits will be applied.
+ */
+ maxaliases = 16
+
+ /*
+ * If set, the NickServ GROUP command won't allow any group change. This is recommended for
+ * better performance and to protect against nick stealing, however users will have less
+ * flexibility.
+ *
+ * This directive is optional, but recommended.
+ */
+ #nogroupchange = yes
+}
command { service = "NickServ"; name = "GLIST"; command = "nickserv/glist"; }
command { service = "NickServ"; name = "GROUP"; command = "nickserv/group"; }
command { service = "NickServ"; name = "UNGROUP"; command = "nickserv/ungroup"; }
@@ -432,7 +364,15 @@ command { service = "NickServ"; name = "INFO"; command = "nickserv/info"; }
*
* Used for retrieving and searching the registered account list.
*/
-module { name = "ns_list" }
+module
+{
+ name = "ns_list"
+
+ /*
+ * The maximum number of nicks to be returned for a NickServ LIST command.
+ */
+ listmax = 50
+}
command { service = "NickServ"; name = "LIST"; command = "nickserv/list"; group = "nickserv/admin"; }
/*
@@ -452,9 +392,20 @@ command { service = "NickServ"; name = "LOGOUT"; command = "nickserv/logout"; }
*
* Used for recovering your nick from services or another user.
*/
-module { name = "ns_recover" }
+module
+{
+ name = "ns_recover"
+
+ /*
+ * If set, Services will svsnick and svsjoin users who use the recover
+ * command on an identified user to the nick and channels of the recovered user.
+ *
+ * This directive is opional.
+ */
+ restoreonrecover = yes
+}
command { service = "NickServ"; name = "RECOVER"; command = "nickserv/recover"; }
-# Uncomment below to emulate 1.8's behavior of ghost, recover, and release.
+# Uncomment below to emulate 1.8's behavior of ghost and release.
#command { service = "NickServ"; name = "GHOST"; command = "nickserv/recover"; }
#command { service = "NickServ"; name = "RELEASE"; command = "nickserv/recover"; }
@@ -465,7 +416,33 @@ command { service = "NickServ"; name = "RECOVER"; command = "nickserv/recover";
*
* Used for registering accounts.
*/
-module { name = "ns_register" }
+module
+{
+ name = "ns_register"
+
+ /*
+ * Registration confirmation setting. Set to "none" for no registration confirmation,
+ * "mail" for email confirmation, and "admin" to have services operators manually confirm
+ * every registration. Set to "disable" to completely disable all registrations.
+ */
+ registration = "none"
+
+ /*
+ * The minimum length of time between consecutive uses of NickServ's RESEND command.
+ *
+ * This directive is optional, but recommended. If not set, this restriction will be disabled.
+ */
+ resenddelay = 90s
+
+ /*
+ * Prevents users from registering their nick if they are not connected
+ * for at least the given number of seconds.
+ *
+ * This directive is optional.
+ */
+ #nickregdelay = 30
+}
+
command { service = "NickServ"; name = "CONFIRM"; command = "nickserv/confirm"; }
command { service = "NickServ"; name = "REGISTER"; command = "nickserv/register"; }
command { service = "NickServ"; name = "RESEND"; command = "nickserv/resend"; }
@@ -500,7 +477,18 @@ command { service = "NickServ"; name = "RESETPASS"; command = "nickserv/resetpas
*
* This is a dummy command to provide a help wrapper for the various SET and SASET commands.
*/
-module { name = "ns_set" }
+module
+{
+ name = "ns_set"
+
+ /*
+ * Allow the use of the IMMED option in the NickServ SET KILL command.
+ *
+ * This directive is optional.
+ */
+ #allowkillimmed = yes
+}
+
command { service = "NickServ"; name = "SET"; command = "nickserv/set"; }
command { service = "NickServ"; name = "SASET"; command = "nickserv/saset"; permission = "nickserv/saset/"; group = "nickserv/admin"; }
@@ -575,7 +563,18 @@ command { service = "NickServ"; name = "STATUS"; command = "nickserv/status"; }
*
* Used to suspend and unsuspend nicknames. Suspended nicknames can not be used but their settings are preserved.
*/
-module { name = "ns_suspend" }
+module
+{
+ name = "ns_suspend"
+
+ /*
+ * The length of time before a suspended nick becomes unsuspended.
+ *
+ * This directive is optional. If not set, the default is never.
+ */
+ #suspendexpire = 90d
+}
+
command { service = "NickServ"; name = "SUSPEND"; command = "nickserv/suspend"; permission = "nickserv/suspend"; group = "nickserv/admin"; }
command { service = "NickServ"; name = "UNSUSPEND"; command = "nickserv/unsuspend"; permission = "nickserv/suspend"; group = "nickserv/admin"; }
@@ -600,9 +599,10 @@ command { service = "NickServ"; name = "UPDATE"; command = "nickserv/update"; }
* Limits how many times the same email address may be used in Anope
* to register accounts.
*/
-module { name = "ns_maxemail" }
-ns_maxemail
+module
{
+ name = "ns_maxemail"
+
/*
* The limit to how many registered nicks can use the same e-mail address. If set to 0 or left
* commented, there will be no limit enforced when registering new accounts or using
diff --git a/data/operserv.example.conf b/data/operserv.example.conf
index fa17a1df9..687247f0a 100644
--- a/data/operserv.example.conf
+++ b/data/operserv.example.conf
@@ -56,25 +56,14 @@ service
*
* Provides essential functionality for OperServ.
*/
-module { name = "operserv" }
-
-/*
- * Configuration for OperServ provided by os_main.
- */
-operserv
+module
{
- /*
- * The name of the client that should be OperServ.
- */
- name = "OperServ"
+ name = "operserv"
/*
- * If set, Services Admins will be able to use SUPERADMIN [ON|OFF] which will temporarily grant
- * them extra privileges such as being a founder on ALL channels.
- *
- * This directive is optional.
+ * The name of the client that should be OperServ.
*/
- #superadmin = yes
+ client = "OperServ"
/*
* These define the default expiration times for, respectively, AKILLs, CHANKILLs, SNLINEs,
@@ -98,9 +87,9 @@ operserv
* If set, this option will make Services send an (SVS)KILL command immediately after SNLINE ADD.
* This eliminates the need for killing the user after the SNLINE has been added.
*
- *This directive is optional.
+ * This directive is optional.
*/
- #killonsnline = yes
+ killonsnline = yes
/*
* If set, this option will make Services send an (SVS)KILL command immediately after SQLINE ADD.
@@ -108,87 +97,7 @@ operserv
*
* This directive is optional.
*/
- #killonsqline = yes
-
- /*
- * Enables session limiting. Session limiting prevents users from connecting more than a certain
- * number of times from the same host at the same time - thus preventing most types of cloning.
- * Once a host reaches it's session limit, all clients attempting to connect from that host will
- * be killed. Exceptions to the default session limit can be defined via the exception list. It
- * should be noted that session limiting, along with a large exception list, can degrade Services'
- * performance.
- *
- * See the online help for more information about session limiting.
- *
- * This directive is optional.
- */
- limitsessions = yes
-
- /*
- * Default session limit per host. Once a host reaches it's session limit, all clients attempting
- * to connect from that host will be killed. A value of zero means an unlimited session limit.
- *
- * This directive is optional.
- * If not given and session limiting is enabled, it will default to no limit.
- */
- defaultsessionlimit = 3
-
- /*
- * The maximum session limit that may be set for a host in an exception.
- *
- * This directive is only required if session limiting is enabled.
- */
- maxsessionlimit = 100
-
- /*
- * Sets the default expiry time for session exceptions.
- *
- * This directive is only required if session limiting is enabled.
- */
- exceptionexpiry = 1d
-
- /*
- * The message that will be NOTICE'd to a user just before they are removed from the network because
- * their host's session limit has been exceeded. It may be used to give a slightly more descriptive
- * reason for the impending kill as opposed to simply "Session limit exceeded".
- *
- * This directive is optional, if not set, nothing will be sent.
- */
- sessionlimitexceeded = "The session limit for your IP %s has been exceeded."
-
- /*
- * Same as above, but should be used to provide a website address where users can find out more
- * about session limits and how to go about applying for an exception.
- *
- * Note: This directive has been intentionally commented out in an effort to remind you to change
- * the URL it contains. It is recommended that you supply an address/URL where people can get help
- * regarding session limits.
- *
- * This directive is optional, if not set, nothing will be sent.
- */
- #sessionlimitdetailsloc = "Please visit http://your.website.url/ for more information about session limits."
-
- /*
- * If set and is not 0, this directive tells Services to add an AKILL the number of subsequent kills
- * for the same host exceeds this value, preventing the network from experiencing KILL floods.
- *
- * This directive is optional.
- */
- maxsessionkill = 15
-
- /*
- * Sets the expiry time for AKILLs set for hosts exceeding the maxsessionkill directive limit.
- *
- * This directive is optional, if not set, defaults to 30 minutes.
- */
- sessionautokillexpiry = 30m
-
- /*
- * Sets the CIDR value used to determine which IP addresses represent the same person.
- * By default this would limit 3 connections per IPv4 IP and 3 connections per IPv6 IP.
- */
- session_ipv4_cidr = 32
- session_ipv6_cidr = 128
+ killonsqline = yes
/*
* Adds the nickname of the IRC Operator issuing an AKILL to the kill reason.
@@ -204,8 +113,7 @@ operserv
akillids = yes
/*
- * If set, only IRC Operators will be permitted to use OperServ, regardless of module-based command
- * access restrictions.
+ * If set, only IRC Operators will be permitted to use OperServ, regardless of command access restrictions.
*
* This directive is optional, but recommended.
*/
@@ -254,10 +162,10 @@ command { service = "OperServ"; name = "CHANKILL"; command = "operserv/chankill"
* Allows you to set services in defcon mode, which can be used to restrict services access
* during bot attacks.
*/
-#module { name = "os_defcon" }
-#command { service = "OperServ"; name = "DEFCON"; command = "operserv/defcon"; }
-defcon
+#module
{
+ name = "os_defcon"
+
/*
* Default DefCon level (1-5) to use when starting Services up. Level 5 constitutes normal operation
* while level 1 constitutes the most restrictive operation. If this setting is left out or set to
@@ -352,6 +260,7 @@ defcon
*/
#akillreason = "This network is currently not accepting connections, please try again later."
}
+#command { service = "OperServ"; name = "DEFCON"; command = "operserv/defcon"; }
/*
* os_dns
@@ -384,10 +293,10 @@ defcon
*
* Finally set a NS record for irc.example.com. to BIND or services.
*/
-#module { name = "os_dns" }
-#command { service = "OperServ"; name = "DNS"; command = "operserv/dns"; permission = "operserv/dns"; }
-os_dns
+module
{
+ name = "os_dns"
+
/* TTL for records. This should be very low if your records change often. */
ttl = 1m
@@ -412,6 +321,7 @@ os_dns
*/
readd_connected_servers = no
}
+#command { service = "OperServ"; name = "DNS"; command = "operserv/dns"; permission = "operserv/dns"; }
/*
* os_config
@@ -502,15 +412,16 @@ command { service = "OperServ"; name = "LOGOUT"; command = "operserv/logout"; }
*
* Used to search services log files.
*/
-module { name = "os_logsearch" }
-command { service = "OperServ"; name = "LOGSEARCH"; command = "operserv/logsearch"; permission = "operserv/logsearch"; }
-logsearch
+module
{
+ name = "os_logsearch"
+
/* The log file name to search. There should be a log{} block configured to log
* to a file of this name.
*/
- name = "services.log"
+ logname = "services.log"
}
+command { service = "OperServ"; name = "LOGSEARCH"; command = "operserv/logsearch"; permission = "operserv/logsearch"; }
/*
* os_mode
@@ -553,7 +464,18 @@ command { service = "OperServ"; name = "MODUNLOAD"; command = "operserv/modunloa
*
* Used to configure news notices shown to users when they connect, and opers when they oper.
*/
-module { name = "os_news" }
+module
+{
+ name = "os_news"
+
+ /*
+ * The number of LOGON/OPER news items to display when a user logs on.
+ *
+ * This directive is optional, if no set it will default to 3.
+ */
+ #newscount = 3
+}
+
command { service = "OperServ"; name = "LOGONNEWS"; command = "operserv/logonnews"; permission = "operserv/news"; }
command { service = "OperServ"; name = "OPERNEWS"; command = "operserv/opernews"; permission = "operserv/news"; }
command { service = "OperServ"; name = "RANDOMNEWS"; command = "operserv/randomnews"; permission = "operserv/news"; }
@@ -604,9 +526,84 @@ command { service = "OperServ"; name = "RELOAD"; command = "operserv/reload"; pe
*
* Provides the commands operserv/exception and operserv/session.
*
+ * This module enables session limiting. Session limiting prevents users from connecting more than a certain
+ * number of times from the same IP at the same time - thus preventing most types of cloning.
+ * Once a host reaches it's session limit, all clients attempting to connect from that host will
+ * be killed. Exceptions to the default session limit can be defined via the exception list.
+ *
* Used to manage the session limit exception list, and view currently active sessions.
*/
-module { name = "os_session" }
+module
+{
+ name = "os_session"
+
+ /*
+ * Default session limit per host. Once a host reaches it's session limit, all clients attempting
+ * to connect from that host will be killed.
+ *
+ * This directive is require if os_session is loaded.
+ */
+ defaultsessionlimit = 3
+
+ /*
+ * The maximum session limit that may be set for a host in an exception.
+ *
+ * This directive is require if os_session is loaded.
+ */
+ maxsessionlimit = 100
+
+ /*
+ * Sets the default expiry time for session exceptions.
+ *
+ * This directive is require if os_session is loaded.
+ */
+ exceptionexpiry = 1d
+
+ /*
+ * The message that will be NOTICE'd to a user just before they are removed from the network because
+ * their host's session limit has been exceeded. It may be used to give a slightly more descriptive
+ * reason for the impending kill as opposed to simply "Session limit exceeded".
+ *
+ * This directive is optional, if not set, nothing will be sent.
+ */
+ sessionlimitexceeded = "The session limit for your IP %IP% has been exceeded."
+
+ /*
+ * Same as above, but should be used to provide a website address where users can find out more
+ * about session limits and how to go about applying for an exception.
+ *
+ * Note: This directive has been intentionally commented out in an effort to remind you to change
+ * the URL it contains. It is recommended that you supply an address/URL where people can get help
+ * regarding session limits.
+ *
+ * This directive is optional, if not set, nothing will be sent.
+ */
+ #sessionlimitdetailsloc = "Please visit http://your.website.url/ for more information about session limits."
+
+ /*
+ * If set and is not 0, this directive tells Services to add an AKILL the number of subsequent kills
+ * for the same host exceeds this value, preventing the network from experiencing KILL floods.
+ *
+ * This directive is optional.
+ */
+ maxsessionkill = 15
+
+ /*
+ * Sets the expiry time for AKILLs set for hosts exceeding the maxsessionkill directive limit.
+ *
+ * This directive is optional, if not set, defaults to 30 minutes.
+ */
+ sessionautokillexpiry = 30m
+
+ /*
+ * Sets the CIDR value used to determine which IP addresses represent the same person.
+ * By default this would limit 3 connections per IPv4 IP and 3 connections per IPv6 IP.
+ * If you are receiving IPv6 clone attacks it may be useful to set session_ipv6_cidr to
+ * 64 or 48.
+ */
+ session_ipv4_cidr = 32
+ session_ipv6_cidr = 128
+}
command { service = "OperServ"; name = "EXCEPTION"; command = "operserv/exception"; permission = "operserv/exception"; }
command { service = "OperServ"; name = "SESSION"; command = "operserv/session"; permission = "operserv/session"; }
@@ -617,7 +614,19 @@ command { service = "OperServ"; name = "SESSION"; command = "operserv/session";
*
* Used to set various settings such as superadmin, debug mode, etc.
*/
-module { name = "os_set" }
+module
+{
+ name = "os_set"
+
+ /*
+ * If set, Services Admins will be able to use SUPERADMIN [ON|OFF] which will temporarily grant
+ * them extra privileges such as being a founder on ALL channels.
+ *
+ * This directive is optional.
+ */
+ #superadmin = yes
+}
+
command { service = "OperServ"; name = "SET"; command = "operserv/set"; permission = "operserv/set"; }
/*
@@ -659,7 +668,7 @@ command { service = "OperServ"; name = "SVSPART"; command = "operserv/svspart";
*
* Provides the operserv/snline and operserv/sqline commands.
*
- * Used to ban different things such as realnames, nicknames, and IPs.
+ * Used to ban real names, nick names, and possibly channels.
*/
module { name = "os_sxline" }
command { service = "OperServ"; name = "SNLINE"; command = "operserv/snline"; permission = "operserv/snline"; }