X-Git-Url: https://git.netwichtig.de/gitweb/?a=blobdiff_plain;f=src%2Fmodules%2Fm_securelist.cpp;h=6d9b64df25f2184705b5733d9517e08d82ae8d68;hb=625e5435f51650f547f4411441c0b7b958c53d30;hp=b1aeeb9d44678905a9d961ba592302adf238497c;hpb=384ef31bc01e4a1a2e59d082c9066002410ba54a;p=user%2Fhenk%2Fcode%2Finspircd.git diff --git a/src/modules/m_securelist.cpp b/src/modules/m_securelist.cpp index b1aeeb9d4..6d9b64df2 100644 --- a/src/modules/m_securelist.cpp +++ b/src/modules/m_securelist.cpp @@ -22,9 +22,11 @@ #include "inspircd.h" #include "modules/account.h" +typedef std::vector AllowList; + class ModuleSecureList : public Module { - std::vector allowlist; + AllowList allowlist; bool exemptregistered; unsigned int WaitTime; @@ -36,15 +38,22 @@ class ModuleSecureList : public Module void ReadConfig(ConfigStatus& status) CXX11_OVERRIDE { - allowlist.clear(); + AllowList newallows; ConfigTagList tags = ServerInstance->Config->ConfTags("securehost"); for (ConfigIter i = tags.first; i != tags.second; ++i) - allowlist.push_back(i->second->getString("exception")); + { + std::string host = i->second->getString("exception"); + if (host.empty()) + throw ModuleException(" is a required field at " + i->second->getTagLocation()); + newallows.push_back(host); + } ConfigTag* tag = ServerInstance->Config->ConfValue("securelist"); + exemptregistered = tag->getBool("exemptregistered"); WaitTime = tag->getDuration("waittime", 60, 1); + allowlist.swap(newallows); } @@ -52,7 +61,7 @@ class ModuleSecureList : public Module * OnPreCommand() * Intercept the LIST command. */ - ModResult OnPreCommand(std::string& command, CommandBase::Params& parameters, LocalUser* user, bool validated, const std::string& original_line) CXX11_OVERRIDE + ModResult OnPreCommand(std::string& command, CommandBase::Params& parameters, LocalUser* user, bool validated) CXX11_OVERRIDE { /* If the command doesnt appear to be valid, we dont want to mess with it. */ if (!validated)