aboutsummaryrefslogtreecommitdiff
path: root/source/QXmppStream.cpp
diff options
context:
space:
mode:
authorJeremy Lainé <jeremy.laine@m4x.org>2010-05-26 09:19:15 +0000
committerJeremy Lainé <jeremy.laine@m4x.org>2010-05-26 09:19:15 +0000
commitfd70dcd1a7aea78ecf17ca16ae19ec1a5f5b6522 (patch)
treeca65b21a6aa123e5aff88a1b3323fa3ddf36c462 /source/QXmppStream.cpp
parentee69d7cb646015c58b72277f6d1668bdad612dd0 (diff)
downloadqxmpp-fd70dcd1a7aea78ecf17ca16ae19ec1a5f5b6522.tar.gz
don't store received IQs to a QXmppIq before emitting iqReceived,
otherwise we lose the full information from the parsed IQ
Diffstat (limited to 'source/QXmppStream.cpp')
-rw-r--r--source/QXmppStream.cpp46
1 files changed, 18 insertions, 28 deletions
diff --git a/source/QXmppStream.cpp b/source/QXmppStream.cpp
index 7a7b678e..53555c90 100644
--- a/source/QXmppStream.cpp
+++ b/source/QXmppStream.cpp
@@ -507,7 +507,6 @@ void QXmppStream::parser(const QByteArray& data)
QString type = nodeRecv.attribute("type");
if(type.isEmpty())
qWarning("QXmppStream: iq type can't be empty");
- QXmppIq iqPacket; // to emit
if( QXmppRpcInvokeIq::isRpcInvokeIq( nodeRecv ) )
{
@@ -543,7 +542,7 @@ void QXmppStream::parser(const QByteArray& data)
session.setId(id);
session.setTo(to);
session.setFrom(from);
- iqPacket = session;
+ emit iqReceived(session);
}
else if(id == m_bindId)
{
@@ -556,14 +555,14 @@ void QXmppStream::parser(const QByteArray& data)
bind.setTo(to);
bind.setFrom(from);
processBindIq(bind);
- iqPacket = bind;
+ emit iqReceived(bind);
}
else if(QXmppRosterIq::isRosterIq(nodeRecv))
{
QXmppRosterIq rosterIq;
rosterIq.parse(nodeRecv);
processRosterIq(rosterIq);
- iqPacket = rosterIq;
+ emit iqReceived(rosterIq);
}
// extensions
@@ -587,7 +586,7 @@ void QXmppStream::parser(const QByteArray& data)
emit discoveryIqReceived(discoIq);
}
- iqPacket = discoIq;
+ emit iqReceived(discoIq);
}
// XEP-0047 In-Band Bytestreams
else if(QXmppIbbCloseIq::isIbbCloseIq(nodeRecv))
@@ -595,21 +594,21 @@ void QXmppStream::parser(const QByteArray& data)
QXmppIbbCloseIq ibbCloseIq;
ibbCloseIq.parse(nodeRecv);
emit ibbCloseIqReceived(ibbCloseIq);
- iqPacket = ibbCloseIq;
+ emit iqReceived(ibbCloseIq);
}
else if(QXmppIbbDataIq::isIbbDataIq(nodeRecv))
{
QXmppIbbDataIq ibbDataIq;
ibbDataIq.parse(nodeRecv);
emit ibbDataIqReceived(ibbDataIq);
- iqPacket = ibbDataIq;
+ emit iqReceived(ibbDataIq);
}
else if(QXmppIbbOpenIq::isIbbOpenIq(nodeRecv))
{
QXmppIbbOpenIq ibbOpenIq;
ibbOpenIq.parse(nodeRecv);
emit ibbOpenIqReceived(ibbOpenIq);
- iqPacket = ibbOpenIq;
+ emit iqReceived(ibbOpenIq);
}
// XEP-0054: vcard-temp
else if(nodeRecv.firstChildElement("vCard").
@@ -618,7 +617,7 @@ void QXmppStream::parser(const QByteArray& data)
QXmppVCard vcardIq;
vcardIq.parse(nodeRecv);
emit vCardIqReceived(vcardIq);
- iqPacket = vcardIq;
+ emit iqReceived(vcardIq);
}
// XEP-0065: SOCKS5 Bytestreams
else if(QXmppByteStreamIq::isByteStreamIq(nodeRecv))
@@ -626,7 +625,7 @@ void QXmppStream::parser(const QByteArray& data)
QXmppByteStreamIq byteStreamIq;
byteStreamIq.parse(nodeRecv);
emit byteStreamIqReceived(byteStreamIq);
- iqPacket = byteStreamIq;
+ emit iqReceived(byteStreamIq);
}
// XEP-0078: Non-SASL Authentication
else if(id == m_nonSASLAuthId && type == "result")
@@ -690,7 +689,7 @@ void QXmppStream::parser(const QByteArray& data)
emit versionIqReceived(versionIq);
}
- iqPacket = versionIq;
+ emit iqReceived(versionIq);
}
// XEP-0095: Stream Initiation
else if(QXmppStreamInitiationIq::isStreamInitiationIq(nodeRecv))
@@ -698,7 +697,7 @@ void QXmppStream::parser(const QByteArray& data)
QXmppStreamInitiationIq siIq;
siIq.parse(nodeRecv);
emit streamInitiationIqReceived(siIq);
- iqPacket = siIq;
+ emit iqReceived(siIq);
}
// XEP-0136: Message Archiving
else if(QXmppArchiveChatIq::isArchiveChatIq(nodeRecv))
@@ -706,21 +705,21 @@ void QXmppStream::parser(const QByteArray& data)
QXmppArchiveChatIq archiveIq;
archiveIq.parse(nodeRecv);
emit archiveChatIqReceived(archiveIq);
- iqPacket = archiveIq;
+ emit iqReceived(archiveIq);
}
else if(QXmppArchiveListIq::isArchiveListIq(nodeRecv))
{
QXmppArchiveListIq archiveIq;
archiveIq.parse(nodeRecv);
emit archiveListIqReceived(archiveIq);
- iqPacket = archiveIq;
+ emit iqReceived(archiveIq);
}
else if(QXmppArchivePrefIq::isArchivePrefIq(nodeRecv))
{
QXmppArchivePrefIq archiveIq;
archiveIq.parse(nodeRecv);
emit archivePrefIqReceived(archiveIq);
- iqPacket = archiveIq;
+ emit iqReceived(archiveIq);
}
// XEP-0199: XMPP Ping
else if(QXmppPingIq::isPingIq(nodeRecv))
@@ -747,10 +746,10 @@ void QXmppStream::parser(const QByteArray& data)
sendPacket(iq);
}
+ QXmppIq iqPacket;
iqPacket.parse(nodeRecv);
+ emit iqReceived(iqPacket);
}
-
- processIq(iqPacket);
}
else if(nodeRecv.tagName() == "presence")
{
@@ -764,7 +763,8 @@ void QXmppStream::parser(const QByteArray& data)
QXmppMessage message;
message.parse(nodeRecv);
- processMessage(message);
+ // emit message
+ emit messageReceived(message);
}
}
nodeRecv = nodeRecv.nextSiblingElement();
@@ -1074,16 +1074,6 @@ void QXmppStream::processPresence(const QXmppPresence& presence)
emit presenceReceived(presence);
}
-void QXmppStream::processMessage(const QXmppMessage& message)
-{
- emit messageReceived(message);
-}
-
-void QXmppStream::processIq(const QXmppIq& iq)
-{
- emit iqReceived(iq);
-}
-
void QXmppStream::sendEndStream()
{
sendToServer(streamRootElementEnd);