aboutsummaryrefslogtreecommitdiff
path: root/src/modules/m_spanningtree
diff options
context:
space:
mode:
authorGravatar Sadie Powell2021-09-10 13:09:02 +0100
committerGravatar Sadie Powell2021-09-10 13:09:02 +0100
commitbec93a9ab8eff6df9f9180a108b29d59f0ad1d27 (patch)
tree77b570a7b2235839b8e386adaaca101339cc0d56 /src/modules/m_spanningtree
parentAdd the FRHOST command to allow changing a remote user's real host. (diff)
Always use ExtractTS to extract timestamps from S2S messages.
Diffstat (limited to 'src/modules/m_spanningtree')
-rw-r--r--src/modules/m_spanningtree/addline.cpp2
-rw-r--r--src/modules/m_spanningtree/away.cpp2
-rw-r--r--src/modules/m_spanningtree/save.cpp3
-rw-r--r--src/modules/m_spanningtree/servercommand.cpp8
-rw-r--r--src/modules/m_spanningtree/svsnick.cpp7
-rw-r--r--src/modules/m_spanningtree/treesocket2.cpp2
6 files changed, 10 insertions, 14 deletions
diff --git a/src/modules/m_spanningtree/addline.cpp b/src/modules/m_spanningtree/addline.cpp
index d408063dd..17f902cee 100644
--- a/src/modules/m_spanningtree/addline.cpp
+++ b/src/modules/m_spanningtree/addline.cpp
@@ -52,7 +52,7 @@ CmdResult CommandAddLine::Handle(User* usr, Params& params)
ServerInstance->SNO.WriteToSnoMask('x', "Unable to ADDLINE type %s from %s: %s", params[0].c_str(), setter.c_str(), e.GetReason().c_str());
return CmdResult::FAILURE;
}
- xl->SetCreateTime(ConvToNum<time_t>(params[3]));
+ xl->SetCreateTime(ServerCommand::ExtractTS(params[3]));
if (ServerInstance->XLines->AddLine(xl, NULL))
{
if (xl->duration)
diff --git a/src/modules/m_spanningtree/away.cpp b/src/modules/m_spanningtree/away.cpp
index 2baa89431..0fedd53e7 100644
--- a/src/modules/m_spanningtree/away.cpp
+++ b/src/modules/m_spanningtree/away.cpp
@@ -34,7 +34,7 @@ CmdResult CommandAway::HandleRemote(::RemoteUser* u, Params& params)
if (!params.empty())
{
if (params.size() > 1)
- u->awaytime = ConvToNum<time_t>(params[0]);
+ u->awaytime = ServerCommand::ExtractTS(params[0]);
else
u->awaytime = ServerInstance->Time();
diff --git a/src/modules/m_spanningtree/save.cpp b/src/modules/m_spanningtree/save.cpp
index aa3cddcc7..66c9797cd 100644
--- a/src/modules/m_spanningtree/save.cpp
+++ b/src/modules/m_spanningtree/save.cpp
@@ -36,8 +36,7 @@ CmdResult CommandSave::Handle(User* user, Params& params)
if (!u)
return CmdResult::FAILURE;
- time_t ts = ConvToNum<time_t>(params[1]);
-
+ time_t ts = ServerCommand::ExtractTS(params[1]);
if (u->age == ts)
u->ChangeNick(u->uuid, SavedTimestamp);
diff --git a/src/modules/m_spanningtree/servercommand.cpp b/src/modules/m_spanningtree/servercommand.cpp
index db12ea297..b4ce6775c 100644
--- a/src/modules/m_spanningtree/servercommand.cpp
+++ b/src/modules/m_spanningtree/servercommand.cpp
@@ -41,10 +41,10 @@ RouteDescriptor ServerCommand::GetRouting(User* user, const Params& parameters)
time_t ServerCommand::ExtractTS(const std::string& tsstr)
{
- time_t TS = ConvToNum<time_t>(tsstr);
- if (!TS)
- throw ProtocolException("Invalid TS");
- return TS;
+ time_t ts = ConvToNum<time_t>(tsstr);
+ if (ts <= 0)
+ throw ProtocolException("Invalid TS: " + tsstr);
+ return ts;
}
ServerCommand* ServerCommandManager::GetHandler(const std::string& command) const
diff --git a/src/modules/m_spanningtree/svsnick.cpp b/src/modules/m_spanningtree/svsnick.cpp
index 6d06c4d4a..df52d8252 100644
--- a/src/modules/m_spanningtree/svsnick.cpp
+++ b/src/modules/m_spanningtree/svsnick.cpp
@@ -51,7 +51,7 @@ CmdResult CommandSVSNick::Handle(User* user, Params& parameters)
// won't happen because the timestamps won't match.
if (parameters.size() > 3)
{
- time_t ExpectedTS = ConvToNum<time_t>(parameters[3]);
+ time_t ExpectedTS = ServerCommand::ExtractTS(parameters[3]);
if (u->age != ExpectedTS)
return CmdResult::FAILURE; // Ignore SVSNICK
}
@@ -60,10 +60,7 @@ CmdResult CommandSVSNick::Handle(User* user, Params& parameters)
if (isdigit(nick[0]))
nick = u->uuid;
- time_t NickTS = ConvToNum<time_t>(parameters[2]);
- if (NickTS <= 0)
- return CmdResult::FAILURE;
-
+ time_t NickTS = ServerCommand::ExtractTS(parameters[2]);
if (!u->ChangeNick(nick, NickTS))
{
// Changing to 'nick' failed (it may already be in use), change to the uuid
diff --git a/src/modules/m_spanningtree/treesocket2.cpp b/src/modules/m_spanningtree/treesocket2.cpp
index 8a9986153..de634e231 100644
--- a/src/modules/m_spanningtree/treesocket2.cpp
+++ b/src/modules/m_spanningtree/treesocket2.cpp
@@ -160,7 +160,7 @@ void TreeSocket::ProcessLine(std::string &line)
{
if (!params.empty())
{
- time_t them = ConvToNum<time_t>(params[0]);
+ time_t them = ServerCommand::ExtractTS(params[0]);
time_t delta = them - ServerInstance->Time();
if ((delta < -60) || (delta > 60))
{