]> git.netwichtig.de Git - user/henk/code/inspircd.git/blobdiff - src/configreader.cpp
m_deaf Remove pointless member prefix check
[user/henk/code/inspircd.git] / src / configreader.cpp
index d52f3de13fdc3f03690947555f0f4a6d92b6337e..0299b326a2673a7c0a7567727070d31ea4fca7a1 100644 (file)
@@ -53,9 +53,10 @@ static ConfigTag* CreateEmptyTag()
 ServerConfig::ServerConfig()
        : EmptyTag(CreateEmptyTag())
        , Limits(EmptyTag)
+       , NoSnoticeStack(false)
 {
-       RawLog = HideBans = HideSplits = UndernetMsgPrefix = false;
-       WildcardIPv6 = InvBypassModes = true;
+       RawLog = HideBans = HideSplits = false;
+       WildcardIPv6 = true;
        dns_timeout = 5;
        MaxTargets = 20;
        NetBufferSize = 10240;
@@ -408,11 +409,11 @@ void ServerConfig::Fill()
        HideBans = security->getBool("hidebans");
        HideWhoisServer = security->getString("hidewhois");
        HideKillsServer = security->getString("hidekills");
+       HideULineKills = security->getBool("hideulinekills");
        RestrictBannedUsers = security->getBool("restrictbannedusers", true);
        GenericOper = security->getBool("genericoper");
        SyntaxHints = options->getBool("syntaxhints");
        CycleHostsFromUser = options->getBool("cyclehostsfromuser");
-       UndernetMsgPrefix = options->getBool("ircumsgprefix");
        FullHostInTopic = options->getBool("hostintopic");
        MaxTargets = security->getInt("maxtargets", 20, 1, 31);
        DefaultModes = options->getString("defaultmodes", "not");
@@ -426,18 +427,17 @@ void ServerConfig::Fill()
        Paths.Data = ConfValue("path")->getString("datadir", INSPIRCD_DATA_PATH);
        Paths.Log = ConfValue("path")->getString("logdir", INSPIRCD_LOG_PATH);
        Paths.Module = ConfValue("path")->getString("moduledir", INSPIRCD_MODULE_PATH);
-       InvBypassModes = options->getBool("invitebypassmodes", true);
        NoSnoticeStack = options->getBool("nosnoticestack", false);
 
        if (Network.find(' ') != std::string::npos)
                throw CoreException(Network + " is not a valid network name. A network name must not contain spaces.");
 
        std::string defbind = options->getString("defaultbind");
-       if (assign(defbind) == "ipv4")
+       if (stdalgo::string::equalsci(defbind, "ipv4"))
        {
                WildcardIPv6 = false;
        }
-       else if (assign(defbind) == "ipv6")
+       else if (stdalgo::string::equalsci(defbind, "ipv6"))
        {
                WildcardIPv6 = true;
        }
@@ -568,14 +568,14 @@ void ServerConfig::Apply(ServerConfig* old, const std::string &useruid)
 
        // write once here, to try it out and make sure its ok
        if (valid)
-               ServerInstance->WritePID(this->PID);
+               ServerInstance->WritePID(this->PID, !old);
 
        ConfigTagList binds = ConfTags("bind");
        if (binds.first == binds.second)
                 errstr << "Possible configuration error: you have not defined any <bind> blocks." << std::endl
                         << "You will need to do this if you want clients to be able to connect!" << std::endl;
 
-       if (old)
+       if (old && valid)
        {
                // On first run, ports are bound later on
                FailedPortList pl;
@@ -613,7 +613,7 @@ void ServerConfig::Apply(ServerConfig* old, const std::string &useruid)
                        std::cout << line << std::endl;
                // If a user is rehashing, tell them directly
                if (user)
-                       user->SendText(":%s NOTICE %s :*** %s", ServerInstance->Config->ServerName.c_str(), user->nick.c_str(), line.c_str());
+                       user->WriteRemoteNotice(InspIRCd::Format("*** %s", line.c_str()));
                // Also tell opers
                ServerInstance->SNO->WriteGlobalSno('a', line);
        }
@@ -627,11 +627,11 @@ void ServerConfig::Apply(ServerConfig* old, const std::string &useruid)
                ConfigTag *tag = (*it)->config;
                // Make sure our connection class allows motd colors
                if(!tag->getBool("allowmotdcolors"))
-                     continue;
+                       continue;
 
                ConfigFileCache::iterator file = this->Files.find(tag->getString("motd", "motd"));
                if (file != this->Files.end())
-                     InspIRCd::ProcessColors(file->second);
+                       InspIRCd::ProcessColors(file->second);
        }
 
        /* No old configuration -> initial boot, nothing more to do here */
