From 3e8b1bd1697696dcbd14ef8f7c24701d4b04eede Mon Sep 17 00:00:00 2001 From: Jeremy Lainé Date: Mon, 22 Feb 2010 09:10:37 +0000 Subject: fix QXmppRoster::presenceReceived: * only store the presence for a resource if its type is "available" * remove the presence for a resource if its type is "unavailable" --- source/QXmppRoster.cpp | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) (limited to 'source/QXmppRoster.cpp') 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); } -- cgit v1.2.3