summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to 'Swift/Controllers')
-rw-r--r--Swift/Controllers/RosterController.cpp7
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());