diff options
| author | Jeremy Lainé <jeremy.laine@m4x.org> | 2012-07-20 13:32:44 +0200 |
|---|---|---|
| committer | Jeremy Lainé <jeremy.laine@m4x.org> | 2012-07-20 13:32:44 +0200 |
| commit | 72dd7ccb46ceac4b93f86a814e20576a5f325818 (patch) | |
| tree | e897d81e6a5dfa504012d62bdecb59788ab1169c /src/base/QXmppSaslAuth.cpp | |
| parent | 8991d3b2a9f83d84b835973f1cc272d0ef0f437c (diff) | |
| download | qxmpp-72dd7ccb46ceac4b93f86a814e20576a5f325818.tar.gz | |
refactor SASL stanza handling
Diffstat (limited to 'src/base/QXmppSaslAuth.cpp')
| -rw-r--r-- | src/base/QXmppSaslAuth.cpp | 37 |
1 files changed, 37 insertions, 0 deletions
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 <cstdlib> #include <QCryptographicHash> +#include <QDomElement> #include <QStringList> #include <QUrl> @@ -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: |
