diff options
Diffstat (limited to 'modules/protocol/inspircd12.cpp')
-rw-r--r-- | modules/protocol/inspircd12.cpp | 20 |
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) |