diff options
author | Adam <Adam@anope.org> | 2013-01-02 13:59:33 -0500 |
---|---|---|
committer | Adam <Adam@anope.org> | 2013-01-02 13:59:33 -0500 |
commit | 827469600e8cf98fea7aec09ceaa77a097300b72 (patch) | |
tree | 6c957be4e9f2a0c8c6eddf2537b8553f1f6ffdbb /modules/protocol | |
parent | bf718e869892bf418051d0140d7628c69d4ee3c9 (diff) |
Move nickserv validate stuff to an event in nickserv.cpp
Diffstat (limited to 'modules/protocol')
-rw-r--r-- | modules/protocol/bahamut.cpp | 16 | ||||
-rw-r--r-- | modules/protocol/hybrid.cpp | 19 | ||||
-rw-r--r-- | modules/protocol/inspircd11.cpp | 9 | ||||
-rw-r--r-- | modules/protocol/inspircd12.cpp | 17 | ||||
-rw-r--r-- | modules/protocol/ngircd.cpp | 4 | ||||
-rw-r--r-- | modules/protocol/plexus.cpp | 40 | ||||
-rw-r--r-- | modules/protocol/ratbox.cpp | 18 | ||||
-rw-r--r-- | modules/protocol/unreal.cpp | 12 |
8 files changed, 36 insertions, 99 deletions
diff --git a/modules/protocol/bahamut.cpp b/modules/protocol/bahamut.cpp index 22a59ebce..8ca8ded7b 100644 --- a/modules/protocol/bahamut.cpp +++ b/modules/protocol/bahamut.cpp @@ -385,19 +385,13 @@ struct IRCDMessageNick : IRCDMessage } User *user = new User(params[0], params[4], params[5], "", params[8], s, params[9], params[2].is_pos_number_only() ? convertTo<time_t>(params[2]) : 0, params[3]); - if (user && NickServService) + try { - const NickAlias *na; - if (user->signon == convertTo<time_t>(params[7]) && (na = NickAlias::Find(user->nick))) - { - NickCore *nc = na->nc; - user->Login(nc); - if (!Config->NoNicknameOwnership && na->nc->HasFlag(NI_UNCONFIRMED) == false) - user->SetMode(NickServ, UMODE_REGISTERED); - } - else - NickServService->Validate(user); + NickAlias *na; + if (NickServService && user->signon == convertTo<time_t>(params[7]) && (na = NickAlias::Find(user->nick))) + NickServService->Login(user, na); } + catch (const ConvertException &) { } } else source.GetUser()->ChangeNick(params[0]); diff --git a/modules/protocol/hybrid.cpp b/modules/protocol/hybrid.cpp index 55c126a90..bc4fd55f4 100644 --- a/modules/protocol/hybrid.cpp +++ b/modules/protocol/hybrid.cpp @@ -502,22 +502,11 @@ struct IRCDMessageUID : IRCDMessage params[9], params[2].is_pos_number_only() ? convertTo<time_t>(params[2]) : 0, params[3], params[7]); - if (user && NickServService) + if (NickServService && params[8] != "0") { - const NickAlias *na = NULL; - - if (params[8] != "0") - na = NickAlias::Find(params[8]); - - if (na) - { - user->Login(na->nc); - - if (!Config->NoNicknameOwnership && na->nc->HasFlag(NI_UNCONFIRMED) == false) - user->SetMode(NickServ, UMODE_REGISTERED); - } - else - NickServService->Validate(user); + NickAlias *na = NickAlias::Find(params[8]); + if (na != NULL) + NickServService->Login(user, na); } } }; diff --git a/modules/protocol/inspircd11.cpp b/modules/protocol/inspircd11.cpp index c95645de9..5a6d19af7 100644 --- a/modules/protocol/inspircd11.cpp +++ b/modules/protocol/inspircd11.cpp @@ -766,14 +766,7 @@ struct IRCDMessageNick : IRCDMessage NickAlias *na = NickAlias::Find(user->nick); Anope::string *svidbuf = na ? na->nc->GetExt<ExtensibleItemClass<Anope::string> *>("authenticationtoken") : NULL; if (na && svidbuf && *svidbuf == params[0]) - { - NickCore *nc = na->nc; - user->Login(nc); - if (!Config->NoNicknameOwnership && na->nc->HasFlag(NI_UNCONFIRMED) == false) - user->SetMode(NickServ, UMODE_REGISTERED); - } - else - NickServService->Validate(user); + NickServService->Login(user, na); } } else if (params.size() == 1 && source.GetUser()) diff --git a/modules/protocol/inspircd12.cpp b/modules/protocol/inspircd12.cpp index 89540b6f4..963b75473 100644 --- a/modules/protocol/inspircd12.cpp +++ b/modules/protocol/inspircd12.cpp @@ -1161,9 +1161,7 @@ struct IRCDMessageUID : IRCDMessage for (unsigned i = 9; i < params.size() - 1; ++i) modes += " " + params[i]; - User *u = new User(params[2], params[5], params[3], params[4], params[6], source.GetServer(), params[params.size() - 1], ts, modes, params[0]); - if (u->server->IsSynced() && NickServService) - NickServService->Validate(u); + new User(params[2], params[5], params[3], params[4], params[6], source.GetServer(), params[params.size() - 1], ts, modes, params[0]); } }; @@ -1221,7 +1219,7 @@ class ProtoInspIRCd : public Module { this->SetAuthor("Anope"); - Implementation i[] = { I_OnUserNickChange, I_OnServerSync }; + Implementation i[] = { I_OnUserNickChange }; ModuleManager::Attach(i, this, sizeof(i) / sizeof(Implementation)); Servers::Capab.insert("NOQUIT"); @@ -1244,17 +1242,6 @@ class ProtoInspIRCd : public Module */ u->RemoveMode(NickServ, UMODE_REGISTERED); } - - void OnServerSync(Server *s) anope_override - { - if (NickServService) - for (user_map::const_iterator it = UserListByNick.begin(); it != UserListByNick.end(); ++it) - { - User *u = it->second; - if (u->server == s && !u->IsIdentified()) - NickServService->Validate(u); - } - } }; MODULE_INIT(ProtoInspIRCd) diff --git a/modules/protocol/ngircd.cpp b/modules/protocol/ngircd.cpp index 794bb302d..52dc550ab 100644 --- a/modules/protocol/ngircd.cpp +++ b/modules/protocol/ngircd.cpp @@ -432,9 +432,7 @@ struct IRCDMessageNick : IRCDMessage else if (params.size() == 7) { // a new user is connecting to the network - User *user = new User(params[0], params[2], params[3], "", "", source.GetServer(), params[6], Anope::CurTime, params[5], ""); - if (user && NickServService) - NickServService->Validate(user); + new User(params[0], params[2], params[3], "", "", source.GetServer(), params[6], Anope::CurTime, params[5], ""); } else { diff --git a/modules/protocol/plexus.cpp b/modules/protocol/plexus.cpp index 24ee42746..5cb248bab 100644 --- a/modules/protocol/plexus.cpp +++ b/modules/protocol/plexus.cpp @@ -261,15 +261,27 @@ struct IRCDMessageUID : IRCDMessage if (ip == "0") ip.clear(); - User *user = new User(params[0], params[4], params[9], params[5], ip, source.GetServer(), params[10], params[2].is_pos_number_only() ? convertTo<time_t>(params[2]) : 0, params[3], params[7]); - if (params[8] != "0" && params[8].is_pos_number_only() && convertTo<time_t>(params[8]) == user->timestamp) + time_t ts; + try { - NickAlias *na = NickAlias::Find(user->nick); - if (na) - user->Login(na->nc); + ts = convertTo<time_t>(params[2]); } - else if (user && user->server->IsSynced() && NickServService) - NickServService->Validate(user); + catch (const ConvertException &) + { + ts = Anope::CurTime; + } + + User *user = new User(params[0], params[4], params[9], params[5], ip, source.GetServer(), params[10], ts, params[3], params[7]); + try + { + if (NickServService && params[8].is_pos_number_only() && convertTo<time_t>(params[8]) == user->timestamp) + { + NickAlias *na = NickAlias::Find(user->nick); + if (na) + NickServService->Login(user, na); + } + } + catch (const ConvertException &) { } } }; @@ -363,26 +375,12 @@ class ProtoPlexus : public Module throw ModuleException("No protocol interface for hybrid"); this->AddModes(); - - Implementation i[] = { I_OnServerSync }; - ModuleManager::Attach(i, this, sizeof(i) / sizeof(Implementation)); } ~ProtoPlexus() { ModuleManager::UnloadModule(m_hybrid, NULL); } - - void OnServerSync(Server *s) anope_override - { - if (NickServService) - for (user_map::const_iterator it = UserListByNick.begin(); it != UserListByNick.end(); ++it) - { - User *u = it->second; - if (u->server == s && !u->IsIdentified()) - NickServService->Validate(u); - } - } }; MODULE_INIT(ProtoPlexus) diff --git a/modules/protocol/ratbox.cpp b/modules/protocol/ratbox.cpp index 52795485f..9e2155cf4 100644 --- a/modules/protocol/ratbox.cpp +++ b/modules/protocol/ratbox.cpp @@ -171,9 +171,7 @@ struct IRCDMessageUID : IRCDMessage void Run(MessageSource &source, const std::vector<Anope::string> ¶ms) anope_override { /* Source is always the server */ - User *user = new User(params[0], params[4], params[5], "", params[6], source.GetServer(), params[8], params[2].is_pos_number_only() ? convertTo<time_t>(params[2]) : 0, params[3], params[7]); - if (user && user->server->IsSynced() && NickServService) - NickServService->Validate(user); + new User(params[0], params[4], params[5], "", params[6], source.GetServer(), params[8], params[2].is_pos_number_only() ? convertTo<time_t>(params[2]) : 0, params[3], params[7]); } }; @@ -255,26 +253,12 @@ class ProtoRatbox : public Module throw ModuleException("No protocol interface for hybrid"); this->AddModes(); - - Implementation i[] = { I_OnServerSync }; - ModuleManager::Attach(i, this, sizeof(i) / sizeof(Implementation)); } ~ProtoRatbox() { ModuleManager::UnloadModule(m_hybrid, NULL); } - - void OnServerSync(Server *s) anope_override - { - if (NickServService) - for (user_map::const_iterator it = UserListByNick.begin(); it != UserListByNick.end(); ++it) - { - User *u = it->second; - if (u->server == s && !u->IsIdentified()) - NickServService->Validate(u); - } - } }; MODULE_INIT(ProtoRatbox) diff --git a/modules/protocol/unreal.cpp b/modules/protocol/unreal.cpp index 467724c49..bba15deec 100644 --- a/modules/protocol/unreal.cpp +++ b/modules/protocol/unreal.cpp @@ -803,7 +803,7 @@ struct IRCDMessageNick : IRCDMessage User *user = new User(params[0], params[3], params[4], vhost, ip, s, params[10], user_ts, params[7]); - const NickAlias *na = NULL; + NickAlias *na = NULL; if (params[6] == "0") ; @@ -817,14 +817,8 @@ struct IRCDMessageNick : IRCDMessage na = NickAlias::Find(params[6]); } - if (na) - { - user->Login(na->nc); - if (!Config->NoNicknameOwnership && na->nc->HasFlag(NI_UNCONFIRMED) == false) - user->SetMode(NickServ, UMODE_REGISTERED); - } - else if (NickServService) - NickServService->Validate(user); + if (na && NickServService) + NickServService->Login(user, na); } else source.GetUser()->ChangeNick(params[0]); |