diff options
Diffstat (limited to 'Swift/Controllers')
-rw-r--r-- | Swift/Controllers/RosterController.cpp | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/Swift/Controllers/RosterController.cpp b/Swift/Controllers/RosterController.cpp index 580e12b..9e50f0e 100644 --- a/Swift/Controllers/RosterController.cpp +++ b/Swift/Controllers/RosterController.cpp @@ -231,8 +231,11 @@ void RosterController::handleRosterSetError(boost::optional<ErrorPayload> error, eventController_->handleIncomingEvent(errorEvent); } -void RosterController::handleIncomingPresence(boost::shared_ptr<Presence> newPresence) { - boost::shared_ptr<Presence> appliedPresence(newPresence); +void RosterController::handleIncomingPresence(Presence::ref newPresence) { + if (newPresence->getType() == Presence::Error) { + return; + } + Presence::ref appliedPresence(newPresence); if (newPresence->getType() == Presence::Unsubscribe) { /* In 3921bis, subscription removal isn't followed by a presence push of unavailable*/ appliedPresence = boost::shared_ptr<Presence>(new Presence()); |