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
This commit is contained in:
brain 2008-05-25 18:00:55 +00:00
parent a21b0c77e7
commit d019781945
3 changed files with 20 additions and 8 deletions

View File

@ -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"

View File

@ -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;

View File

@ -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.
*/