]> git.netwichtig.de Git - user/henk/code/inspircd.git/blobdiff - src/configreader.cpp
core_dns Add typedef for request id, change it to uint16_t
[user/henk/code/inspircd.git] / src / configreader.cpp
index 54c32d8464f60811c121b52f0dd54e4f26314833..d52f3de13fdc3f03690947555f0f4a6d92b6337e 100644 (file)
 #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;
+       return ConfigTag::create("empty", "<auto>", 0, items);
+}
+
 ServerConfig::ServerConfig()
+       : EmptyTag(CreateEmptyTag())
+       , Limits(EmptyTag)
 {
        RawLog = HideBans = HideSplits = UndernetMsgPrefix = false;
        WildcardIPv6 = InvBypassModes = true;
@@ -41,9 +64,6 @@ ServerConfig::ServerConfig()
        OperMaxChans = 30;
        c_ipv4_range = 32;
        c_ipv6_range = 128;
-
-       std::vector<KeyVal>* items;
-       EmptyTag = ConfigTag::create("empty", "<auto>", 0, items);
 }
 
 ServerConfig::~ServerConfig()
@@ -401,17 +421,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);