aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
author0xd34df00d <0xd34df00d@gmail.com>2012-09-04 15:38:00 +0400
committer0xd34df00d <0xd34df00d@gmail.com>2012-09-04 15:38:00 +0400
commitaacef2ca381c6afe6d9953334fe10f38b3567d90 (patch)
tree9adc15f689825c369193488c7dacfb37ac7fe901 /src
parentbbbee461d2c2d3a944543c90e10c7f991daa8d2a (diff)
downloadqxmpp-aacef2ca381c6afe6d9953334fe10f38b3567d90.tar.gz
Handle Error disco replies in DiscoveryManager as well.
Diffstat (limited to 'src')
-rw-r--r--src/client/QXmppDiscoveryManager.cpp7
1 files changed, 5 insertions, 2 deletions
diff --git a/src/client/QXmppDiscoveryManager.cpp b/src/client/QXmppDiscoveryManager.cpp
index 8b0e207d..0bd588b0 100644
--- a/src/client/QXmppDiscoveryManager.cpp
+++ b/src/client/QXmppDiscoveryManager.cpp
@@ -256,6 +256,9 @@ bool QXmppDiscoveryManager::handleStanza(const QDomElement &element)
QXmppDiscoveryIq receivedIq;
receivedIq.parse(element);
+ const bool isReplyType = receivedIq.type() == QXmppIq::Result ||
+ receivedIq.type() == QXmppIq::Error;
+
if(receivedIq.type() == QXmppIq::Get &&
receivedIq.queryType() == QXmppDiscoveryIq::InfoQuery &&
(receivedIq.queryNode().isEmpty() ||
@@ -266,11 +269,11 @@ bool QXmppDiscoveryManager::handleStanza(const QDomElement &element)
qxmppFeatures.setTo(receivedIq.from());
qxmppFeatures.setQueryNode(receivedIq.queryNode());
client()->sendPacket(qxmppFeatures);
- } else if(receivedIq.type() == QXmppIq::Result &&
+ } else if(isReplyType &&
receivedIq.queryType() == QXmppDiscoveryIq::InfoQuery) {
// info result
emit infoReceived(receivedIq);
- } else if(receivedIq.type() == QXmppIq::Result &&
+ } else if(isReplyType &&
receivedIq.queryType() == QXmppDiscoveryIq::ItemsQuery) {
// items result
emit itemsReceived(receivedIq);