aboutsummaryrefslogtreecommitdiff
path: root/source/QXmppStanza.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/QXmppStanza.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/QXmppStanza.cpp')
-rw-r--r--source/QXmppStanza.cpp35
1 files changed, 15 insertions, 20 deletions
diff --git a/source/QXmppStanza.cpp b/source/QXmppStanza.cpp
index 039dafe9..c83bfaa8 100644
--- a/source/QXmppStanza.cpp
+++ b/source/QXmppStanza.cpp
@@ -26,7 +26,7 @@
#include "QXmppUtils.h"
#include "QXmppConstants.h"
-#include <QTextStream>
+#include <QXmlStreamWriter>
int QXmppStanza::s_uniqeIdNo = 0;
@@ -217,38 +217,33 @@ void QXmppStanza::Error::setConditionFromStr(const QString& type)
setCondition(static_cast<QXmppStanza::Error::Condition>(-1));
}
-QString QXmppStanza::Error::toXml() const
+void QXmppStanza::Error::toXml( QXmlStreamWriter *writer ) const
{
- QString data;
QString cond = getConditionStr();
QString type = getTypeStr();
if(cond.isEmpty() && type.isEmpty())
- return data;
+ return;
- QTextStream stream(&data);
-
- stream << "<error";
- helperToXmlAddAttribute(stream, "type", type);
- stream << ">";
+ writer->writeStartElement("error");
+ helperToXmlAddAttribute(writer,"type", type);
if(!cond.isEmpty())
{
- stream << "<" << cond;
- helperToXmlAddAttribute(stream, "xmlns", ns_stanza);
- stream << "/>";
+ writer->writeStartElement(cond);
+ helperToXmlAddAttribute(writer,"xmlns", ns_stanza);
+ writer->writeEndElement();
}
if(!m_text.isEmpty())
{
- stream << "<text";
- helperToXmlAddAttribute(stream, "xml:lang", "en");
- helperToXmlAddAttribute(stream, "xmlns", ns_stanza);
- stream << ">";
- stream << m_text;
- stream << "</text>";
+ writer->writeStartElement("text");
+ helperToXmlAddAttribute(writer,"xml:lang", "en");
+ helperToXmlAddAttribute(writer,"xmlns", ns_stanza);
+ writer->writeCharacters(m_text);
+ writer->writeEndElement();
}
- stream << "</error>";
- return data;
+
+ writer->writeEndElement();
}