From fc010e259215f270c2c400c682feadf6d4d570c9 Mon Sep 17 00:00:00 2001 From: Jeremy Lainé Date: Fri, 20 Jul 2012 09:21:12 +0200 Subject: SASL: don't hardcode service type --- src/base/QXmppSaslAuth.cpp | 33 ++++++++++++++++++++++++--------- 1 file changed, 24 insertions(+), 9 deletions(-) (limited to 'src/base/QXmppSaslAuth.cpp') 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(), -- cgit v1.2.3