diff --git a/plugin/cpp/networkplugin.cpp b/plugin/cpp/networkplugin.cpp index 06393bf4e1ad5e32469e3285f84b1c4a9c7cd4d6..fb660b1f02102089ec43d5d0234f3ee953370197 100644 --- a/plugin/cpp/networkplugin.cpp +++ b/plugin/cpp/networkplugin.cpp @@ -71,6 +71,10 @@ void NetworkPlugin::sendConfig(const PluginConfig &cfg) { data += std::string("extraField=") + (*it) + "\n"; } + data += "[features]\n"; + data += std::string("muc=") + (cfg.m_supportMUC ? "1" : "0") + "\n"; + data += std::string("rawxml=") + (cfg.m_rawXML ? "1" : "0") + "\n"; + pbnetwork::BackendConfig m; m.set_config(data); @@ -82,7 +86,13 @@ void NetworkPlugin::sendConfig(const PluginConfig &cfg) { send(message); } -void NetworkPlugin::handleMessage(const std::string &user, const std::string &legacyName, const std::string &msg, const std::string &nickname, const std::string &xhtml, const std::string ×tamp, bool headline) { +void NetworkPlugin::sendRawXML(std::string &xml) { + WRAP(xml, pbnetwork::WrapperMessage_Type_TYPE_RAW_XML); + + send(xml); +} + +void NetworkPlugin::handleMessage(const std::string &user, const std::string &legacyName, const std::string &msg, const std::string &nickname, const std::string &xhtml, const std::string ×tamp, bool headline, bool pm) { pbnetwork::ConversationMessage m; m.set_username(user); m.set_buddyname(legacyName); @@ -91,6 +101,7 @@ void NetworkPlugin::handleMessage(const std::string &user, const std::string &le m.set_xhtml(xhtml); m.set_timestamp(timestamp); m.set_headline(headline); + m.set_pm(pm); std::string message; m.SerializeToString(&message); @@ -643,6 +654,9 @@ void NetworkPlugin::handleDataRead(std::string &data) { case pbnetwork::WrapperMessage_Type_TYPE_EXIT: handleExitRequest(); break; + case pbnetwork::WrapperMessage_Type_TYPE_RAW_XML: + handleRawXML(wrapper.payload()); + break; default: return; }