summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorAdam- <Adam-@5417fbe8-f217-4b02-8779-1006273d7864>2009-10-17 01:16:55 +0000
committerAdam- <Adam-@5417fbe8-f217-4b02-8779-1006273d7864>2009-10-17 01:16:55 +0000
commit11709eade60570b8a1bcb944658a96096ee7e062 (patch)
tree60dee26476de3d9a7552e679ce8a2d6d2c23d473 /src
parent3806cd84408317d358c22cbfd5aa8bac3e09c72e (diff)
Use the most recent NickServ collide/release timer for a nick instead of using the old and rejecting new ones
git-svn-id: http://anope.svn.sourceforge.net/svnroot/anope/trunk@2564 5417fbe8-f217-4b02-8779-1006273d7864
Diffstat (limited to 'src')
-rw-r--r--src/nickserv.c14
1 files changed, 14 insertions, 0 deletions
diff --git a/src/nickserv.c b/src/nickserv.c
index 22938b954..9ef0f8614 100644
--- a/src/nickserv.c
+++ b/src/nickserv.c
@@ -45,6 +45,13 @@ class NickServCollide : public Timer
NickServCollide(NickAlias *nickalias, time_t delay) : Timer(delay), na(nickalias)
{
+ /* Erase the current collide and use the new one */
+ std::map<NickAlias *, NickServCollide *>::iterator nit = NickServCollides.find(nickalias);
+ if (nit != NickServCollides.end())
+ {
+ NickServCollides.erase(nit);
+ }
+
it = NickServCollides.insert(std::make_pair(nickalias, this));
}
@@ -92,6 +99,13 @@ class NickServRelease : public Timer
NickServRelease(NickAlias *nickalias, time_t delay) : Timer(delay), na(nickalias)
{
+ /* Erase the current release timer and use the new one */
+ std::map<NickAlias *, NickServRelease *>::iterator nit = NickServReleases.find(nickalias);
+ if (nit != NickServReleases.end())
+ {
+ NickServReleases.erase(nit);
+ }
+
it = NickServReleases.insert(std::make_pair(nickalias, this));
}