aboutsummaryrefslogtreecommitdiff
path: root/source/QXmppStream.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'source/QXmppStream.cpp')
-rw-r--r--source/QXmppStream.cpp10
1 files changed, 9 insertions, 1 deletions
diff --git a/source/QXmppStream.cpp b/source/QXmppStream.cpp
index 4405e3b4..0971b83d 100644
--- a/source/QXmppStream.cpp
+++ b/source/QXmppStream.cpp
@@ -90,6 +90,10 @@ QXmppStream::QXmppStream(QXmppClient* client)
&m_roster, SLOT(rosterIqReceived(const QXmppRosterIq&)));
Q_ASSERT(check);
+ check = QObject::connect(this, SIGNAL(rosterRequestIqReceived(const QXmppRosterIq&)),
+ &m_roster, SLOT(rosterRequestIqReceived(const QXmppRosterIq&)));
+ Q_ASSERT(check);
+
check = QObject::connect(this, SIGNAL(vCardIqReceived(const QXmppVCard&)),
&m_vCardManager, SLOT(vCardIqReceived(const QXmppVCard&)));
Q_ASSERT(check);
@@ -918,7 +922,11 @@ void QXmppStream::processBindIq(const QXmppBind& bind)
void QXmppStream::processRosterIq(const QXmppRosterIq& rosterIq)
{
- emit rosterIqReceived(rosterIq);
+ if(m_rosterReqId == rosterIq.getId())
+ emit rosterRequestIqReceived(rosterIq);
+ else
+ emit rosterIqReceived(rosterIq);
+
switch(rosterIq.getType())
{
case QXmppIq::Set: