]> git.netwichtig.de Git - user/henk/code/inspircd.git/blobdiff - src/modules/m_spanningtree/protocolinterface.cpp
Remote user messaging fixes
[user/henk/code/inspircd.git] / src / modules / m_spanningtree / protocolinterface.cpp
index cfc9bbea7d58bcd83fc0b08388e2d3c121e29c67..2e3237efd89095662c8349e7930210fda4e893c8 100644 (file)
@@ -1,9 +1,9 @@
 #include "inspircd.h"
-#include "m_spanningtree/main.h"
-#include "m_spanningtree/utils.h"
-#include "m_spanningtree/treeserver.h"
-#include "m_spanningtree/treesocket.h"
-#include "m_spanningtree/protocolinterface.h"
+#include "main.h"
+#include "utils.h"
+#include "treeserver.h"
+#include "treesocket.h"
+#include "protocolinterface.h"
 
 /*
  * For documentation on this class, see include/protocol.h.
@@ -31,25 +31,19 @@ void SpanningTreeProtocolInterface::SendEncapsulatedData(parameterlist &encap)
        Utils->DoOneToMany(ServerInstance->Config->GetSID(), "ENCAP", encap);
 }
 
-void SpanningTreeProtocolInterface::SendMetaData(void* target, TargetTypeFlags type, const std::string &key, const std::string &data)
+void SpanningTreeProtocolInterface::SendMetaData(Extensible* target, const std::string &key, const std::string &data)
 {
        parameterlist params;
 
-       switch (type)
-       {
-               case TYPE_USER:
-                       params.push_back(((User*)target)->uuid);
-                       break;
-               case TYPE_CHANNEL:
-                       params.push_back(((Channel*)target)->name);
-                       break;
-               case TYPE_SERVER:
-                       params.push_back("*");
-                       break;
-               default:
-                       throw CoreException("I don't know how to handle TYPE_OTHER.");
-                       break;
-       }
+       User* u = dynamic_cast<User*>(target);
+       Channel* c = dynamic_cast<Channel*>(target);
+       if (u)
+               params.push_back(u->uuid);
+       else if (c)
+               params.push_back(c->name);
+       else
+               params.push_back("*");
+
        params.push_back(key);
        params.push_back(":" + data);
 
@@ -68,7 +62,7 @@ void SpanningTreeProtocolInterface::SendTopic(Channel* channel, std::string &top
        Utils->DoOneToMany(ServerInstance->Config->GetSID(),"FTOPIC", params);
 }
 
-void SpanningTreeProtocolInterface::SendMode(const std::string &target, const parameterlist &modedata, const std::deque<TranslateType> &translate)
+void SpanningTreeProtocolInterface::SendMode(const std::string &target, const parameterlist &modedata, const std::vector<TranslateType> &translate)
 {
        if (modedata.empty())
                return;
@@ -120,7 +114,7 @@ void SpanningTreeProtocolInterface::PushToClient(User* target, const std::string
 {
        parameterlist p;
        p.push_back(target->uuid);
-       p.push_back(rawline);
+       p.push_back(":" + rawline);
        Utils->DoOneToOne(ServerInstance->Config->GetSID(), "PUSH", p, target->server);
 }
 
@@ -176,28 +170,3 @@ void SpanningTreeProtocolInterface::SendUserNotice(User* target, const std::stri
                }
        }
 }
-
-void SpanningTreeProtocolInterface::Introduce(User* user)
-{
-       if (IS_LOCAL(user))
-       {
-               std::deque<std::string> params;
-               params.push_back(user->uuid);
-               params.push_back(ConvToStr(user->age));
-               params.push_back(user->nick);
-               params.push_back(user->host);
-               params.push_back(user->dhost);
-               params.push_back(user->ident);
-               params.push_back(user->GetIPString());
-               params.push_back(ConvToStr(user->signon));
-               params.push_back("+"+std::string(user->FormatModes(true)));
-               params.push_back(":"+std::string(user->fullname));
-               Utils->DoOneToMany(ServerInstance->Config->GetSID(), "UID", params);
-       }
-
-       TreeServer* SourceServer = Utils->FindServer(user->server);
-       if (SourceServer)
-       {
-               SourceServer->SetUserCount(1); // increment by 1
-       }
-}