aboutsummaryrefslogtreecommitdiff
path: root/src/base/QXmppSaslAuth.cpp
diff options
context:
space:
mode:
authorJeremy Lainé <jeremy.laine@m4x.org>2012-07-20 09:21:12 +0200
committerJeremy Lainé <jeremy.laine@m4x.org>2012-07-20 09:21:12 +0200
commitfc010e259215f270c2c400c682feadf6d4d570c9 (patch)
treec4d7cda45495af1a418e8f9fe8527cceda3d63eb /src/base/QXmppSaslAuth.cpp
parent0c523e7b9658921c49a87a253adb4cc625c4a36a (diff)
downloadqxmpp-fc010e259215f270c2c400c682feadf6d4d570c9.tar.gz
SASL: don't hardcode service type
Diffstat (limited to 'src/base/QXmppSaslAuth.cpp')
-rw-r--r--src/base/QXmppSaslAuth.cpp33
1 files changed, 24 insertions, 9 deletions
diff --git a/src/base/QXmppSaslAuth.cpp b/src/base/QXmppSaslAuth.cpp
index e913a8d8..9152d523 100644
--- a/src/base/QXmppSaslAuth.cpp
+++ b/src/base/QXmppSaslAuth.cpp
@@ -34,7 +34,8 @@
class QXmppSaslClientPrivate
{
public:
- QString server;
+ QString host;
+ QString serviceType;
QString username;
QString password;
};
@@ -64,21 +65,35 @@ QXmppSaslClient* QXmppSaslClient::create(const QString &mechanism)
}
}
-/// Returns the server.
+/// Returns the host.
-QString QXmppSaslClient::server() const
+QString QXmppSaslClient::host() const
{
- return d->server;
+ return d->host;
}
-/// Sets the server.
+/// Sets the host.
-void QXmppSaslClient::setServer(const QString &server)
+void QXmppSaslClient::setHost(const QString &host)
{
- d->server = server;
+ d->host = host;
}
-/// Returns the username.
+/// Returns the service type, e.g. "xmpp".
+
+QString QXmppSaslClient::serviceType() const
+{
+ return d->serviceType;
+}
+
+/// Sets the service type, e.g. "xmpp".
+
+void QXmppSaslClient::setServiceType(const QString &serviceType)
+{
+ d->serviceType = serviceType;
+}
+
+/// Returns the host.
QString QXmppSaslClient::username() const
{
@@ -167,7 +182,7 @@ bool QXmppSaslClientDigestMd5::respond(const QByteArray &challenge, QByteArray &
m_saslDigest.setQop("auth");
m_saslDigest.setCnonce(QXmppSaslDigestMd5::generateNonce());
m_saslDigest.setNc("00000001");
- m_saslDigest.setDigestUri(QString("xmpp/%1").arg(server()).toUtf8());
+ m_saslDigest.setDigestUri(QString("%1/%2").arg(serviceType(), host()).toUtf8());
m_saslDigest.setNonce(input.value("nonce"));
m_saslDigest.setSecret(QCryptographicHash::hash(
username().toUtf8() + ":" + realm + ":" + password().toUtf8(),