summaryrefslogtreecommitdiff
path: root/modules/protocol/inspircd12.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'modules/protocol/inspircd12.cpp')
-rw-r--r--modules/protocol/inspircd12.cpp20
1 files changed, 12 insertions, 8 deletions
diff --git a/modules/protocol/inspircd12.cpp b/modules/protocol/inspircd12.cpp
index 27f692956..42e897aa4 100644
--- a/modules/protocol/inspircd12.cpp
+++ b/modules/protocol/inspircd12.cpp
@@ -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)