diff options
author | Adam- <Adam-@5417fbe8-f217-4b02-8779-1006273d7864> | 2009-08-30 05:20:09 +0000 |
---|---|---|
committer | Adam- <Adam-@5417fbe8-f217-4b02-8779-1006273d7864> | 2009-08-30 05:20:09 +0000 |
commit | 1348ef100ea092c8e7fa3cd395b6b81023a2177f (patch) | |
tree | 35d736d17ec1b3104a4b5c57a1d17cf5e98b1c03 /src | |
parent | bcffb94eaa52b53678cbbba2bbdbc004f8394e87 (diff) |
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
Diffstat (limited to 'src')
-rw-r--r-- | src/nickserv.c | 16 |
1 files 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<NickAlias *, NickServCollide *>::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<NickAlias *, NickServRelease *>::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) |