summaryrefslogtreecommitdiff
path: root/modules/pseudoclients/chanserv.cpp
diff options
context:
space:
mode:
authorAdam <Adam@anope.org>2014-05-14 19:10:23 -0400
committerAdam <Adam@anope.org>2014-05-14 19:10:23 -0400
commitdf321a118e7dd44dcd3a389f8ee75e9ff915b55e (patch)
treef77aa4b3a73884c4a095df12be692292c8694bc0 /modules/pseudoclients/chanserv.cpp
parent1931fcf0e5ffe34005d134e49c55d1b6239d1a6c (diff)
Fix access lists showing the wrong mask if the display nick for a group
expires but the group still exists. This can cause access entries for nicks to not be deleted whenever the nicks are deleted.
Diffstat (limited to 'modules/pseudoclients/chanserv.cpp')
-rw-r--r--modules/pseudoclients/chanserv.cpp9
1 files changed, 4 insertions, 5 deletions
diff --git a/modules/pseudoclients/chanserv.cpp b/modules/pseudoclients/chanserv.cpp
index 250296f55..3640a006c 100644
--- a/modules/pseudoclients/chanserv.cpp
+++ b/modules/pseudoclients/chanserv.cpp
@@ -154,7 +154,7 @@ class ChanServCore : public Module, public ChanServService
for (unsigned j = 0; j < ci->GetAccessCount(); ++j)
{
const ChanAccess *ca = ci->GetAccess(j);
- const NickCore *anc = NickCore::Find(ca->mask);
+ NickCore *anc = ca->GetAccount();
if (!anc || (!anc->IsServicesOper() && max_reg && anc->channelcount >= max_reg) || (anc == nc))
continue;
@@ -162,7 +162,7 @@ class ChanServCore : public Module, public ChanServService
highest = ca;
}
if (highest)
- newowner = NickCore::Find(highest->mask);
+ newowner = highest->GetAccount();
}
if (newowner)
@@ -186,9 +186,8 @@ class ChanServCore : public Module, public ChanServService
for (unsigned j = 0; j < ci->GetAccessCount(); ++j)
{
const ChanAccess *ca = ci->GetAccess(j);
- const NickCore *anc = NickCore::Find(ca->mask);
- if (anc && anc == nc)
+ if (ca->GetAccount() == nc)
{
delete ci->EraseAccess(j);
break;
@@ -224,7 +223,7 @@ class ChanServCore : public Module, public ChanServService
{
ChanAccess *a = c->GetAccess(j);
- if (a->mask.equals_ci(ci->name))
+ if (a->Mask().equals_ci(ci->name))
{
delete a;
break;