X-Git-Url: https://git.netwichtig.de/gitweb/?a=blobdiff_plain;f=src%2Fmodules%2Fm_spanningtree%2Ftreesocket2.cpp;h=328bb3c72e8d66cd96d2c3ae35f64a45c5a1fe22;hb=fd1d19d6345943ecdb5ce4ef947f9b3c5c8bca86;hp=1b3b9dae2e8bba907a04097e4f0367cbf099ee29;hpb=d9d99cd02dadf34bfcc220734ba0c422f0acb3e6;p=user%2Fhenk%2Fcode%2Finspircd.git diff --git a/src/modules/m_spanningtree/treesocket2.cpp b/src/modules/m_spanningtree/treesocket2.cpp index 1b3b9dae2..328bb3c72 100644 --- a/src/modules/m_spanningtree/treesocket2.cpp +++ b/src/modules/m_spanningtree/treesocket2.cpp @@ -303,13 +303,7 @@ void TreeSocket::ProcessConnectedLine(std::string& prefix, std::string& command, return; } - /* - * First up, check for any malformed commands (e.g. MODE without a timestamp) - * and rewrite commands where necessary (SVSMODE -> MODE for services). -- w - */ - if (command == "SVSMODE") // This isn't in an "else if" so we still force FMODE for changes on channels. - command = "MODE"; - + // Translate commands coming from servers using an older protocol if (proto_version < ProtocolVersion) { if (!PreProcessOldProtocolMessage(who, command, params)) @@ -464,7 +458,7 @@ void TreeSocket::ProcessConnectedLine(std::string& prefix, std::string& command, } } who->ForceNickChange(params[0]); - Utils->RouteCommand(route_back_again, command, params, who); + Utils->DoOneToAllButSender(prefix, command, params, prefix); } else { @@ -472,7 +466,7 @@ void TreeSocket::ProcessConnectedLine(std::string& prefix, std::string& command, if (!cmd) { - irc::stringjoiner pmlist(" ", params, 0, params.size() - 1); + irc::stringjoiner pmlist(params); ServerInstance->Logs->Log("m_spanningtree", LOG_SPARSE, "Unrecognised S2S command :%s %s %s", who->uuid.c_str(), command.c_str(), pmlist.GetJoined().c_str()); SendError("Unrecognised command '" + command + "' -- possibly loaded mismatched modules"); @@ -481,7 +475,7 @@ void TreeSocket::ProcessConnectedLine(std::string& prefix, std::string& command, if (params.size() < cmd->min_params) { - irc::stringjoiner pmlist(" ", params, 0, params.size() - 1); + irc::stringjoiner pmlist(params); ServerInstance->Logs->Log("m_spanningtree", LOG_SPARSE, "Insufficient parameters for S2S command :%s %s %s", who->uuid.c_str(), command.c_str(), pmlist.GetJoined().c_str()); SendError("Insufficient parameters for command '" + command + "'"); @@ -500,13 +494,13 @@ void TreeSocket::ProcessConnectedLine(std::string& prefix, std::string& command, if (res == CMD_INVALID) { - irc::stringjoiner pmlist(" ", params, 0, params.size() - 1); + irc::stringjoiner pmlist(params); ServerInstance->Logs->Log("m_spanningtree", LOG_SPARSE, "Error handling S2S command :%s %s %s", who->uuid.c_str(), command.c_str(), pmlist.GetJoined().c_str()); SendError("Error handling '" + command + "' -- possibly loaded mismatched modules"); } else if (res == CMD_SUCCESS) - Utils->RouteCommand(route_back_again, command, params, who); + Utils->RouteCommand(route_back_again, cmd, params, who); } }