aboutsummaryrefslogtreecommitdiff
path: root/source/QXmppIq.cpp
diff options
context:
space:
mode:
authorManjeet Dahiya <manjeetdahiya@gmail.com>2009-10-20 11:43:45 +0000
committerManjeet Dahiya <manjeetdahiya@gmail.com>2009-10-20 11:43:45 +0000
commite2be03e254a956024c9d67b19b8a809c9692b6f1 (patch)
tree4da3e5da19d109bf34d02ed9359065c73be176ab /source/QXmppIq.cpp
parenta9d542be47e91ae39390247f8c8bbb21d588388f (diff)
downloadqxmpp-e2be03e254a956024c9d67b19b8a809c9692b6f1.tar.gz
Using QXmlStreamWriter for directly writing to the socket. This will avoid string concatenations and problems with XML escaping rules.
and Fix for Issue 19: XMPP Version < 1.0 send NonSASL Auth query
Diffstat (limited to 'source/QXmppIq.cpp')
-rw-r--r--source/QXmppIq.cpp31
1 files changed, 13 insertions, 18 deletions
diff --git a/source/QXmppIq.cpp b/source/QXmppIq.cpp
index 68857c0d..3eeef4af 100644
--- a/source/QXmppIq.cpp
+++ b/source/QXmppIq.cpp
@@ -25,7 +25,7 @@
#include "QXmppUtils.h"
#include "QXmppIq.h"
-#include <QTextStream>
+#include <QXmlStreamWriter>
QXmppIq::QXmppIq(QXmppIq::Type type)
: QXmppStanza(), m_type(type)
@@ -55,30 +55,25 @@ void QXmppIq::setType(QXmppIq::Type type)
m_type = type;
}
-QByteArray QXmppIq::toXml() const
+void QXmppIq::toXml( QXmlStreamWriter *xmlWriter ) const
{
- QString data;
- QTextStream stream(&data);
+ xmlWriter->writeStartElement("iq");
- stream << "<iq";
- helperToXmlAddAttribute(stream, "id", getId());
- helperToXmlAddAttribute(stream, "to", getTo());
- helperToXmlAddAttribute(stream, "from", getFrom());
+ helperToXmlAddAttribute(xmlWriter, "id", getId());
+ helperToXmlAddAttribute(xmlWriter, "to", getTo());
+ helperToXmlAddAttribute(xmlWriter, "from", getFrom());
if(getTypeStr().isEmpty())
- helperToXmlAddAttribute(stream, "type", "get");
+ helperToXmlAddAttribute(xmlWriter, "type", "get");
else
- helperToXmlAddAttribute(stream, "type", getTypeStr());
- stream << ">";
- stream << toXmlElementFromChild();
- stream << getError().toXml();
- stream << "</iq>";
-
- return data.toAscii();
+ helperToXmlAddAttribute(xmlWriter, "type", getTypeStr());
+ toXmlElementFromChild(xmlWriter);
+ getError().toXml(xmlWriter);
+ xmlWriter->writeEndElement();
}
-QByteArray QXmppIq::toXmlElementFromChild() const
+void QXmppIq::toXmlElementFromChild( QXmlStreamWriter *writer ) const
{
- return "";
+ Q_UNUSED(writer);
}
QString QXmppIq::getTypeStr() const