/*
* InspIRCd -- Internet Relay Chat Daemon
*
+ * Copyright (C) 2018 Matt Schatz <genius3000@g3k.solutions>
+ * Copyright (C) 2013-2016 Attila Molnar <attilamolnar@hush.com>
+ * Copyright (C) 2013, 2018-2019 Sadie Powell <sadie@witchery.services>
+ * Copyright (C) 2012 Robby <robby@chatbelgie.be>
+ * Copyright (C) 2010 Craig Edwards <brain@inspircd.org>
* Copyright (C) 2009-2010 Daniel De Graaf <danieldg@inspircd.org>
*
* This file is part of InspIRCd. InspIRCd is free software: you can
{
if (LinkState == CONNECTED)
{
- if (proto_version != ProtocolVersion)
+ if (proto_version != PROTO_NEWEST)
{
std::string line = original_line;
std::string::size_type a = line.find(' ');
if (line[0] == '@')
{
// The line contains tags which the 1202 protocol can't handle.
- line.erase(0, a);
+ line.erase(0, a + 1);
a = line.find(' ');
}
std::string::size_type b = line.find(' ', a + 1);
std::string command(line, a + 1, b-a-1);
// now try to find a translation entry
- // TODO a more efficient lookup method will be needed later
- if (proto_version < 1205)
+ if (proto_version < PROTO_INSPIRCD_30)
{
if (command == "IJOIN")
{
// Synthesize a :<newserver> BURST <time> message
spcolon = line.find(" :");
- line = CmdBuilder(line.substr(spcolon-3, 3), "BURST").push_int(ServerInstance->Time()).str();
+
+ TreeServer* const source = Utils->FindServerID(line.substr(spcolon-3, 3));
+ if (!source)
+ return;
+
+ line = CmdBuilder(source, "BURST").push_int(ServerInstance->Time()).str();
}
}
else if (command == "NUM")
return false;
}
- params[0] = server->GetID();
+ params[0] = server->GetId();
}
}
else if ((cmd == "GLINE") || (cmd == "KLINE") || (cmd == "ELINE") || (cmd == "ZLINE") || (cmd == "QLINE"))
// SVSWATCH was removed because nothing was using it, but better be sure
return false;
}
+ else if (cmd == "SVSSILENCE")
+ {
+ // SVSSILENCE was removed because nothing was using it, but better be sure
+ return false;
+ }
else if (cmd == "PUSH")
{
if ((params.size() != 2) || (!this->MyRoot))
// Second parameter becomes the target uuid
params[0].swap(params[1]);
// Replace first param (now the PUSH payload, not needed) with the source sid
- params[0] = numericsource->GetID();
+ params[0] = numericsource->GetId();
params.push_back(InspIRCd::Format("%03u", numeric_number));