From 1348ef100ea092c8e7fa3cd395b6b81023a2177f Mon Sep 17 00:00:00 2001 From: Adam- Date: Sun, 30 Aug 2009 05:20:09 +0000 Subject: [PATCH] Properly keep track of services enforcer clients internally, they should now quit when theyre supposed to! git-svn-id: http://anope.svn.sourceforge.net/svnroot/anope/trunk@2483 5417fbe8-f217-4b02-8779-1006273d7864 --- src/nickserv.c | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/src/nickserv.c b/src/nickserv.c index 3cd25e671..5af6833fc 100644 --- a/src/nickserv.c +++ b/src/nickserv.c @@ -41,10 +41,16 @@ class NickServCollide : public Timer { public: NickAlias *na; + std::map::iterator nit; NickServCollide(NickAlias *nickalias, time_t delay) : Timer(delay), na(nickalias) { - NickServCollides.insert(std::make_pair(nickalias, this)); + nit = NickServCollides.insert(std::make_pair(nickalias, this)).first; + } + + ~NickServCollide() + { + NickServCollides.erase(nit); } void Tick(time_t ctime) @@ -79,10 +85,16 @@ class NickServRelease : public Timer public: NickAlias *na; std::string uid; + std::map::iterator nit; NickServRelease(NickAlias *nickalias, time_t delay) : Timer(delay), na(nickalias) { - NickServReleases.insert(std::make_pair(nickalias, this)); + nit = NickServReleases.insert(std::make_pair(nickalias, this)).first; + } + + ~NickServRelease() + { + NickServReleases.erase(nit); } void Tick(time_t ctime)