summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authordanieldg <danieldg@e03df62e-2008-0410-955e-edbf42e46eb7>2009-10-20 04:40:43 +0000
committerdanieldg <danieldg@e03df62e-2008-0410-955e-edbf42e46eb7>2009-10-20 04:40:43 +0000
commit9b8c61e7e73b6bac60adeb3aa4f4d8127b813558 (patch)
tree307e9fff958533d9cff52c1d1b5546d667b645fa
parentfb58653c413b276bc6b08cd9c72661c117a8bf89 (diff)
Fix interaction of m_permchannels post-cull and channel empty-by-quit that causes leaked channels
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@11933 e03df62e-2008-0410-955e-edbf42e46eb7
-rw-r--r--src/modules/m_permchannels.cpp1
-rw-r--r--src/users.cpp3
2 files changed, 1 insertions, 3 deletions
diff --git a/src/modules/m_permchannels.cpp b/src/modules/m_permchannels.cpp
index 3f10bbeb8..53004ff79 100644
--- a/src/modules/m_permchannels.cpp
+++ b/src/modules/m_permchannels.cpp
@@ -207,6 +207,7 @@ public:
else
iter++;
}
+ ServerInstance->Modes->DelMode(&p);
return Module::cull();
}
diff --git a/src/users.cpp b/src/users.cpp
index 2db223edb..fbb2309c3 100644
--- a/src/users.cpp
+++ b/src/users.cpp
@@ -1722,13 +1722,10 @@ ConnectClass* User::GetClass()
void User::PurgeEmptyChannels()
{
- std::vector<Channel*> to_delete;
-
// firstly decrement the count on each channel
for (UCListIter f = this->chans.begin(); f != this->chans.end(); f++)
{
Channel* c = *f;
- c->RemoveAllPrefixes(this);
c->DelUser(this);
}