From 8c7caaf94a3f9eb5cea730a01baecb52146888d9 Mon Sep 17 00:00:00 2001 From: HanzZ Date: Tue, 13 Nov 2012 17:52:51 +0100 Subject: [PATCH] send subscribe presence as response to error presence only when error type is SubscriptionRequested --- src/usermanager.cpp | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/src/usermanager.cpp b/src/usermanager.cpp index e870f8a4..4e6e4b01 100644 --- a/src/usermanager.cpp +++ b/src/usermanager.cpp @@ -431,6 +431,15 @@ void UserManager::handleErrorPresence(Swift::Presence::ref presence) { if (!presence->getTo().getNode().empty()) { return; } + + if (!presence->getPayload()) { + return; + } + + if (presence->getPayload()->getCondition() != Swift::ErrorPayload::SubscriptionRequired) { + return; + } + std::string userkey = presence->getFrom().toBare().toString(); UserInfo res; bool registered = m_storageBackend ? m_storageBackend->getUser(userkey, res) : false;