summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAdam <Adam@anope.org>2017-10-08 14:22:20 -0400
committerAdam <Adam@anope.org>2017-10-08 14:22:20 -0400
commiteb1976d11ea56bfac045c0eb92e7daae8a688c28 (patch)
treee5ef463bec76d0a0cc36c748030ba47b252c241f
parent2cb0d9057bf1968d36168a76e25f4cf4d3b33fbf (diff)
Fix caching xline mask
-rw-r--r--include/xline.h2
-rw-r--r--modules/operserv/akill.cpp1
-rw-r--r--src/xline.cpp5
3 files changed, 4 insertions, 4 deletions
diff --git a/include/xline.h b/include/xline.h
index 8f772fbe8..8b718ba93 100644
--- a/include/xline.h
+++ b/include/xline.h
@@ -27,7 +27,7 @@
/* An XLine, eg, anything added with operserv/akill, or any of the operserv/sxline commands */
class CoreExport XLine : public Serialize::Object
{
- void Recache();
+ void Recache(const Anope::string &mask);
Anope::string nick, user, host, real;
friend class XLineType;
diff --git a/modules/operserv/akill.cpp b/modules/operserv/akill.cpp
index 34af97c76..8a752312a 100644
--- a/modules/operserv/akill.cpp
+++ b/modules/operserv/akill.cpp
@@ -355,6 +355,7 @@ class CommandOSAKill : public Command
if (Anope::ReadOnly)
source.Reply(_("Services are in read-only mode. Any changes made may not persist."));
}
+
public:
CommandOSAKill(Module *creator) : Command(creator, "operserv/akill", 1, 2)
, akills("xlinemanager/sgline")
diff --git a/src/xline.cpp b/src/xline.cpp
index d0e058f09..baaca5976 100644
--- a/src/xline.cpp
+++ b/src/xline.cpp
@@ -29,7 +29,7 @@
/* List of XLine managers we check users against in XLineManager::CheckAll */
std::vector<XLineManager *> XLineManager::XLineManagers;
-void XLine::Recache()
+void XLine::Recache(const Anope::string &xlmask)
{
delete regex;
regex = nullptr;
@@ -37,7 +37,6 @@ void XLine::Recache()
delete c;
c = nullptr;
- Anope::string xlmask = GetMask();
if (xlmask.length() >= 2 && xlmask[0] == '/' && xlmask[xlmask.length() - 1] == '/' && Config->regex_flags)
{
Anope::string stripped_mask = xlmask.substr(1, xlmask.length() - 2);
@@ -223,7 +222,7 @@ XLineManager *XLine::GetManager()
void XLineType::Mask::OnSet(XLine *s, const Anope::string &value)
{
- s->Recache();
+ s->Recache(value);
}
void XLineManager::RegisterXLineManager(XLineManager *xlm)