mirror of
https://github.com/anope/anope.git
synced 2026-07-05 14:03:13 +02:00
Fix User::IsIdentified with check_nick, do not remove +r on bursting clients until after server sync
This commit is contained in:
@@ -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);
|
||||
}
|
||||
|
||||
|
||||
+1
-1
@@ -367,7 +367,7 @@ bool User::IsIdentified(bool check_nick) const
|
||||
{
|
||||
if (check_nick && this->nc)
|
||||
{
|
||||
NickAlias *na = NickAlias::Find(this->nc->display);
|
||||
NickAlias *na = NickAlias::Find(this->nick);
|
||||
return na && *na->nc == *this->nc;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user