diff options
author | Remko Tronçon <git@el-tramo.be> | 2009-11-22 16:46:37 (GMT) |
---|---|---|
committer | Remko Tronçon <git@el-tramo.be> | 2009-11-22 16:54:51 (GMT) |
commit | 497dd9b099e5810057ebcd8a3f6755819cfecdef (patch) | |
tree | a65ecc29c3f86d2ed6b6050d4650708abceafa3d /Swiften/Client/ClientSession.cpp | |
parent | d9ca66fa828e99ec5b4067d954c97d882b9ab8fe (diff) | |
download | swift-contrib-497dd9b099e5810057ebcd8a3f6755819cfecdef.zip swift-contrib-497dd9b099e5810057ebcd8a3f6755819cfecdef.tar.bz2 |
Added auth success value support.
Diffstat (limited to 'Swiften/Client/ClientSession.cpp')
-rw-r--r-- | Swiften/Client/ClientSession.cpp | 18 |
1 files changed, 11 insertions, 7 deletions
diff --git a/Swiften/Client/ClientSession.cpp b/Swiften/Client/ClientSession.cpp index fb80754..960af70 100644 --- a/Swiften/Client/ClientSession.cpp +++ b/Swiften/Client/ClientSession.cpp @@ -130,14 +130,18 @@ void ClientSession::handleElement(boost::shared_ptr<Element> element) { finishSession(Error::AuthenticationFailedError); } } - else if (dynamic_cast<AuthSuccess*>(element.get())) { - // TODO: Check success data with authenticator + else if (AuthSuccess* authSuccess = dynamic_cast<AuthSuccess*>(element.get())) { checkState(Authenticating); - state = WaitingForStreamStart; - delete authenticator; - authenticator = NULL; - stream->resetXMPPParser(); - sendStreamHeader(); + if (!authenticator->setChallenge(authSuccess->getValue())) { + finishSession(Error::ServerVerificationFailedError); + } + else { + state = WaitingForStreamStart; + delete authenticator; + authenticator = NULL; + stream->resetXMPPParser(); + sendStreamHeader(); + } } else if (dynamic_cast<AuthFailure*>(element.get())) { delete authenticator; |