From a8603c8043e6123cf9380b35a9b18561166f32d2 Mon Sep 17 00:00:00 2001 From: Jeremy Lainé Date: Fri, 20 Jul 2012 14:24:04 +0200 Subject: rework --- src/client/QXmppOutgoingClient.cpp | 5 ++++- src/server/QXmppIncomingClient.cpp | 8 +++++--- 2 files changed, 9 insertions(+), 4 deletions(-) (limited to 'src') diff --git a/src/client/QXmppOutgoingClient.cpp b/src/client/QXmppOutgoingClient.cpp index 07c26938..61ddf335 100644 --- a/src/client/QXmppOutgoingClient.cpp +++ b/src/client/QXmppOutgoingClient.cpp @@ -444,7 +444,10 @@ void QXmppOutgoingClient::handleStanza(const QDomElement &nodeRecv) } else if(nodeRecv.tagName() == "failure") { - if (!nodeRecv.firstChildElement("not-authorized").isNull()) + QXmppSaslFailure failure; + failure.parse(nodeRecv); + + if (failure.condition() == "not-authorized") d->xmppStreamError = QXmppStanza::Error::NotAuthorized; else d->xmppStreamError = QXmppStanza::Error::UndefinedCondition; diff --git a/src/server/QXmppIncomingClient.cpp b/src/server/QXmppIncomingClient.cpp index a8eadb4e..cf2ae092 100644 --- a/src/server/QXmppIncomingClient.cpp +++ b/src/server/QXmppIncomingClient.cpp @@ -296,10 +296,12 @@ void QXmppIncomingClient::handleStanza(const QDomElement &nodeRecv) } else if (nodeRecv.tagName() == QLatin1String("response")) { + QXmppSaslResponse response; + response.parse(nodeRecv); + if (d->saslDigestStep == 1) { - const QByteArray raw = QByteArray::fromBase64(nodeRecv.text().toAscii()); - QMap saslResponse = QXmppSaslDigestMd5::parseMessage(raw); + QMap saslResponse = QXmppSaslDigestMd5::parseMessage(response.value()); // check credentials const QString username = QString::fromUtf8(saslResponse.value("username")); @@ -310,7 +312,7 @@ void QXmppIncomingClient::handleStanza(const QDomElement &nodeRecv) QXmppPasswordReply *reply = d->passwordChecker->getDigest(request); reply->setParent(this); - reply->setProperty("__sasl_raw", raw); + reply->setProperty("__sasl_raw", response.value()); connect(reply, SIGNAL(finished()), this, SLOT(onDigestReply())); } else if (d->saslDigestStep == 2) -- cgit v1.2.3