diff --git a/plugin/cpp/networkplugin.cpp b/plugin/cpp/networkplugin.cpp index 179b2f0829ad7a9cb782b3971fcd7851b7ae6993..4455c37ed8629caf0a055920b492246dfd4ec49a 100644 --- a/plugin/cpp/networkplugin.cpp +++ b/plugin/cpp/networkplugin.cpp @@ -26,6 +26,8 @@ #ifndef WIN32 #include +#include +#include #else #include #include @@ -60,6 +62,25 @@ NetworkPlugin::NetworkPlugin() { NetworkPlugin::~NetworkPlugin() { } +void NetworkPlugin::sendConfig(const PluginConfig &cfg) { + std::string data = "[registration]"; + data += std::string("needPassword=") + (cfg.m_needPassword ? "1" : "0") + "\n"; + + for (std::vector::const_iterator it = cfg.m_extraFields.begin(); it != cfg.m_extraFields.end(); it++) { + data += std::string("extraField=") + (*it) + "\n"; + } + + pbnetwork::BackendConfig m; + m.set_config(data); + + std::string message; + m.SerializeToString(&message); + + WRAP(message, pbnetwork::WrapperMessage_Type_TYPE_BACKEND_CONFIG); + + 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) { pbnetwork::ConversationMessage m; m.set_username(user); @@ -144,6 +165,19 @@ void NetworkPlugin::handleBuddyChanged(const std::string &user, const std::strin send(message); } +void NetworkPlugin::handleBuddyRemoved(const std::string &user, const std::string &buddyName) { + pbnetwork::Buddy buddy; + buddy.set_username(user); + buddy.set_buddyname(buddyName); + + std::string message; + buddy.SerializeToString(&message); + + WRAP(message, pbnetwork::WrapperMessage_Type_TYPE_BUDDY_REMOVED); + + send(message); +} + void NetworkPlugin::handleBuddyTyping(const std::string &user, const std::string &buddyName) { pbnetwork::Buddy buddy; buddy.set_username(user);