aboutsummaryrefslogtreecommitdiff
path: root/src/base
diff options
context:
space:
mode:
authorJeremy Lainé <jeremy.laine@m4x.org>2012-07-20 09:55:24 +0200
committerJeremy Lainé <jeremy.laine@m4x.org>2012-07-20 09:55:24 +0200
commita609100c2a0eb19ef4b9c7a571366281ca722ac8 (patch)
treeed242c44acd8cf1f100aff705d569ab83e8e1b1e /src/base
parent4d7cfe1ba7ce004b04c1bb2ead9db5792bb22f89 (diff)
downloadqxmpp-a609100c2a0eb19ef4b9c7a571366281ca722ac8.tar.gz
make QXmppSaslClient a QXmppLoggable
Diffstat (limited to 'src/base')
-rw-r--r--src/base/QXmppSaslAuth.cpp56
-rw-r--r--src/base/QXmppSaslAuth.h9
-rw-r--r--src/base/QXmppSaslAuth_p.h8
3 files changed, 41 insertions, 32 deletions
diff --git a/src/base/QXmppSaslAuth.cpp b/src/base/QXmppSaslAuth.cpp
index 61ef7fa5..0ae3b1df 100644
--- a/src/base/QXmppSaslAuth.cpp
+++ b/src/base/QXmppSaslAuth.cpp
@@ -41,8 +41,9 @@ public:
QString password;
};
-QXmppSaslClient::QXmppSaslClient()
- : d(new QXmppSaslClientPrivate)
+QXmppSaslClient::QXmppSaslClient(QObject *parent)
+ : QXmppLoggable(parent)
+ , d(new QXmppSaslClientPrivate)
{
}
@@ -51,21 +52,25 @@ QXmppSaslClient::~QXmppSaslClient()
delete d;
}
+/// Returns a list of supported mechanisms.
+
QStringList QXmppSaslClient::availableMechanisms()
{
return QStringList() << "PLAIN" << "DIGEST-MD5" << "ANONYMOUS" << "X-FACEBOOK-PLATFORM";
}
-QXmppSaslClient* QXmppSaslClient::create(const QString &mechanism)
+/// Creates an SASL client for the given mechanism.
+
+QXmppSaslClient* QXmppSaslClient::create(const QString &mechanism, QObject *parent)
{
if (mechanism == "PLAIN") {
- return new QXmppSaslClientPlain;
+ return new QXmppSaslClientPlain(parent);
} else if (mechanism == "DIGEST-MD5") {
- return new QXmppSaslClientDigestMd5;
+ return new QXmppSaslClientDigestMd5(parent);
} else if (mechanism == "ANONYMOUS") {
- return new QXmppSaslClientAnonymous;
+ return new QXmppSaslClientAnonymous(parent);
} else if (mechanism == "X-FACEBOOK-PLATFORM") {
- return new QXmppSaslClientFacebook;
+ return new QXmppSaslClientFacebook(parent);
} else {
return 0;
}
@@ -127,8 +132,9 @@ void QXmppSaslClient::setPassword(const QString &password)
d->password = password;
}
-QXmppSaslClientAnonymous::QXmppSaslClientAnonymous()
- : m_step(0)
+QXmppSaslClientAnonymous::QXmppSaslClientAnonymous(QObject *parent)
+ : QXmppSaslClient(parent)
+ , m_step(0)
{
}
@@ -145,13 +151,14 @@ bool QXmppSaslClientAnonymous::respond(const QByteArray &challenge, QByteArray &
m_step++;
return true;
} else {
- qWarning("QXmppSaslClientAnonymous : Invalid step");
+ warning("QXmppSaslClientAnonymous : Invalid step");
return false;
}
}
-QXmppSaslClientDigestMd5::QXmppSaslClientDigestMd5()
- : m_step(0)
+QXmppSaslClientDigestMd5::QXmppSaslClientDigestMd5(QObject *parent)
+ : QXmppSaslClient(parent)
+ , m_step(0)
{
}
@@ -171,7 +178,7 @@ bool QXmppSaslClientDigestMd5::respond(const QByteArray &challenge, QByteArray &
const QMap<QByteArray, QByteArray> input = QXmppSaslDigestMd5::parseMessage(challenge);
if (!input.contains("nonce")) {
- qWarning("QXmppSaslClientDigestMd5 : Invalid input on step 1");
+ warning("QXmppSaslClientDigestMd5 : Invalid input on step 1");
return false;
}
@@ -181,7 +188,7 @@ bool QXmppSaslClientDigestMd5::respond(const QByteArray &challenge, QByteArray &
// determine quality of protection
const QList<QByteArray> qops = input.value("qop", "auth").split(',');
if (!qops.contains("auth")) {
- qWarning("QXmppSaslClientDigestMd5 : Invalid quality of protection");
+ warning("QXmppSaslClientDigestMd5 : Invalid quality of protection");
return false;
}
@@ -219,7 +226,7 @@ bool QXmppSaslClientDigestMd5::respond(const QByteArray &challenge, QByteArray &
// check new challenge
if (input.value("rspauth") !=
m_saslDigest.calculateDigest(QByteArray(":") + m_saslDigest.digestUri())) {
- qWarning("QXmppSaslClientDigestMd5 : Invalid challenge on step 2");
+ warning("QXmppSaslClientDigestMd5 : Invalid challenge on step 2");
return false;
}
@@ -227,13 +234,14 @@ bool QXmppSaslClientDigestMd5::respond(const QByteArray &challenge, QByteArray &
m_step++;
return true;
} else {
- qWarning("QXmppSaslClientDigestMd5 : Invalid step");
+ warning("QXmppSaslClientDigestMd5 : Invalid step");
return false;
}
}
-QXmppSaslClientFacebook::QXmppSaslClientFacebook()
- : m_step(0)
+QXmppSaslClientFacebook::QXmppSaslClientFacebook(QObject *parent)
+ : QXmppSaslClient(parent)
+ , m_step(0)
{
}
@@ -254,7 +262,7 @@ bool QXmppSaslClientFacebook::respond(const QByteArray &challenge, QByteArray &r
QUrl requestUrl;
requestUrl.setEncodedQuery(challenge);
if (!requestUrl.hasQueryItem("method") || !requestUrl.hasQueryItem("nonce")) {
- qWarning("QXmppSaslClientFacebook : Invalid challenge, nonce or method missing");
+ warning("QXmppSaslClientFacebook : Invalid challenge, nonce or method missing");
return false;
}
@@ -271,13 +279,14 @@ bool QXmppSaslClientFacebook::respond(const QByteArray &challenge, QByteArray &r
m_step++;
return true;
} else {
- qWarning("QXmppSaslClientFacebook : Invalid step");
+ warning("QXmppSaslClientFacebook : Invalid step");
return false;
}
}
-QXmppSaslClientPlain::QXmppSaslClientPlain()
- : m_step(0)
+QXmppSaslClientPlain::QXmppSaslClientPlain(QObject *parent)
+ : QXmppSaslClient(parent)
+ , m_step(0)
{
}
@@ -294,12 +303,11 @@ bool QXmppSaslClientPlain::respond(const QByteArray &challenge, QByteArray &resp
m_step++;
return true;
} else {
- qWarning("QXmppSaslClientPlain : Invalid step");
+ warning("QXmppSaslClientPlain : Invalid step");
return false;
}
}
-
QByteArray QXmppSaslDigestMd5::authzid() const
{
return m_authzid;
diff --git a/src/base/QXmppSaslAuth.h b/src/base/QXmppSaslAuth.h
index a43229cc..b6428eb8 100644
--- a/src/base/QXmppSaslAuth.h
+++ b/src/base/QXmppSaslAuth.h
@@ -29,6 +29,7 @@
#include <QMap>
#include "QXmppGlobal.h"
+#include "QXmppLogger.h"
class QXmppSaslClientPrivate;
@@ -74,12 +75,12 @@ private:
};
/// The QXmppSaslClient class is the base class for all SASL client
-// authentication methods.
+/// authentication methods.
-class QXMPP_EXPORT QXmppSaslClient
+class QXMPP_EXPORT QXmppSaslClient : public QXmppLoggable
{
public:
- QXmppSaslClient();
+ QXmppSaslClient(QObject *parent = 0);
virtual ~QXmppSaslClient();
QString host() const;
@@ -98,7 +99,7 @@ public:
virtual bool respond(const QByteArray &challenge, QByteArray &response) = 0;
static QStringList availableMechanisms();
- static QXmppSaslClient* create(const QString &mechanism);
+ static QXmppSaslClient* create(const QString &mechanism, QObject *parent = 0);
private:
QXmppSaslClientPrivate *d;
diff --git a/src/base/QXmppSaslAuth_p.h b/src/base/QXmppSaslAuth_p.h
index eee93322..18c1829e 100644
--- a/src/base/QXmppSaslAuth_p.h
+++ b/src/base/QXmppSaslAuth_p.h
@@ -39,7 +39,7 @@
class QXmppSaslClientAnonymous : public QXmppSaslClient
{
public:
- QXmppSaslClientAnonymous();
+ QXmppSaslClientAnonymous(QObject *parent = 0);
QString mechanism() const;
bool respond(const QByteArray &challenge, QByteArray &response);
@@ -50,7 +50,7 @@ private:
class QXmppSaslClientDigestMd5 : public QXmppSaslClient
{
public:
- QXmppSaslClientDigestMd5();
+ QXmppSaslClientDigestMd5(QObject *parent = 0);
QString mechanism() const;
bool respond(const QByteArray &challenge, QByteArray &response);
@@ -62,7 +62,7 @@ private:
class QXmppSaslClientFacebook : public QXmppSaslClient
{
public:
- QXmppSaslClientFacebook();
+ QXmppSaslClientFacebook(QObject *parent = 0);
QString mechanism() const;
bool respond(const QByteArray &challenge, QByteArray &response);
@@ -73,7 +73,7 @@ private:
class QXmppSaslClientPlain : public QXmppSaslClient
{
public:
- QXmppSaslClientPlain();
+ QXmppSaslClientPlain(QObject *parent = 0);
QString mechanism() const;
bool respond(const QByteArray &challenge, QByteArray &response);