diff options
-rw-r--r-- | include/commands/cmd_oper.h | 2 | ||||
-rw-r--r-- | src/modules/extra/m_sqloper.cpp | 15 |
2 files changed, 16 insertions, 1 deletions
diff --git a/include/commands/cmd_oper.h b/include/commands/cmd_oper.h index bca358165..3ec8cbca7 100644 --- a/include/commands/cmd_oper.h +++ b/include/commands/cmd_oper.h @@ -19,7 +19,7 @@ #include "users.h" #include "channels.h" -CoreExport bool OneOfMatches(const char* host, const char* ip, const char* hostlist); +bool OneOfMatches(const char* host, const char* ip, const char* hostlist); /** Handle /OPER. These command handlers can be reloaded by the core, * and handle basic RFC1459 commands. Commands within modules work diff --git a/src/modules/extra/m_sqloper.cpp b/src/modules/extra/m_sqloper.cpp index ca6a2149e..a273e15c1 100644 --- a/src/modules/extra/m_sqloper.cpp +++ b/src/modules/extra/m_sqloper.cpp @@ -78,6 +78,21 @@ public: ServerInstance->Modules->Attach(eventlist, this, 3); } + + bool OneOfMatches(const char* host, const char* ip, const char* hostlist) + { + std::stringstream hl(hostlist); + std::string xhost; + while (hl >> xhost) + { + if (InspIRCd::Match(host, xhost, NULL) || InspIRCd::MatchCIDR(ip, xhost, NULL)) + { + return true; + } + } + return false; + } + virtual void OnLoadModule(Module* mod, const std::string& name) { if (ServerInstance->Modules->ModuleHasInterface(mod, "HashRequest")) |