aboutsummaryrefslogtreecommitdiff
path: root/src/base/QXmppSaslAuth.h
diff options
context:
space:
mode:
authorJeremy Lainé <jeremy.laine@m4x.org>2012-07-20 10:59:53 +0200
committerJeremy Lainé <jeremy.laine@m4x.org>2012-07-20 10:59:53 +0200
commit15cab790071aabfc62977d590b89f54a5fa6e92d (patch)
tree4b75e1269ab983d06130340325a4ee97baf901e7 /src/base/QXmppSaslAuth.h
parenta609100c2a0eb19ef4b9c7a571366281ca722ac8 (diff)
downloadqxmpp-15cab790071aabfc62977d590b89f54a5fa6e92d.tar.gz
first stab at factoring out server-side SASL
Diffstat (limited to 'src/base/QXmppSaslAuth.h')
-rw-r--r--src/base/QXmppSaslAuth.h28
1 files changed, 28 insertions, 0 deletions
diff --git a/src/base/QXmppSaslAuth.h b/src/base/QXmppSaslAuth.h
index b6428eb8..9026d757 100644
--- a/src/base/QXmppSaslAuth.h
+++ b/src/base/QXmppSaslAuth.h
@@ -32,6 +32,7 @@
#include "QXmppLogger.h"
class QXmppSaslClientPrivate;
+class QXmppSaslServerPrivate;
class QXMPP_EXPORT QXmppSaslDigestMd5
{
@@ -105,4 +106,31 @@ private:
QXmppSaslClientPrivate *d;
};
+class QXMPP_EXPORT QXmppSaslServer : public QXmppLoggable
+{
+public:
+ enum Response {
+ Challenge = 0,
+ Succeeded = 1,
+ Failed = 2
+ };
+
+ QXmppSaslServer(QObject *parent = 0);
+ virtual ~QXmppSaslServer();
+
+ QString username() const;
+ void setUsername(const QString &username);
+
+ QString password() const;
+ void setPassword(const QString &password);
+
+ virtual QString mechanism() const = 0;
+ virtual Response respond(const QByteArray &challenge, QByteArray &response) = 0;
+
+ static QXmppSaslServer* create(const QString &mechanism, QObject *parent = 0);
+
+private:
+ QXmppSaslServerPrivate *d;
+};
+
#endif