diff --git a/plugin/cpp/networkplugin.cpp b/plugin/cpp/networkplugin.cpp index 45e39e9999f84d7cd2292b068cbe9c0a6d1ebd98..fb660b1f02102089ec43d5d0234f3ee953370197 100644 --- a/plugin/cpp/networkplugin.cpp +++ b/plugin/cpp/networkplugin.cpp @@ -73,6 +73,7 @@ void NetworkPlugin::sendConfig(const PluginConfig &cfg) { 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); @@ -85,6 +86,12 @@ void NetworkPlugin::sendConfig(const PluginConfig &cfg) { send(message); } +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); @@ -647,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; }