X-Git-Url: https://git.netwichtig.de/gitweb/?a=blobdiff_plain;f=src%2Fmodules%2Fm_spanningtree%2Fcompat.cpp;h=fc9700740d42492a76effffe591fcbda5bd213cc;hb=f6b33a8facd6ca200292786c1061782c41cdd278;hp=3e9485cfa527b7a1a0075bd3d6661f791c33329d;hpb=60ae49b62a371791ebbd9e4b131e33b857873f06;p=user%2Fhenk%2Fcode%2Finspircd.git diff --git a/src/modules/m_spanningtree/compat.cpp b/src/modules/m_spanningtree/compat.cpp index 3e9485cfa..fc9700740 100644 --- a/src/modules/m_spanningtree/compat.cpp +++ b/src/modules/m_spanningtree/compat.cpp @@ -35,21 +35,20 @@ void TreeSocket::WriteLine(const std::string& original_line) { if (LinkState == CONNECTED) { - if (original_line.c_str()[0] != ':') - { - ServerInstance->Logs->Log(MODNAME, LOG_DEFAULT, "Sending line without server prefix!"); - WriteLine(":" + ServerInstance->Config->GetSID() + " " + original_line); - return; - } - 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 + 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") { @@ -309,6 +308,11 @@ void TreeSocket::WriteLine(const std::string& original_line) push.append(line, 26, std::string::npos); push.swap(line); } + else if (command == "TAGMSG") + { + // Drop IRCv3 tag messages as v2 has no message tag support. + return; + } } WriteLineNoCompat(line); return; @@ -514,6 +518,11 @@ bool TreeSocket::PreProcessOldProtocolMessage(User*& who, std::string& cmd, Comm // 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))