diff --git a/src/usermanager.cpp b/src/usermanager.cpp index e870f8a463dcadc7e18875fc89e7a1d1eff87ed2..4e6e4b01b9a96206c44b44e23e3ca03d1591ddf1 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;