@@ -653,8 +653,7 @@ void ServerConfig::Apply(ServerConfig* old, const std::string &useruid)
        ApplyModules(user);
 
        if (user)
-               user->SendText(":%s NOTICE %s :*** Successfully rehashed server.",
-                       ServerInstance->Config->ServerName.c_str(), user->nick.c_str());
+               user->WriteRemoteNotice("*** Successfully rehashed server.");
        ServerInstance->SNO->WriteGlobalSno('a', "*** Successfully rehashed server.");
 }
 
@@ -670,6 +669,7 @@ void ServerConfig::ApplyModules(User* user)
                std::string name;
                if (tag->readString("name", name))
                {
+                       name = ModuleManager::ExpandModName(name);
                        // if this module is already loaded, the erase will succeed, so we need do nothing
                        // otherwise, we need to add the module (which will be done later)
                        if (removed_modules.erase(name) == 0)
@@ -688,33 +688,33 @@ void ServerConfig::ApplyModules(User* user)
                        ServerInstance->SNO->WriteGlobalSno('a', "*** REHASH UNLOADED MODULE: %s", modname.c_str());
 
                        if (user)
-                               user->WriteNumeric(RPL_UNLOADEDMODULE, "%s :Module %s successfully unloaded.", modname.c_str(), modname.c_str());
+                               user->WriteNumeric(RPL_UNLOADEDMODULE, modname, InspIRCd::Format("Module %s successfully unloaded.", modname.c_str()));
                        else
                                ServerInstance->SNO->WriteGlobalSno('a', "Module %s successfully unloaded.", modname.c_str());
                }
                else
                {
                        if (user)
-                               user->WriteNumeric(ERR_CANTUNLOADMODULE, "%s :Failed to unload module %s: %s", modname.c_str(), modname.c_str(), ServerInstance->Modules->LastError().c_str());
+                               user->WriteNumeric(ERR_CANTUNLOADMODULE, modname, InspIRCd::Format("Failed to unload module %s: %s", modname.c_str(), ServerInstance->Modules->LastError().c_str()));
                        else
-                                ServerInstance->SNO->WriteGlobalSno('a', "Failed to unload module %s: %s", modname.c_str(), ServerInstance->Modules->LastError().c_str());
+                               ServerInstance->SNO->WriteGlobalSno('a', "Failed to unload module %s: %s", modname.c_str(), ServerInstance->Modules->LastError().c_str());
                }
        }
 
        for (std::vector<std::string>::iterator adding = added_modules.begin(); adding != added_modules.end(); adding++)
        {
-               if (ServerInstance->Modules->Load(adding->c_str()))
+               if (ServerInstance->Modules->Load(*adding))
                {
                        ServerInstance->SNO->WriteGlobalSno('a', "*** REHASH LOADED MODULE: %s",adding->c_str());
                        if (user)
-                               user->WriteNumeric(RPL_LOADEDMODULE, "%s :Module %s successfully loaded.", adding->c_str(), adding->c_str());
+                               user->WriteNumeric(RPL_LOADEDMODULE, *adding, InspIRCd::Format("Module %s successfully loaded.", adding->c_str()));
                        else
                                ServerInstance->SNO->WriteGlobalSno('a', "Module %s successfully loaded.", adding->c_str());
                }
                else
                {
                        if (user)
-                               user->WriteNumeric(ERR_CANTLOADMODULE, "%s :Failed to load module %s: %s", adding->c_str(), adding->c_str(), ServerInstance->Modules->LastError().c_str());
+                               user->WriteNumeric(ERR_CANTLOADMODULE, *adding, InspIRCd::Format("Failed to load module %s: %s", adding->c_str(), ServerInstance->Modules->LastError().c_str()));
                        else
                                ServerInstance->SNO->WriteGlobalSno('a', "Failed to load module %s: %s", adding->c_str(), ServerInstance->Modules->LastError().c_str());
                }
@@ -784,6 +784,7 @@ void ConfigReaderThread::Finish()
                 * XXX: The order of these is IMPORTANT, do not reorder them without testing
                 * thoroughly!!!
                 */
+               ServerInstance->Users.RehashCloneCounts();
                ServerInstance->XLines->CheckELines();
                ServerInstance->XLines->ApplyLines();
                ChanModeReference ban(NULL, "ban");