diff --git a/backends/libpurple/main.cpp b/backends/libpurple/main.cpp index a76454c1f58e705d4499741054b9b7db5194497d..bbfcbb1c358be77d2e9889c28ec93c6dbd819d25 100644 --- a/backends/libpurple/main.cpp +++ b/backends/libpurple/main.cpp @@ -542,6 +542,10 @@ class SpectrumNetworkPlugin : public NetworkPlugin { while (keys && keys[i] != NULL) { std::string key = keys[i]; + if (key == "fb_api_key" || key == "fb_api_secret") { + purple_account_set_bool(account, "auth_fb", TRUE); + } + PurplePlugin *plugin = purple_find_prpl(purple_account_get_protocol_id(account)); PurplePluginProtocolInfo *prpl_info = PURPLE_PLUGIN_PROTOCOL_INFO(plugin); bool found = false; diff --git a/src/usermanager.cpp b/src/usermanager.cpp index a52690aae34170ccdebc918d37166128a31c829b..d193492df71966a3f7a0d81f7023db7f1e5be2c9 100644 --- a/src/usermanager.cpp +++ b/src/usermanager.cpp @@ -319,6 +319,11 @@ void UserManager::handleSubscription(Swift::Presence::ref presence) { return; } + // Don't let RosterManager to handle presences for us + if (presence->getTo().getNode().empty()) { + return; + } + User *user = getUser(presence->getFrom().toBare().toString()); if (user) {