]> git.netwichtig.de Git - user/henk/code/inspircd.git/blobdiff - src/configreader.cpp
Set m_cgiirc to run its OnUserConnect before m_conn_umodes
[user/henk/code/inspircd.git] / src / configreader.cpp
index 5b430afe1b0dc1f5f8a2f62542243497d8585c16..1905b36d083412fb62e67c06550fe10f0c24a51e 100644 (file)
@@ -22,7 +22,7 @@ ServerConfig::ServerConfig()
 {
        WhoWasGroupSize = WhoWasMaxGroups = WhoWasMaxKeep = 0;
        NoUserDns = OperSpyWhois = HideBans = HideSplits = UndernetMsgPrefix = false;
-       CycleHosts = InvBypassModes = true;
+       WildcardIPv6 = CycleHosts = InvBypassModes = true;
        dns_timeout = 5;
        MaxTargets = 20;
        NetBufferSize = 10240;
@@ -451,7 +451,7 @@ void ServerConfig::Fill()
        DisabledCommands = ConfValue("disabled")->getString("commands", "");
        DisabledDontExist = ConfValue("disabled")->getBool("fakenonexistant");
        UserStats = security->getString("userstats");
-       CustomVersion = security->getString("customversion");
+       CustomVersion = security->getString("customversion", Network + " IRCd");
        HideSplits = security->getBool("hidesplits");
        HideBans = security->getBool("hidebans");
        HideWhoisServer = security->getString("hidewhois");
@@ -498,6 +498,24 @@ void ServerConfig::Fill()
        if (!sid.empty() && !ServerInstance->IsSID(sid))
                throw CoreException(sid + " is not a valid server ID. A server ID must be 3 characters long, with the first character a digit and the next two characters a digit or letter.");
 
+       std::string defbind = options->getString("defaultbind");
+       if (assign(defbind) == "ipv4")
+       {
+               WildcardIPv6 = false;
+       }
+       else if (assign(defbind) == "ipv6")
+       {
+               WildcardIPv6 = true;
+       }
+       else
+       {
+               WildcardIPv6 = true;
+               int socktest = socket(AF_INET6, SOCK_STREAM, 0);
+               if (socktest < 0)
+                       WildcardIPv6 = false;
+               else
+                       close(socktest);
+       }
        ConfigTagList tags = ConfTags("uline");
        for(ConfigIter i = tags.first; i != tags.second; ++i)
        {