From 4d7cfe1ba7ce004b04c1bb2ead9db5792bb22f89 Mon Sep 17 00:00:00 2001 From: Jeremy Lainé Date: Fri, 20 Jul 2012 09:27:20 +0200 Subject: SASL: move definition of available mechanisms to QXmppSaslClient --- src/base/QXmppSaslAuth.cpp | 6 ++++++ src/base/QXmppSaslAuth.h | 1 + src/client/QXmppOutgoingClient.cpp | 2 +- tests/sasl.cpp | 5 +++++ tests/sasl.h | 1 + 5 files changed, 14 insertions(+), 1 deletion(-) diff --git a/src/base/QXmppSaslAuth.cpp b/src/base/QXmppSaslAuth.cpp index 9152d523..61ef7fa5 100644 --- a/src/base/QXmppSaslAuth.cpp +++ b/src/base/QXmppSaslAuth.cpp @@ -25,6 +25,7 @@ #include #include +#include #include #include "QXmppSaslAuth.h" @@ -50,6 +51,11 @@ QXmppSaslClient::~QXmppSaslClient() delete d; } +QStringList QXmppSaslClient::availableMechanisms() +{ + return QStringList() << "PLAIN" << "DIGEST-MD5" << "ANONYMOUS" << "X-FACEBOOK-PLATFORM"; +} + QXmppSaslClient* QXmppSaslClient::create(const QString &mechanism) { if (mechanism == "PLAIN") { diff --git a/src/base/QXmppSaslAuth.h b/src/base/QXmppSaslAuth.h index ad8c78b5..a43229cc 100644 --- a/src/base/QXmppSaslAuth.h +++ b/src/base/QXmppSaslAuth.h @@ -97,6 +97,7 @@ public: virtual QString mechanism() const = 0; virtual bool respond(const QByteArray &challenge, QByteArray &response) = 0; + static QStringList availableMechanisms(); static QXmppSaslClient* create(const QString &mechanism); private: diff --git a/src/client/QXmppOutgoingClient.cpp b/src/client/QXmppOutgoingClient.cpp index 4177f0b2..5a9828b3 100644 --- a/src/client/QXmppOutgoingClient.cpp +++ b/src/client/QXmppOutgoingClient.cpp @@ -338,7 +338,7 @@ void QXmppOutgoingClient::handleStanza(const QDomElement &nodeRecv) else if(saslAvailable) { // supported and preferred SASL auth mechanisms - const QStringList supportedMechanisms = QStringList() << "PLAIN" << "DIGEST-MD5" << "ANONYMOUS" << "X-FACEBOOK-PLATFORM"; + const QStringList supportedMechanisms = QXmppSaslClient::availableMechanisms(); const QString preferredMechanism = configuration().saslAuthMechanism(); // determine SASL Authentication mechanism to use diff --git a/tests/sasl.cpp b/tests/sasl.cpp index 6d2e4244..4a0b78f8 100644 --- a/tests/sasl.cpp +++ b/tests/sasl.cpp @@ -26,6 +26,11 @@ #include "sasl.h" #include "tests.h" +void tst_QXmppSaslClient::testAvailableMechanisms() +{ + QCOMPARE(QXmppSaslClient::availableMechanisms(), QStringList() << "PLAIN" << "DIGEST-MD5" << "ANONYMOUS" << "X-FACEBOOK-PLATFORM"); +} + void tst_QXmppSaslClient::testAnonymous() { QXmppSaslClient *client = QXmppSaslClient::create("ANONYMOUS"); diff --git a/tests/sasl.h b/tests/sasl.h index d92169fc..e6db2b01 100644 --- a/tests/sasl.h +++ b/tests/sasl.h @@ -28,6 +28,7 @@ class tst_QXmppSaslClient : public QObject Q_OBJECT private slots: + void testAvailableMechanisms(); void testAnonymous(); void testDigestMd5(); void testDigestMd5_data(); -- cgit v1.2.3