mirror of
https://github.com/anope/anope.git
synced 2026-06-27 23:36:39 +02:00
Fixed validating users on all server syncs
This commit is contained in:
@@ -298,13 +298,6 @@ bool event_endburst(const Anope::string &source, const std::vector<Anope::string
|
||||
if (!s)
|
||||
throw CoreException("Got ENDBURST without a source");
|
||||
|
||||
for (patricia_tree<User *, ci::ci_char_traits>::iterator it(UserListByNick); it.next();)
|
||||
{
|
||||
User *u = *it;
|
||||
if (u->server == s && !u->IsIdentified())
|
||||
validate_user(u);
|
||||
}
|
||||
|
||||
Log(LOG_DEBUG) << "Processed ENDBURST for " << s->GetName();
|
||||
|
||||
s->Sync(true);
|
||||
@@ -760,7 +753,8 @@ class ProtoInspIRCd : public Module
|
||||
|
||||
Capab.SetFlag(CAPAB_NOQUIT);
|
||||
|
||||
ModuleManager::Attach(I_OnUserNickChange, this);
|
||||
Implementation i[] = { I_OnUserNickChange, I_OnServerSync };
|
||||
ModuleManager::Attach(i, this, 2);
|
||||
}
|
||||
|
||||
void OnUserNickChange(User *u, const Anope::string &)
|
||||
@@ -770,6 +764,16 @@ class ProtoInspIRCd : public Module
|
||||
*/
|
||||
u->RemoveMode(NickServ, UMODE_REGISTERED);
|
||||
}
|
||||
|
||||
void OnServerSync(Server *s)
|
||||
{
|
||||
for (patricia_tree<User *, ci::ci_char_traits>::iterator it(UserListByNick); it.next();)
|
||||
{
|
||||
User *u = *it;
|
||||
if (u->server == s && !u->IsIdentified())
|
||||
validate_user(u);
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
MODULE_INIT(ProtoInspIRCd)
|
||||
|
||||
@@ -308,13 +308,6 @@ bool event_endburst(const Anope::string &source, const std::vector<Anope::string
|
||||
if (!s)
|
||||
throw CoreException("Got ENDBURST without a source");
|
||||
|
||||
for (patricia_tree<User *, ci::ci_char_traits>::iterator it(UserListByNick); it.next();)
|
||||
{
|
||||
User *u = *it;
|
||||
if (u->server == s && !u->IsIdentified())
|
||||
validate_user(u);
|
||||
}
|
||||
|
||||
Log(LOG_DEBUG) << "Processed ENDBURST for " << s->GetName();
|
||||
|
||||
s->Sync(true);
|
||||
@@ -754,13 +747,24 @@ class ProtoInspIRCd : public Module
|
||||
|
||||
Capab.SetFlag(CAPAB_NOQUIT);
|
||||
|
||||
ModuleManager::Attach(I_OnUserNickChange, this);
|
||||
Implementation i[] = { I_OnUserNickChange, I_OnServerSync };
|
||||
ModuleManager::Attach(i, this, 2);
|
||||
}
|
||||
|
||||
void OnUserNickChange(User *u, const Anope::string &)
|
||||
{
|
||||
u->RemoveModeInternal(ModeManager::FindUserModeByName(UMODE_REGISTERED));
|
||||
}
|
||||
|
||||
void OnServerSync(Server *s)
|
||||
{
|
||||
for (patricia_tree<User *, ci::ci_char_traits>::iterator it(UserListByNick); it.next();)
|
||||
{
|
||||
User *u = *it;
|
||||
if (u->server == s && !u->IsIdentified())
|
||||
validate_user(u);
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
MODULE_INIT(ProtoInspIRCd)
|
||||
|
||||
@@ -554,15 +554,7 @@ bool event_eob(const Anope::string &source, const std::vector<Anope::string> &pa
|
||||
{
|
||||
Server *s = Server::Find(source);
|
||||
if (s)
|
||||
{
|
||||
s->Sync(true);
|
||||
for (patricia_tree<User *, ci::ci_char_traits>::iterator it(UserListByNick); it.next();)
|
||||
{
|
||||
User *u = *it;
|
||||
if (u->server == s && !u->IsIdentified())
|
||||
validate_user(u);
|
||||
}
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
@@ -644,6 +636,19 @@ class ProtoPlexus : public Module
|
||||
pmodule_ircd_message(&this->ircd_message);
|
||||
|
||||
this->AddModes();
|
||||
|
||||
Implementation i[] = { I_OnServerSync };
|
||||
ModuleManager::Attach(i, this, 1);
|
||||
}
|
||||
|
||||
void OnServerSync(Server *s)
|
||||
{
|
||||
for (patricia_tree<User *, ci::ci_char_traits>::iterator it(UserListByNick); it.next();)
|
||||
{
|
||||
User *u = *it;
|
||||
if (u->server == s && !u->IsIdentified())
|
||||
validate_user(u);
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
+14
-10
@@ -474,17 +474,8 @@ bool event_encap(const Anope::string &source, const std::vector<Anope::string> &
|
||||
bool event_pong(const Anope::string &source, const std::vector<Anope::string> ¶ms)
|
||||
{
|
||||
Server *s = Server::Find(source);
|
||||
if (s && !s->IsSynced())
|
||||
{
|
||||
if (s)
|
||||
s->Sync(false);
|
||||
|
||||
for (patricia_tree<User *, ci::ci_char_traits>::iterator it(UserListByNick); it.next();)
|
||||
{
|
||||
User *u = *it;
|
||||
if (u->server == s && !u->IsIdentified())
|
||||
validate_user(u);
|
||||
}
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
@@ -580,6 +571,19 @@ class ProtoRatbox : public Module
|
||||
pmodule_ircd_message(&this->ircd_message);
|
||||
|
||||
this->AddModes();
|
||||
|
||||
Implementation i[] = { I_OnServerSync };
|
||||
ModuleManager::Attach(i, this, 1);
|
||||
}
|
||||
|
||||
void OnServerSync(Server *s)
|
||||
{
|
||||
for (patricia_tree<User *, ci::ci_char_traits>::iterator it(UserListByNick); it.next();)
|
||||
{
|
||||
User *u = *it;
|
||||
if (u->server == s && !u->IsIdentified())
|
||||
validate_user(u);
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
Reference in New Issue
Block a user