aboutsummaryrefslogtreecommitdiff
path: root/src/QXmppStream.cpp
diff options
context:
space:
mode:
authorJeremy Lainé <jeremy.laine@m4x.org>2010-08-12 10:37:31 +0000
committerJeremy Lainé <jeremy.laine@m4x.org>2010-08-12 10:37:31 +0000
commit521981e3d5c8a93b094353415678b892c4a76be8 (patch)
treeba8c5bdbcbbcdf94e41fdabd3ac5d9cfaa09443e /src/QXmppStream.cpp
parenta5e5e528343f3e41b5a09c4ec8361a0a50c00f3c (diff)
downloadqxmpp-521981e3d5c8a93b094353415678b892c4a76be8.tar.gz
instead of using a hard-coded stream start to make full XML stanzas,
use the one that was actually received
Diffstat (limited to 'src/QXmppStream.cpp')
-rw-r--r--src/QXmppStream.cpp7
1 files changed, 4 insertions, 3 deletions
diff --git a/src/QXmppStream.cpp b/src/QXmppStream.cpp
index 589cb1c9..2edcca6f 100644
--- a/src/QXmppStream.cpp
+++ b/src/QXmppStream.cpp
@@ -58,7 +58,6 @@
#include <QTimer>
static const QString capabilitiesNode = "http://code.google.com/p/qxmpp";
-static const QByteArray streamRootElementStart = "<?xml version=\"1.0\"?><stream:stream xmlns:stream=\"http://etherx.jabber.org/streams\" version=\"1.0\" xmlns=\"jabber:client\" xml:lang=\"en\" xmlns:xml=\"http://www.w3.org/XML/1998/namespace\">\n";
static const QByteArray streamRootElementEnd = "</stream:stream>";
class QXmppStreamPrivate
@@ -82,6 +81,7 @@ public:
bool sessionAvailable;
QString streamId;
QString streamFrom;
+ QByteArray streamStart;
QString streamVersion;
QString nonSASLAuthId;
@@ -278,11 +278,12 @@ void QXmppStream::parser(const QByteArray& data)
{
completeXml = d->dataBuffer + streamRootElementEnd;
streamStart = true;
+ d->streamStart = startStreamRegex.cap(0).toUtf8();
}
else if(strData.contains(endStreamRegex))
- completeXml = streamRootElementStart + d->dataBuffer;
+ completeXml = d->streamStart + d->dataBuffer;
else
- completeXml = streamRootElementStart + d->dataBuffer + streamRootElementEnd;
+ completeXml = d->streamStart + d->dataBuffer + streamRootElementEnd;
// check whether we have a valid XML document
QDomDocument doc;