summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--include/commands/cmd_oper.h2
-rw-r--r--src/modules/extra/m_sqloper.cpp15
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"))