diff options
| author | Adam <Adam@anope.org> | 2013-08-25 23:26:45 -0400 |
|---|---|---|
| committer | Adam <Adam@anope.org> | 2013-08-25 23:26:45 -0400 |
| commit | 6b79349e6c7ea2174c90c2567dde2038ebd59276 (patch) | |
| tree | 4685efb23c9ddbcd8d43621567346a3490998a8f /modules/pseudoclients | |
| parent | 678f54903d3c18d6478f6be9e29a45eec62ef421 (diff) | |
Fix User::IsIdentified with check_nick, do not remove +r on bursting clients until after server sync
Diffstat (limited to 'modules/pseudoclients')
| -rw-r--r-- | modules/pseudoclients/nickserv.cpp | 12 |
1 files changed, 9 insertions, 3 deletions
diff --git a/modules/pseudoclients/nickserv.cpp b/modules/pseudoclients/nickserv.cpp index 6700dce48..c57039bee 100644 --- a/modules/pseudoclients/nickserv.cpp +++ b/modules/pseudoclients/nickserv.cpp @@ -378,8 +378,14 @@ class NickServCore : public Module, public NickServService for (user_map::const_iterator it = UserListByNick.begin(); it != UserListByNick.end(); ++it) { User *u = it->second; - if (u->server == s && !u->IsIdentified()) - this->Validate(u); + + if (u->server == s) + { + if (u->HasMode("REGISTERED") && !u->IsIdentified(true)) + u->RemoveMode(NickServ, "REGISTERED"); + if (!u->IsIdentified()) + this->Validate(u); + } } } @@ -409,7 +415,7 @@ class NickServCore : public Module, public NickServService void OnUserModeSet(const MessageSource &setter, User *u, const Anope::string &mname) anope_override { - if (mname == "REGISTERED" && !u->IsIdentified()) + if (u->server->IsSynced() && mname == "REGISTERED" && !u->IsIdentified(true)) u->RemoveMode(NickServ, mname); } |
