diff options
| author | Jeremy Lainé <jeremy.laine@m4x.org> | 2012-07-20 09:21:12 +0200 |
|---|---|---|
| committer | Jeremy Lainé <jeremy.laine@m4x.org> | 2012-07-20 09:21:12 +0200 |
| commit | fc010e259215f270c2c400c682feadf6d4d570c9 (patch) | |
| tree | c4d7cda45495af1a418e8f9fe8527cceda3d63eb /src/base/QXmppSaslAuth.cpp | |
| parent | 0c523e7b9658921c49a87a253adb4cc625c4a36a (diff) | |
| download | qxmpp-fc010e259215f270c2c400c682feadf6d4d570c9.tar.gz | |
SASL: don't hardcode service type
Diffstat (limited to 'src/base/QXmppSaslAuth.cpp')
| -rw-r--r-- | src/base/QXmppSaslAuth.cpp | 33 |
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(), |
