aboutsummaryrefslogtreecommitdiff
path: root/source
diff options
context:
space:
mode:
Diffstat (limited to 'source')
-rw-r--r--source/QXmppRoster.cpp7
1 files changed, 6 insertions, 1 deletions
diff --git a/source/QXmppRoster.cpp b/source/QXmppRoster.cpp
index 98e9ec85..84b98ed5 100644
--- a/source/QXmppRoster.cpp
+++ b/source/QXmppRoster.cpp
@@ -44,7 +44,12 @@ void QXmppRoster::presenceReceived(const QXmppPresence& presence)
QString bareJid = jidToBareJid(jid);
QString resource = jidToResource(jid);
- m_presences[bareJid][resource] = presence;
+ if (presence.getType() == QXmppPresence::Available)
+ m_presences[bareJid][resource] = presence;
+ else if (presence.getType() == QXmppPresence::Unavailable)
+ m_presences[bareJid].remove(resource);
+ else
+ return;
emit presenceChanged(bareJid, resource);
}