summaryrefslogtreecommitdiff
path: root/src/configreader.cpp
diff options
context:
space:
mode:
authorAttila Molnar <attilamolnar@hush.com>2014-12-09 12:35:31 +0100
committerAttila Molnar <attilamolnar@hush.com>2014-12-09 12:35:31 +0100
commit1c64da19e1f08e23fd7020427e89d1d5af35aa1c (patch)
tree50fcd4bb4bfdafe2509fab02f969bc0c1bfaa3af /src/configreader.cpp
parent94b3599a48f3b53683327be3703a8471f81b916b (diff)
Add ServerLimits constructor that reads limits from a ConfigTag and use it
Diffstat (limited to 'src/configreader.cpp')
-rw-r--r--src/configreader.cpp27
1 files changed, 16 insertions, 11 deletions
diff --git a/src/configreader.cpp b/src/configreader.cpp
index df58ec812..49ef236d4 100644
--- a/src/configreader.cpp
+++ b/src/configreader.cpp
@@ -29,6 +29,21 @@
#include "configparser.h"
#include <iostream>
+ServerLimits::ServerLimits(ConfigTag* tag)
+ : NickMax(tag->getInt("maxnick", 32))
+ , ChanMax(tag->getInt("maxchan", 64))
+ , MaxModes(tag->getInt("maxmodes", 20))
+ , IdentMax(tag->getInt("maxident", 11))
+ , MaxQuit(tag->getInt("maxquit", 255))
+ , MaxTopic(tag->getInt("maxtopic", 307))
+ , MaxKick(tag->getInt("maxkick", 255))
+ , MaxGecos(tag->getInt("maxgecos", 128))
+ , MaxAway(tag->getInt("maxaway", 200))
+ , MaxLine(tag->getInt("maxline", 512))
+ , MaxHost(tag->getInt("maxhost", 64))
+{
+}
+
static ConfigTag* CreateEmptyTag()
{
std::vector<KeyVal>* items;
@@ -405,17 +420,7 @@ void ServerConfig::Fill()
OperMaxChans = ConfValue("channels")->getInt("opers");
c_ipv4_range = ConfValue("cidr")->getInt("ipv4clone", 32);
c_ipv6_range = ConfValue("cidr")->getInt("ipv6clone", 128);
- Limits.NickMax = ConfValue("limits")->getInt("maxnick", 32);
- Limits.ChanMax = ConfValue("limits")->getInt("maxchan", 64);
- Limits.MaxModes = ConfValue("limits")->getInt("maxmodes", 20);
- Limits.IdentMax = ConfValue("limits")->getInt("maxident", 11);
- Limits.MaxHost = ConfValue("limits")->getInt("maxhost", 64);
- Limits.MaxQuit = ConfValue("limits")->getInt("maxquit", 255);
- Limits.MaxTopic = ConfValue("limits")->getInt("maxtopic", 307);
- Limits.MaxKick = ConfValue("limits")->getInt("maxkick", 255);
- Limits.MaxGecos = ConfValue("limits")->getInt("maxgecos", 128);
- Limits.MaxAway = ConfValue("limits")->getInt("maxaway", 200);
- Limits.MaxLine = ConfValue("limits")->getInt("maxline", 512);
+ Limits = ServerLimits(ConfValue("limits"));
Paths.Config = ConfValue("path")->getString("configdir", INSPIRCD_CONFIG_PATH);
Paths.Data = ConfValue("path")->getString("datadir", INSPIRCD_DATA_PATH);
Paths.Log = ConfValue("path")->getString("logdir", INSPIRCD_LOG_PATH);