summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorbrain <brain@e03df62e-2008-0410-955e-edbf42e46eb7>2008-05-25 18:00:55 +0000
committerbrain <brain@e03df62e-2008-0410-955e-edbf42e46eb7>2008-05-25 18:00:55 +0000
commitd01978194558a422cf886acb114546d0cbe84c76 (patch)
treed06a63a413cd24c4cd1bc2b4ebac803bea2a95d9
parenta21b0c77e73175f1633fa3f40bed5eb744006bbb (diff)
Add parsing of <limits> tag and finish documenting it, make all the values match sensibly by starting them all 'max' rather than some starting with it, some ending with it...
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@9808 e03df62e-2008-0410-955e-edbf42e46eb7
-rw-r--r--docs/inspircd.conf.example16
-rw-r--r--include/configreader.h2
-rw-r--r--src/configreader.cpp10
3 files changed, 20 insertions, 8 deletions
diff --git a/docs/inspircd.conf.example b/docs/inspircd.conf.example
index 8e7ebdb00..c925971d5 100644
--- a/docs/inspircd.conf.example
+++ b/docs/inspircd.conf.example
@@ -1052,11 +1052,11 @@
# #
# Values here should be self explanitory: #
# #
-# nickmax - The maximum length of a nickname #
-# chanmax - The maximum length of a channel name #
-# modemax - The maximum number of parameterized mode changes #
+# maxnick - The maximum length of a nickname #
+# maxchan - The maximum length of a channel name #
+# maxmodes - The maximum number of parameterized mode changes #
# per line #
-# identmax - The maximum length of an ident/username value #
+# maxident - The maximum length of an ident/username value #
# maxquit - The maximum length of a quit message #
# maxtopic - The maximum length of a channel topic #
# maxkick - The maximum length of a kick message #
@@ -1064,10 +1064,10 @@
# maxaway - The maximum length of an away message #
# #
-<limits nickmax="31"
- chanmax="64"
- modemax="20"
- identmax="11"
+<limits maxnick="31"
+ maxchan="64"
+ maxmodes="20"
+ maxident="11"
maxquit="255"
maxtopic="307"
maxkick="255"
diff --git a/include/configreader.h b/include/configreader.h
index 56a2ee698..840e227de 100644
--- a/include/configreader.h
+++ b/include/configreader.h
@@ -150,6 +150,8 @@ typedef ValueContainer<char*> ValueContainerChar;
*/
typedef ValueContainer<int*> ValueContainerInt;
+typedef ValueContainer<size_t*> ValueContainerST;
+
/** A set of ValueItems used by multi-value validator functions
*/
typedef std::deque<ValueItem> ValueList;
diff --git a/src/configreader.cpp b/src/configreader.cpp
index 76aae190b..f572211f3 100644
--- a/src/configreader.cpp
+++ b/src/configreader.cpp
@@ -844,9 +844,19 @@ void ServerConfig::Read(bool bail, User* user)
{"die", "value", "", new ValueContainerChar (this->DieValue), DT_CHARPTR, NoValidation},
{"channels", "users", "20", new ValueContainerUInt (&this->MaxChans), DT_INTEGER, NoValidation},
{"channels", "opers", "60", new ValueContainerUInt (&this->OperMaxChans), DT_INTEGER, NoValidation},
+ {"limits", "maxnick", "32", new ValueContainerST (&this->Limits.NickMax), DT_INTEGER, NoValidation},
+ {"limits", "maxchan", "64", new ValueContainerST (&this->Limits.ChanMax), DT_INTEGER, NoValidation},
+ {"limits", "maxmodes", "20", new ValueContainerST (&this->Limits.MaxModes), DT_INTEGER, NoValidation},
+ {"limits", "maxident", "11", new ValueContainerST (&this->Limits.IdentMax), DT_INTEGER, NoValidation},
+ {"limits", "maxquit", "255", new ValueContainerST (&this->Limits.MaxQuit), DT_INTEGER, NoValidation},
+ {"limits", "maxtopic", "307", new ValueContainerST (&this->Limits.MaxTopic), DT_INTEGER, NoValidation},
+ {"limits", "maxkick", "255", new ValueContainerST (&this->Limits.MaxKick), DT_INTEGER, NoValidation},
+ {"limits", "maxgecos", "128", new ValueContainerST (&this->Limits.MaxGecos), DT_INTEGER, NoValidation},
+ {"limits", "maxaway", "200", new ValueContainerST (&this->Limits.MaxAway), DT_INTEGER, NoValidation},
{NULL, NULL, NULL, NULL, DT_NOTHING, NoValidation}
};
+
/* These tags can occur multiple times, and therefore they have special code to read them
* which is different to the code for reading the singular tags listed above.
*/