diff --git a/src/networkpluginserver.cpp b/src/networkpluginserver.cpp index 92c2fdb14ef2eab3f882af2e8ca176cf5618d27e..ba715562d069e5bd17a6fd86004c6d4a48599a29 100644 --- a/src/networkpluginserver.cpp +++ b/src/networkpluginserver.cpp @@ -34,6 +34,7 @@ #include "Swiften/Server/ServerStanzaChannel.h" #include "Swiften/Elements/StreamError.h" #include "Swiften/Network/BoostConnectionServer.h" +#include "Swiften/Elements/AttentionPayload.h" #include "pbnetwork.pb.h" #include "sys/wait.h" #include "sys/signal.h" @@ -649,6 +650,24 @@ void NetworkPluginServer::handleMessageReceived(NetworkConversation *conv, boost } } + boost::shared_ptr attentionPayload = msg->getPayload(); + if (attentionPayload) { + pbnetwork::ConversationMessage m; + m.set_username(conv->getConversationManager()->getUser()->getJID().toBare()); + m.set_buddyname(conv->getLegacyName()); + m.set_message(msg->getBody()); + + std::string message; + m.SerializeToString(&message); + + WRAP(message, pbnetwork::WrapperMessage_Type_TYPE_ATTENTION); + + Client *c = (Client *) conv->getConversationManager()->getUser()->getData(); + send(c->connection, message); + return; + } + + if (!msg->getBody().empty()) { pbnetwork::ConversationMessage m; m.set_username(conv->getConversationManager()->getUser()->getJID().toBare());