aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--ChangeLog5
-rw-r--r--src/cyrsasl_digest.erl6
2 files changed, 11 insertions, 0 deletions
diff --git a/ChangeLog b/ChangeLog
index 75e686d84..824737c04 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+2005-08-11 Alexey Shchepin <alexey@sevcom.net>
+
+ * src/cyrsasl_digest.erl: Fixed challenge/response parsing (thanks
+ to Martin Pokorny)
+
2005-08-07 Alexey Shchepin <alexey@sevcom.net>
* src/msgs/pl.msg: Updated (thanks to Andrew Smyk)
diff --git a/src/cyrsasl_digest.erl b/src/cyrsasl_digest.erl
index 7851dfabe..fbd543312 100644
--- a/src/cyrsasl_digest.erl
+++ b/src/cyrsasl_digest.erl
@@ -77,6 +77,10 @@ parse(S) ->
parse1([$= | Cs], S, Ts) ->
parse2(Cs, lists:reverse(S), "", Ts);
+parse1([$, | Cs], [], Ts) ->
+ parse1(Cs, [], Ts);
+parse1([$\s | Cs], [], Ts) ->
+ parse1(Cs, [], Ts);
parse1([C | Cs], S, Ts) ->
parse1(Cs, [C | S], Ts);
parse1([], [], T) ->
@@ -100,6 +104,8 @@ parse3([], _, _, _) ->
parse4([$, | Cs], Key, Val, Ts) ->
parse1(Cs, "", [{Key, lists:reverse(Val)} | Ts]);
+parse4([$\s | Cs], Key, Val, Ts) ->
+ parse4(Cs, Key, Val, Ts);
parse4([C | Cs], Key, Val, Ts) ->
parse4(Cs, Key, [C | Val], Ts);
parse4([], Key, Val, Ts) ->