summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--include/configreader.h13
-rw-r--r--src/configreader.cpp5
2 files changed, 18 insertions, 0 deletions
diff --git a/include/configreader.h b/include/configreader.h
index 840e227de..2556cf088 100644
--- a/include/configreader.h
+++ b/include/configreader.h
@@ -248,6 +248,19 @@ class ServerLimits : public Extensible
ServerLimits() : NickMax(31), ChanMax(64), MaxModes(20), IdentMax(12), MaxQuit(255), MaxTopic(307), MaxKick(255), MaxGecos(128), MaxAway(200)
{
}
+
+ void Finalise()
+ {
+ NickMax++;
+ ChanMax++;
+ MaxModes++;
+ IdentMax++;
+ MaxQuit++;
+ MaxTopic++;
+ MaxKick++;
+ MaxGecos++;
+ MaxAway++;
+ }
};
/** This class holds the bulk of the runtime configuration for the ircd.
diff --git a/src/configreader.cpp b/src/configreader.cpp
index f572211f3..2320496c8 100644
--- a/src/configreader.cpp
+++ b/src/configreader.cpp
@@ -1169,6 +1169,11 @@ void ServerConfig::Read(bool bail, User* user)
MultiValues[Index].finish_function(this, MultiValues[Index].tag);
}
+ /* Finalise the limits, increment them all by one so that we can just put assign(str, 0, val)
+ * rather than assign(str, 0, val + 1)
+ */
+ Limits.Finalise();
+
}
catch (CoreException &ce)