aboutsummaryrefslogtreecommitdiff
path: root/src/base
diff options
context:
space:
mode:
authorJeremy Lainé <jeremy.laine@m4x.org>2012-07-20 13:58:42 +0200
committerJeremy Lainé <jeremy.laine@m4x.org>2012-07-20 13:58:42 +0200
commitf355e899fe539e9f743efe0118d69a7348fa3d52 (patch)
treed1420f67529c23b835b5e1ee5025c665933b7de3 /src/base
parentb45b8e0f5d4ccd8e072a93fbbe390a7a13526a23 (diff)
downloadqxmpp-f355e899fe539e9f743efe0118d69a7348fa3d52.tar.gz
rework
Diffstat (limited to 'src/base')
-rw-r--r--src/base/QXmppSaslAuth.cpp33
-rw-r--r--src/base/QXmppSaslAuth_p.h42
2 files changed, 52 insertions, 23 deletions
diff --git a/src/base/QXmppSaslAuth.cpp b/src/base/QXmppSaslAuth.cpp
index 2f332454..d651fad8 100644
--- a/src/base/QXmppSaslAuth.cpp
+++ b/src/base/QXmppSaslAuth.cpp
@@ -36,25 +36,25 @@
const char *ns_xmpp_sasl = "urn:ietf:params:xml:ns:xmpp-sasl";
QXmppSaslAuth::QXmppSaslAuth(const QString &mechanism, const QByteArray &value)
- : m_mechanism(mechanism)
- , m_value(value)
+ : QXmppSaslStanza("auth", value)
+ , m_mechanism(mechanism)
{
}
-QByteArray QXmppSaslAuth::value() const
+QString QXmppSaslAuth::mechanism() const
{
- return m_value;
+ return m_mechanism;
}
-void QXmppSaslAuth::setValue(const QByteArray &value)
+void QXmppSaslAuth::setMechanism(const QString &mechanism)
{
- m_value = value;
+ m_mechanism = mechanism;
}
void QXmppSaslAuth::parse(const QDomElement &element)
{
m_mechanism = element.attribute("mechanism");
- m_value = QByteArray::fromBase64(element.text().toAscii());
+ setValue(QByteArray::fromBase64(element.text().toAscii()));
}
void QXmppSaslAuth::toXml(QXmlStreamWriter *writer) const
@@ -62,11 +62,26 @@ void QXmppSaslAuth::toXml(QXmlStreamWriter *writer) const
writer->writeStartElement("auth");
writer->writeAttribute("xmlns", ns_xmpp_sasl);
writer->writeAttribute("mechanism", m_mechanism);
- if (!m_value.isEmpty())
- writer->writeCharacters(m_value.toBase64());
+ if (!value().isEmpty())
+ writer->writeCharacters(value().toBase64());
writer->writeEndElement();
}
+QXmppSaslChallenge::QXmppSaslChallenge(const QByteArray &value)
+ : QXmppSaslStanza("challenge", value)
+{
+}
+
+QXmppSaslFailure::QXmppSaslFailure()
+ : QXmppSaslStanza("failure")
+{
+}
+
+QXmppSaslSuccess::QXmppSaslSuccess()
+ : QXmppSaslStanza("success")
+{
+}
+
QXmppSaslStanza::QXmppSaslStanza(const QString &type, const QByteArray &value)
: m_type(type)
, m_value(value)
diff --git a/src/base/QXmppSaslAuth_p.h b/src/base/QXmppSaslAuth_p.h
index 8d52a09b..87b6dc36 100644
--- a/src/base/QXmppSaslAuth_p.h
+++ b/src/base/QXmppSaslAuth_p.h
@@ -38,13 +38,13 @@
// We mean it.
//
-class QXmppSaslAuth : public QXmppStanza
+class QXmppSaslStanza : public QXmppStanza
{
public:
- QXmppSaslAuth(const QString &mechanism = QString(), const QByteArray &value = QByteArray());
+ QXmppSaslStanza(const QString &type, const QByteArray &value = QByteArray());
- QString mechanism() const;
- void setMechanism(const QString &mechanism);
+ QString type() const;
+ void setType(const QString &type);
QByteArray value() const;
void setValue(const QByteArray &value);
@@ -55,20 +55,17 @@ public:
/// \endcond
private:
- QString m_mechanism;
+ QString m_type;
QByteArray m_value;
};
-class QXmppSaslStanza : public QXmppStanza
+class QXmppSaslAuth : public QXmppSaslStanza
{
public:
- QXmppSaslStanza(const QString &type = QString(), const QByteArray &value = QByteArray());
-
- QString type() const;
- void setType(const QString &type);
+ QXmppSaslAuth(const QString &mechanism = QString(), const QByteArray &value = QByteArray());
- QByteArray value() const;
- void setValue(const QByteArray &value);
+ QString mechanism() const;
+ void setMechanism(const QString &mechanism);
/// \cond
void parse(const QDomElement &element);
@@ -76,8 +73,25 @@ public:
/// \endcond
private:
- QString m_type;
- QByteArray m_value;
+ QString m_mechanism;
+};
+
+class QXmppSaslChallenge : public QXmppSaslStanza
+{
+public:
+ QXmppSaslChallenge(const QByteArray &value = QByteArray());
+};
+
+class QXmppSaslFailure : public QXmppSaslStanza
+{
+public:
+ QXmppSaslFailure();
+};
+
+class QXmppSaslSuccess : public QXmppSaslStanza
+{
+public:
+ QXmppSaslSuccess();
};
class QXmppSaslClientAnonymous : public QXmppSaslClient