aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--source/QXmppStream.cpp40
1 files changed, 21 insertions, 19 deletions
diff --git a/source/QXmppStream.cpp b/source/QXmppStream.cpp
index 898681f7..8694449b 100644
--- a/source/QXmppStream.cpp
+++ b/source/QXmppStream.cpp
@@ -490,25 +490,7 @@ void QXmppStream::parser(const QByteArray& data)
if(type.isEmpty())
warning("QXmppStream: iq type can't be empty");
- if(QXmppRpcInvokeIq::isRpcInvokeIq(nodeRecv))
- {
- QXmppRpcInvokeIq rpcIqPacket;
- rpcIqPacket.parse(nodeRecv);
- emit rpcCallInvoke(rpcIqPacket);
- }
- else if(QXmppRpcResponseIq::isRpcResponseIq(nodeRecv))
- {
- QXmppRpcResponseIq rpcResponseIq;
- rpcResponseIq.parse(nodeRecv);
- emit rpcCallResponse(rpcResponseIq);
- }
- else if(QXmppRpcErrorIq::isRpcErrorIq(nodeRecv))
- {
- QXmppRpcErrorIq rpcErrorIq;
- rpcErrorIq.parse(nodeRecv);
- emit rpcCallError( rpcErrorIq );
- }
- else if(id == m_sessionId)
+ if(id == m_sessionId)
{
QXmppSession session;
session.parse(nodeRecv);
@@ -552,6 +534,26 @@ void QXmppStream::parser(const QByteArray& data)
}
// extensions
+ // XEP-0009: Jabber-RPC
+ else if(QXmppRpcInvokeIq::isRpcInvokeIq(nodeRecv))
+ {
+ QXmppRpcInvokeIq rpcIqPacket;
+ rpcIqPacket.parse(nodeRecv);
+ emit rpcCallInvoke(rpcIqPacket);
+ }
+ else if(QXmppRpcResponseIq::isRpcResponseIq(nodeRecv))
+ {
+ QXmppRpcResponseIq rpcResponseIq;
+ rpcResponseIq.parse(nodeRecv);
+ emit rpcCallResponse(rpcResponseIq);
+ }
+ else if(QXmppRpcErrorIq::isRpcErrorIq(nodeRecv))
+ {
+ QXmppRpcErrorIq rpcErrorIq;
+ rpcErrorIq.parse(nodeRecv);
+ emit rpcCallError(rpcErrorIq);
+ }
+
// XEP-0030: Service Discovery
else if(QXmppDiscoveryIq::isDiscoveryIq(nodeRecv))
{