X-Git-Url: https://git.netwichtig.de/gitweb/?a=blobdiff_plain;f=src%2Fmodules%2Fm_spanningtree%2Fping.cpp;h=537efe96466488af37948961335f9ae38d6c42ca;hb=67de413cad88194972d55a8ff88464370890c5a9;hp=95167396483c5c095fd3c3bd36f8e5dee1b22eb4;hpb=551d687ec6d7ce44be35fae0dd7345fe73c4f63a;p=user%2Fhenk%2Fcode%2Finspircd.git diff --git a/src/modules/m_spanningtree/ping.cpp b/src/modules/m_spanningtree/ping.cpp index 951673964..537efe964 100644 --- a/src/modules/m_spanningtree/ping.cpp +++ b/src/modules/m_spanningtree/ping.cpp @@ -20,36 +20,24 @@ #include "inspircd.h" #include "utils.h" -#include "treesocket.h" - -/* $ModDep: m_spanningtree/utils.h m_spanningtree/treesocket.h */ +#include "treeserver.h" +#include "commands.h" +#include "utils.h" -bool TreeSocket::LocalPing(const std::string &prefix, parameterlist ¶ms) +CmdResult CommandPing::Handle(User* user, std::vector& params) { - if (params.size() < 1) - return true; - if (params.size() == 1) + if (params[0] == ServerInstance->Config->GetSID()) { - this->WriteLine(":"+ServerInstance->Config->GetSID()+" PONG "+params[0]); - return true; - } - else - { - const std::string& forwardto = params[1]; - if (forwardto == ServerInstance->Config->ServerName || forwardto == ServerInstance->Config->GetSID()) - { - // this is a ping for us, send back PONG to the requesting server - params[1] = params[0]; - params[0] = forwardto; - Utils->DoOneToOne(ServerInstance->Config->GetSID(),"PONG",params,params[1]); - } - else - { - // not for us, pass it on :) - Utils->DoOneToOne(prefix,"PING",params,forwardto); - } - return true; + // PING for us, reply with a PONG + parameterlist reply; + reply.push_back(user->uuid); + if (params.size() >= 2) + // If there is a second parameter, append it + reply.push_back(params[1]); + + Utils->DoOneToOne(params[0], "PONG", reply, user->server); } + return CMD_SUCCESS; }