]> git.netwichtig.de Git - user/henk/code/inspircd.git/blobdiff - src/modules/m_spanningtree/treesocket2.cpp
Clean up duplicated link snomask messages on errors
[user/henk/code/inspircd.git] / src / modules / m_spanningtree / treesocket2.cpp
index f36bab7ac9322f7838ccca092b6ea7f78fddfa89..350531f468803907012cf330f76bceb7620e2ccb 100644 (file)
 #include "resolvers.h"
 
 /* Handle ERROR command */
-bool TreeSocket::Error(parameterlist &params)
+void TreeSocket::Error(parameterlist &params)
 {
-       if (params.size() < 1)
-               return false;
-       ServerInstance->SNO->WriteGlobalSno('l',"ERROR from %s: %s",(!InboundServerName.empty() ? InboundServerName.c_str() : myhost.c_str()),params[0].c_str());
-       /* we will return false to cause the socket to close. */
-       return false;
+       std::string msg = params.size() ? params[0] : "";
+       SetError("received ERROR " + msg);
 }
 
 void TreeSocket::Split(const std::string& line, std::string& prefix, std::string& command, parameterlist& params)
@@ -242,9 +239,7 @@ void TreeSocket::ProcessConnectedLine(std::string& prefix, std::string& command,
 
                if (ServerSource)
                {
-                       who = Utils->ServerUser;
-                       Utils->ServerUser->SetFakeServer(ServerSource->GetName());
-                       Utils->ServerUser->uuid = ServerSource->GetID();
+                       who = ServerSource->ServerUser;
                        direction = prefix;
                }
                else
@@ -301,7 +296,7 @@ void TreeSocket::ProcessConnectedLine(std::string& prefix, std::string& command,
        }
        else if (command == "FJOIN")
        {
-               this->ForceJoin(prefix,params);
+               this->ForceJoin(who,params);
        }
        else if (command == "STATS")
        {
@@ -337,7 +332,7 @@ void TreeSocket::ProcessConnectedLine(std::string& prefix, std::string& command,
        }
        else if (command == "FMODE")
        {
-               this->ForceMode(prefix,params);
+               this->ForceMode(who,params);
        }
        else if (command == "FTOPIC")
        {
@@ -424,33 +419,25 @@ void TreeSocket::ProcessConnectedLine(std::string& prefix, std::string& command,
                        this->Squit(Utils->FindServer(params[0]),params[1]);
                }
        }
-       else if (command == "MODENOTICE")
-       {
-               if (params.size() >= 2)
-               {
-                       ServerInstance->Users->WriteMode(params[0].c_str(), WM_AND, "*** From %s: %s",
-                               who->nick.c_str(), params[1].c_str());
-               }
-               Utils->DoOneToAllButSender(prefix, command, params, prefix);
-       }
        else if (command == "SNONOTICE")
        {
                if (params.size() >= 2)
                {
-                       ServerInstance->SNO->WriteGlobalSno(*(params[0].c_str()), "From " + who->nick + ": "+ params[1]);
+                       ServerInstance->SNO->WriteToSnoMask(*(params[0].c_str()), "From " + who->nick + ": "+ params[1]);
                        Utils->DoOneToAllButSender(prefix, command, params, prefix);
                }
        }
        else if (command == "BURST")
        {
                // Set prefix server as bursting
-               if (!IS_SERVER(who))
+               TreeServer* ServerSource = Utils->FindServer(prefix);
+               if (!ServerSource)
                {
                        ServerInstance->SNO->WriteGlobalSno('l', "WTF: Got BURST from a non-server(?): %s", prefix.c_str());
                        return;
                }
 
-               route_back_again->bursting = true;
+               ServerSource->bursting = true;
                Utils->DoOneToAllButSender(prefix, command, params, prefix);
        }
        else if (command == "ENDBURST")
@@ -467,7 +454,7 @@ void TreeSocket::ProcessConnectedLine(std::string& prefix, std::string& command,
        }
        else if (command == "ENCAP")
        {
-               this->Encap(prefix, params);
+               this->Encap(who, params);
        }
        else if (command == "NICK")
        {