summaryrefslogtreecommitdiff
path: root/modules/protocol
diff options
context:
space:
mode:
authorAdam <Adam@anope.org>2013-01-02 13:59:33 -0500
committerAdam <Adam@anope.org>2013-01-02 13:59:33 -0500
commit827469600e8cf98fea7aec09ceaa77a097300b72 (patch)
tree6c957be4e9f2a0c8c6eddf2537b8553f1f6ffdbb /modules/protocol
parentbf718e869892bf418051d0140d7628c69d4ee3c9 (diff)
Move nickserv validate stuff to an event in nickserv.cpp
Diffstat (limited to 'modules/protocol')
-rw-r--r--modules/protocol/bahamut.cpp16
-rw-r--r--modules/protocol/hybrid.cpp19
-rw-r--r--modules/protocol/inspircd11.cpp9
-rw-r--r--modules/protocol/inspircd12.cpp17
-rw-r--r--modules/protocol/ngircd.cpp4
-rw-r--r--modules/protocol/plexus.cpp40
-rw-r--r--modules/protocol/ratbox.cpp18
-rw-r--r--modules/protocol/unreal.cpp12
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> &params) 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]);