aboutsummaryrefslogtreecommitdiff
path: root/src/QXmppIncomingClient.cpp
diff options
context:
space:
mode:
authorJeremy Lainé <jeremy.laine@m4x.org>2010-08-26 07:39:14 +0000
committerJeremy Lainé <jeremy.laine@m4x.org>2010-08-26 07:39:14 +0000
commit4ecc0dcf7934dd0d43be634d03da799af82f91e1 (patch)
treeedf7ba529e0e8b537f367261d6ca4cc022331824 /src/QXmppIncomingClient.cpp
parent3a3f0d343cc4c2c01ab118098717a6c02543f7cd (diff)
downloadqxmpp-4ecc0dcf7934dd0d43be634d03da799af82f91e1.tar.gz
improve QXmppPasswordChecker class
Diffstat (limited to 'src/QXmppIncomingClient.cpp')
-rw-r--r--src/QXmppIncomingClient.cpp9
1 files changed, 5 insertions, 4 deletions
diff --git a/src/QXmppIncomingClient.cpp b/src/QXmppIncomingClient.cpp
index 1a8f4f3c..6e425b74 100644
--- a/src/QXmppIncomingClient.cpp
+++ b/src/QXmppIncomingClient.cpp
@@ -142,11 +142,12 @@ void QXmppIncomingClient::handleStream(const QDomElement &streamElement)
features.setBindAvailable(true);
features.setSessionAvailable(true);
}
- else
+ else if (d->passwordChecker)
{
QList<QXmppConfiguration::SASLAuthMechanism> mechanisms;
mechanisms << QXmppConfiguration::SASLPlain;
- mechanisms << QXmppConfiguration::SASLDigestMD5;
+ if (d->passwordChecker->hasPasswords())
+ mechanisms << QXmppConfiguration::SASLDigestMD5;
features.setAuthMechanisms(mechanisms);
}
sendPacket(features);
@@ -182,7 +183,7 @@ void QXmppIncomingClient::handleStanza(const QDomElement &nodeRecv)
const QString username = QString::fromUtf8(auth[1]);
const QString password = QString::fromUtf8(auth[2]);
- if (d->passwordChecker && d->passwordChecker->check(username, password))
+ if (d->passwordChecker && d->passwordChecker->checkCredentials(username, password))
{
d->username = username;
sendData("<success xmlns='urn:ietf:params:xml:ns:xmpp-sasl'/>");
@@ -226,7 +227,7 @@ void QXmppIncomingClient::handleStanza(const QDomElement &nodeRecv)
// check credentials
const QString username = QString::fromUtf8(response.value("username"));
QString password;
- if (!d->passwordChecker || !d->passwordChecker->get(username, password))
+ if (!d->passwordChecker || !d->passwordChecker->getPassword(username, password))
{
sendData("<failure xmlns='urn:ietf:params:xml:ns:xmpp-sasl'><not-authorized/></failure>");
disconnectFromHost();