From 9ff51c193cc3994a409cd7aa26a309dee6df80ac 2016-01-05 15:44:18 From: Jan Kaluza Date: 2016-01-05 15:44:18 Subject: [PATCH] Twitter: Fix joining room by disabling sending raw xml to backends which do not need it --- diff --git a/backends/twitter/TwitterPlugin.cpp b/backends/twitter/TwitterPlugin.cpp index 74619e26c274f827a45b65e9f08df6c707039d9c..0b0cec7ba95de5bd9a80885ee9962ea1bfa3737f 100644 --- a/backends/twitter/TwitterPlugin.cpp +++ b/backends/twitter/TwitterPlugin.cpp @@ -177,9 +177,10 @@ void TwitterPlugin::handleLogoutRequest(const std::string &user, const std::stri void TwitterPlugin::handleJoinRoomRequest(const std::string &user, const std::string &room, const std::string &nickname, const std::string &password) { if(room == adminChatRoom) { - LOG4CXX_INFO(logger, "Received Join Twitter room request for " << user) + LOG4CXX_INFO(logger, "Received Join Twitter room request for " << user << " '" << nickname << "'") setTwitterMode(user, 2); + handleParticipantChanged(user, nickname, room, 0, pbnetwork::STATUS_ONLINE); handleParticipantChanged(user, adminNickName, room, 0, pbnetwork::STATUS_ONLINE); userdb[user].nickName = nickname; handleMessage(user, adminChatRoom, "Connected to Twitter room! Populating your followers list", adminNickName); diff --git a/libtransport/NetworkPluginServer.cpp b/libtransport/NetworkPluginServer.cpp index 99228c41ad1465500dc7caf3a632c24f2cdfc37c..d2dad5f04d98007467161be06550ac09c810fb89 100644 --- a/libtransport/NetworkPluginServer.cpp +++ b/libtransport/NetworkPluginServer.cpp @@ -1103,6 +1103,10 @@ void NetworkPluginServer::handleRawXML(const std::string &xml) { } void NetworkPluginServer::handleRawPresenceReceived(boost::shared_ptr presence) { + if (!CONFIG_BOOL_DEFAULTED(m_config, "features.rawxml", false)) { + return; + } + User *user = m_userManager->getUser(presence->getFrom().toBare()); if (!user) return; diff --git a/tests/twitter/twitter_test.py b/tests/twitter/twitter_test.py index 8c1e5f835903d88656a240174c5e954daf1cc47d..0a6108c3b2d9b825bfa4ad19b7cfdb7a4bf63865 100644 --- a/tests/twitter/twitter_test.py +++ b/tests/twitter/twitter_test.py @@ -41,6 +41,7 @@ class Client(sleekxmpp.ClientXMPP): self.tests["friends2"] = ["#friends after unfollow command", False] self.tests["mode1"] = ["#mode 1 response", False] self.tests["mode1buddy"] = ["#mode 1 buddy added", False] + self.tests["mode2"] = ["#mode 2 join room", False] self.status = "timeline" self.timestamp = int(time.time()) @@ -83,6 +84,9 @@ class Client(sleekxmpp.ClientXMPP): roster = iq['roster']['items'] if self.status == "mode1" and roster.has_key("colinpwheeler@localhost"): + self.plugin['xep_0045'].joinMUC("#twitter@localhost", "client", wait=True) + self.tests["mode2"][1] = True + self.plugin['xep_0045'].leaveMUC("#twitter@localhost", "client") self.status = "unfollow" self.tests["mode1buddy"][1] = True self.send_message(mto="twitter.com@localhost", mbody="#unfollow colinpwheeler")