1
0
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:
Adam
2011-03-11 17:09:49 -05:00
parent 1b2f3bf369
commit 46a3afadb9
4 changed files with 51 additions and 34 deletions
+12 -8
View File
@@ -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)
+12 -8
View File
@@ -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)
+13 -8
View File
@@ -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
View File
@@ -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> &params)
{
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);
}
}
};