diff options
Diffstat (limited to 'src/client/QXmppOutgoingClient.cpp')
| -rw-r--r-- | src/client/QXmppOutgoingClient.cpp | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/src/client/QXmppOutgoingClient.cpp b/src/client/QXmppOutgoingClient.cpp index a34ac2ec..71d81d3a 100644 --- a/src/client/QXmppOutgoingClient.cpp +++ b/src/client/QXmppOutgoingClient.cpp @@ -431,9 +431,12 @@ void QXmppOutgoingClient::handleStanza(const QDomElement &nodeRecv) } else if(nodeRecv.tagName() == "challenge") { + QXmppSaslChallenge challenge; + challenge.parse(nodeRecv); + QByteArray response; - if (d->saslClient->respond(QByteArray::fromBase64(nodeRecv.text().toAscii()), response)) { - sendData("<response xmlns='urn:ietf:params:xml:ns:xmpp-sasl'>" + response.toBase64() + "</response>"); + if (d->saslClient->respond(challenge.value(), response)) { + sendPacket(QXmppSaslResponse(response)); } else { warning("Could not respond to SASL challenge"); disconnectFromHost(); |
