diff --git a/ChangeLog b/ChangeLog index 75e686d84..824737c04 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +2005-08-11 Alexey Shchepin + + * src/cyrsasl_digest.erl: Fixed challenge/response parsing (thanks + to Martin Pokorny) + 2005-08-07 Alexey Shchepin * 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) ->