/*
* InspIRCd -- Internet Relay Chat Daemon
*
- * Copyright (C) 2007-2008, 2012 Robin Burchell <robin+git@viroteck.net>
+ * Copyright (C) 2019 linuxdaemon <linuxdaemon.irc@gmail.com>
+ * Copyright (C) 2013, 2018-2020 Sadie Powell <sadie@witchery.services>
+ * Copyright (C) 2013 Adam <Adam@anope.org>
+ * Copyright (C) 2012-2016 Attila Molnar <attilamolnar@hush.com>
+ * Copyright (C) 2012, 2019 Robby <robby@chatbelgie.be>
* Copyright (C) 2009-2010 Daniel De Graaf <danieldg@inspircd.org>
- * Copyright (C) 2007-2008 Craig Edwards <craigedwards@brainbox.cc>
- * Copyright (C) 2008 Pippijn van Steenhoven <pip88nl@gmail.com>
- * Copyright (C) 2008 Thomas Stagner <aquanight@inspircd.org>
+ * Copyright (C) 2008, 2012 Robin Burchell <robin+git@viroteck.net>
+ * Copyright (C) 2007-2008, 2010 Craig Edwards <brain@inspircd.org>
* Copyright (C) 2007 Dennis Friis <peavey@inspircd.org>
*
* This file is part of InspIRCd. InspIRCd is free software: you can
}
else if (command == "BURST")
{
- if (params.size())
+ if (!params.empty())
{
time_t them = ConvToNum<time_t>(params[0]);
time_t delta = them - ServerInstance->Time();
- if ((delta < -600) || (delta > 600))
+ if ((delta < -60) || (delta > 60))
{
- ServerInstance->SNO->WriteGlobalSno('l',"\2ERROR\2: Your clocks are out by %ld seconds (this is more than five minutes). Link aborted, \2PLEASE SYNC YOUR CLOCKS!\2",labs((long)delta));
- SendError("Your clocks are out by "+ConvToStr(labs((long)delta))+" seconds (this is more than five minutes). Link aborted, PLEASE SYNC YOUR CLOCKS!");
+ ServerInstance->SNO->WriteGlobalSno('l', "\002ERROR\002: Your clocks are off by %ld seconds (this is more than one minute). Link aborted, \002PLEASE SYNC YOUR CLOCKS!\002", labs((long)delta));
+ SendError("Your clocks are out by "+ConvToStr(labs((long)delta))+" seconds (this is more than one minute). Link aborted, PLEASE SYNC YOUR CLOCKS!");
return;
}
- else if ((delta < -30) || (delta > 30))
+ else if ((delta < -15) || (delta > 15))
{
- ServerInstance->SNO->WriteGlobalSno('l',"\2WARNING\2: Your clocks are out by %ld seconds. Please consider synching your clocks.", labs((long)delta));
+ ServerInstance->SNO->WriteGlobalSno('l', "\002WARNING\002: Your clocks are off by %ld seconds. Please consider syncing your clocks.", labs((long)delta));
}
}
for (Events::ModuleEventProvider::SubscriberList::const_iterator i = list.begin(); i != list.end(); ++i)
{
ClientProtocol::MessageTagProvider* const tagprov = static_cast<ClientProtocol::MessageTagProvider*>(*i);
- const ModResult res = tagprov->OnClientProtocolProcessTag(source, tagkey, tagval);
+ const ModResult res = tagprov->OnProcessTag(source, tagkey, tagval);
if (res == MOD_RES_ALLOW)
tags.insert(std::make_pair(tagkey, ClientProtocol::MessageTagData(tagprov, tagval)));
else if (res == MOD_RES_DENY)
}
// Translate commands coming from servers using an older protocol
- if (proto_version < ProtocolVersion)
+ if (proto_version < PROTO_NEWEST)
{
if (!PreProcessOldProtocolMessage(who, command, params))
return;
}
CmdResult res;
+ ClientProtocol::TagMap tags;
+ std::string tag;
+ irc::sepstream tagstream(taglist, ';');
+ while (tagstream.GetToken(tag))
+ ProcessTag(who, tag, tags);
+
+ CommandBase::Params newparams(params, tags);
+
if (scmd)
- res = scmd->Handle(who, params);
+ res = scmd->Handle(who, newparams);
else
{
- ClientProtocol::TagMap tags;
- std::string tag;
- irc::sepstream tagstream(taglist, ';');
- while (tagstream.GetToken(tag))
- ProcessTag(who, tag, tags);
- res = cmd->Handle(who, CommandBase::Params(params, tags));
+ res = cmd->Handle(who, newparams);
if (res == CMD_INVALID)
throw ProtocolException("Error in command handler");
}
if (res == CMD_SUCCESS)
- Utils->RouteCommand(server->GetRoute(), cmdbase, params, who);
+ Utils->RouteCommand(server->GetRoute(), cmdbase, newparams, who);
}
void TreeSocket::OnTimeout()
void TreeSocket::Close()
{
- if (fd < 0)
+ if (!HasFd())
return;
ServerInstance->GlobalCulls.AddItem(this);
// Connection closed.
// If the connection is fully up (state CONNECTED)
- // then propogate a netsplit to all peers.
+ // then propagate a netsplit to all peers.
if (MyRoot)
- MyRoot->SQuit(getError());
+ MyRoot->SQuit(getError(), true);
- ServerInstance->SNO->WriteGlobalSno('l', "Connection to '\2%s\2' failed.",linkID.c_str());
+ ServerInstance->SNO->WriteGlobalSno('l', "Connection to '\002%s\002' failed.", linkID.c_str());
time_t server_uptime = ServerInstance->Time() - this->age;
if (server_uptime)
{
- std::string timestr = ModuleSpanningTree::TimeToStr(server_uptime);
- ServerInstance->SNO->WriteGlobalSno('l', "Connection to '\2%s\2' was established for %s", linkID.c_str(), timestr.c_str());
+ std::string timestr = InspIRCd::DurationString(server_uptime);
+ ServerInstance->SNO->WriteGlobalSno('l', "Connection to '\002%s\002' was established for %s", linkID.c_str(), timestr.c_str());
}
}