From 72dd7ccb46ceac4b93f86a814e20576a5f325818 Mon Sep 17 00:00:00 2001 From: Jeremy Lainé Date: Fri, 20 Jul 2012 13:32:44 +0200 Subject: refactor SASL stanza handling --- src/base/QXmppSaslAuth.cpp | 37 +++++++++++++++++++++++++++++++++++++ 1 file changed, 37 insertions(+) (limited to 'src/base/QXmppSaslAuth.cpp') diff --git a/src/base/QXmppSaslAuth.cpp b/src/base/QXmppSaslAuth.cpp index 5fca08e3..ab0c6bcb 100644 --- a/src/base/QXmppSaslAuth.cpp +++ b/src/base/QXmppSaslAuth.cpp @@ -25,6 +25,7 @@ #include #include +#include #include #include @@ -32,6 +33,42 @@ #include "QXmppSaslAuth_p.h" #include "QXmppUtils.h" +const char *ns_xmpp_sasl = "urn:ietf:params:xml:ns:xmpp-sasl"; + +QXmppSaslStanza::QXmppSaslStanza(const QString &type, const QByteArray &value) + : m_type(type) + , m_value(value) +{ +} + +QByteArray QXmppSaslStanza::value() const +{ + return m_value; +} + +void QXmppSaslStanza::setValue(const QByteArray &value) +{ + m_value = value; +} + + +void QXmppSaslStanza::parse(const QDomElement &element) +{ + m_type = element.nodeName(); + m_value = QByteArray::fromBase64(element.text().toAscii()); +} + +void QXmppSaslStanza::toXml(QXmlStreamWriter *writer) const +{ + if (!m_type.isEmpty()) { + writer->writeStartElement(m_type); + writer->writeAttribute("xmlns", ns_xmpp_sasl); + if (!m_value.isEmpty()) + writer->writeCharacters(m_value.toBase64()); + writer->writeEndElement(); + } +} + class QXmppSaslClientPrivate { public: -- cgit v1.2.3