From e2be03e254a956024c9d67b19b8a809c9692b6f1 Mon Sep 17 00:00:00 2001 From: Manjeet Dahiya Date: Tue, 20 Oct 2009 11:43:45 +0000 Subject: 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 --- source/QXmppPresence.cpp | 33 +++++++++++++++------------------ 1 file changed, 15 insertions(+), 18 deletions(-) (limited to 'source/QXmppPresence.cpp') diff --git a/source/QXmppPresence.cpp b/source/QXmppPresence.cpp index f6348a51..ea347af6 100644 --- a/source/QXmppPresence.cpp +++ b/source/QXmppPresence.cpp @@ -25,6 +25,7 @@ #include "QXmppPresence.h" #include "QXmppUtils.h" #include +#include QXmppPresence::QXmppPresence(QXmppPresence::Type type, const QXmppPresence::Status& status) @@ -63,29 +64,25 @@ void QXmppPresence::setStatus(const QXmppPresence::Status& status) m_status = status; } -QByteArray QXmppPresence::toXml() const +void QXmppPresence::toXml(QXmlStreamWriter *xmlWriter ) const { - QString data; - - QTextStream stream(&data); - stream << ""; - helperToXmlAddElement(stream, "status", getStatus().getStatusText()); + xmlWriter->writeStartElement("presence"); + helperToXmlAddAttribute(xmlWriter,"xml:lang", getLang()); + helperToXmlAddAttribute(xmlWriter,"id", getId()); + helperToXmlAddAttribute(xmlWriter,"to", getTo()); + helperToXmlAddAttribute(xmlWriter,"from", getFrom()); + helperToXmlAddAttribute(xmlWriter,"type", getTypeStr()); + + helperToXmlAddTextElement(xmlWriter,"status", getStatus().getStatusText()); if(getStatus().getPriority() != 0) - helperToXmlAddElement(stream, "priority", getStatus().getPriority()); - helperToXmlAddElement(stream, "show", getStatus().getTypeStr()); + helperToXmlAddNumberElement(xmlWriter,"priority", getStatus().getPriority()); + helperToXmlAddTextElement(xmlWriter,"show", getStatus().getTypeStr()); - stream << getError().toXml(); + getError().toXml(xmlWriter); - stream << ""; - - return data.toAscii(); + xmlWriter->writeEndElement(); + } QString QXmppPresence::getTypeStr() const -- cgit v1.2.3