summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRemko Tronçon <git@el-tramo.be>2010-06-03 18:11:02 (GMT)
committerRemko Tronçon <git@el-tramo.be>2010-06-03 18:11:02 (GMT)
commitc3fa606c7ac060c4929e7082e0e24531b093112f (patch)
tree394cf72c0b43fa706319592dfdb1438335b6116a /Swiften/SASL/DIGESTMD5ClientAuthenticator.cpp
parent8406d818fcb2a511b1e4264a10fd9069ec020d72 (diff)
downloadswift-c3fa606c7ac060c4929e7082e0e24531b093112f.zip
swift-c3fa606c7ac060c4929e7082e0e24531b093112f.tar.bz2
Distinguish an empty SASL message from no SASL message.
Diffstat (limited to 'Swiften/SASL/DIGESTMD5ClientAuthenticator.cpp')
-rw-r--r--Swiften/SASL/DIGESTMD5ClientAuthenticator.cpp13
1 files changed, 8 insertions, 5 deletions
diff --git a/Swiften/SASL/DIGESTMD5ClientAuthenticator.cpp b/Swiften/SASL/DIGESTMD5ClientAuthenticator.cpp
index d22f295..050b73b 100644
--- a/Swiften/SASL/DIGESTMD5ClientAuthenticator.cpp
+++ b/Swiften/SASL/DIGESTMD5ClientAuthenticator.cpp
@@ -16,9 +16,9 @@ namespace Swift {
DIGESTMD5ClientAuthenticator::DIGESTMD5ClientAuthenticator(const String& host, const String& nonce) : ClientAuthenticator("DIGEST-MD5"), step(Initial), host(host), cnonce(nonce) {
}
-ByteArray DIGESTMD5ClientAuthenticator::getResponse() const {
+boost::optional<ByteArray> DIGESTMD5ClientAuthenticator::getResponse() const {
if (step == Initial) {
- return ByteArray();
+ return boost::optional<ByteArray>();
}
else if (step == Response) {
String realm;
@@ -59,13 +59,16 @@ ByteArray DIGESTMD5ClientAuthenticator::getResponse() const {
return response.serialize();
}
else {
- return ByteArray();
+ return boost::optional<ByteArray>();
}
}
-bool DIGESTMD5ClientAuthenticator::setChallenge(const ByteArray& challengeData) {
+bool DIGESTMD5ClientAuthenticator::setChallenge(const boost::optional<ByteArray>& challengeData) {
if (step == Initial) {
- challenge = DIGESTMD5Properties::parse(challengeData);
+ if (!challengeData) {
+ return false;
+ }
+ challenge = DIGESTMD5Properties::parse(*challengeData);
// Sanity checks
if (!challenge.getValue("nonce")) {