diff options
author | Adam <Adam@anope.org> | 2013-05-28 21:07:07 -0400 |
---|---|---|
committer | Adam <Adam@anope.org> | 2013-05-28 21:07:07 -0400 |
commit | 576aaff3da727c1a929c28ff0fab064eba4826e4 (patch) | |
tree | 833d6eb0d2f84b278c70fdc75cf1a2f2ec473b77 | |
parent | c5bc8fab324480863d93bdba1ab6ba5124e28666 (diff) |
Don't compare system time to a users timestamp to determine when to collide with a user, if the time on services vs the ircd are different it does weird things
-rw-r--r-- | modules/pseudoclients/nickserv.cpp | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/modules/pseudoclients/nickserv.cpp b/modules/pseudoclients/nickserv.cpp index 2e80211b0..04aabbc4f 100644 --- a/modules/pseudoclients/nickserv.cpp +++ b/modules/pseudoclients/nickserv.cpp @@ -17,10 +17,11 @@ class NickServCollide : public Timer { NickServService *service; Reference<User> u; + time_t ts; Reference<NickAlias> na; public: - NickServCollide(NickServService *nss, User *user, NickAlias *nick, time_t delay) : Timer(delay), service(nss), u(user), na(nick) + NickServCollide(NickServService *nss, User *user, NickAlias *nick, time_t delay) : Timer(delay), service(nss), u(user), ts(user->timestamp), na(nick) { } @@ -29,7 +30,7 @@ class NickServCollide : public Timer if (!u || !na) return; /* If they identified or don't exist anymore, don't kill them. */ - if (u->Account() == na->nc || u->timestamp > this->GetSetTime()) + if (u->Account() == na->nc || u->timestamp > ts) return; service->Collide(u, na); @@ -56,7 +57,7 @@ class NickServHeld : public Timer /** Timer for releasing nicks to be available for use */ -class CoreExport NickServRelease : public User, public Timer +class NickServRelease : public User, public Timer { static std::map<Anope::string, NickServRelease *> NickServReleases; Anope::string nick; |