diff options
| author | Manjeet Dahiya <manjeetdahiya@gmail.com> | 2009-10-20 11:43:45 +0000 |
|---|---|---|
| committer | Manjeet Dahiya <manjeetdahiya@gmail.com> | 2009-10-20 11:43:45 +0000 |
| commit | e2be03e254a956024c9d67b19b8a809c9692b6f1 (patch) | |
| tree | 4da3e5da19d109bf34d02ed9359065c73be176ab /source/QXmppStanza.cpp | |
| parent | a9d542be47e91ae39390247f8c8bbb21d588388f (diff) | |
| download | qxmpp-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.cpp | 35 |
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();
}
|
