Use base64:mime_decode/1 for SASL packets

It will be now possible to accept SASL packets with only
single '=' character set as required by RFC6120
This commit is contained in:
Evgeniy Khramtsov 2016-10-22 13:09:11 +03:00
parent f6236d456d
commit 9d977e484a
2 changed files with 9 additions and 8 deletions

View File

@ -659,7 +659,7 @@
#elem{name = <<"auth">>,
xmlns = <<"urn:ietf:params:xml:ns:xmpp-sasl">>,
cdata = #cdata{label = '$text',
dec = {base64, decode, []},
dec = {base64, mime_decode, []},
enc = {base64, encode, []}},
result = {sasl_auth, '$mechanism', '$text'},
attrs = [#attr{name = <<"mechanism">>,
@ -674,7 +674,7 @@
#elem{name = <<"challenge">>,
xmlns = <<"urn:ietf:params:xml:ns:xmpp-sasl">>,
cdata = #cdata{label = '$text',
dec = {base64, decode, []},
dec = {base64, mime_decode, []},
enc = {base64, encode, []}},
result = {sasl_challenge, '$text'}}).
@ -682,7 +682,7 @@
#elem{name = <<"response">>,
xmlns = <<"urn:ietf:params:xml:ns:xmpp-sasl">>,
cdata = #cdata{label = '$text',
dec = {base64, decode, []},
dec = {base64, mime_decode, []},
enc = {base64, encode, []}},
result = {sasl_response, '$text'}}).
@ -690,7 +690,7 @@
#elem{name = <<"success">>,
xmlns = <<"urn:ietf:params:xml:ns:xmpp-sasl">>,
cdata = #cdata{label = '$text',
dec = {base64, decode, []},
dec = {base64, mime_decode, []},
enc = {base64, encode, []}},
result = {sasl_success, '$text'}}).
@ -3467,6 +3467,7 @@ enc_ip(Addr) ->
-spec re:split(_, _) -> [binary()].
-spec base64:decode(_) -> binary().
-spec base64:mime_decode(_) -> binary().
-spec dec_host_port(_) -> binary() | inet:ip_address() |
{binary() | inet:ip_address(), non_neg_integer()}.

View File

@ -29298,7 +29298,7 @@ encode_sasl_success({sasl_success, Text}, __TopXMLNS) ->
decode_sasl_success_cdata(__TopXMLNS, <<>>) -> <<>>;
decode_sasl_success_cdata(__TopXMLNS, _val) ->
case catch base64:decode(_val) of
case catch base64:mime_decode(_val) of
{'EXIT', _} ->
erlang:error({xmpp_codec,
{bad_cdata_value, <<>>, <<"success">>, __TopXMLNS}});
@ -29338,7 +29338,7 @@ encode_sasl_response({sasl_response, Text},
decode_sasl_response_cdata(__TopXMLNS, <<>>) -> <<>>;
decode_sasl_response_cdata(__TopXMLNS, _val) ->
case catch base64:decode(_val) of
case catch base64:mime_decode(_val) of
{'EXIT', _} ->
erlang:error({xmpp_codec,
{bad_cdata_value, <<>>, <<"response">>, __TopXMLNS}});
@ -29378,7 +29378,7 @@ encode_sasl_challenge({sasl_challenge, Text},
decode_sasl_challenge_cdata(__TopXMLNS, <<>>) -> <<>>;
decode_sasl_challenge_cdata(__TopXMLNS, _val) ->
case catch base64:decode(_val) of
case catch base64:mime_decode(_val) of
{'EXIT', _} ->
erlang:error({xmpp_codec,
{bad_cdata_value, <<>>, <<"challenge">>, __TopXMLNS}});
@ -29454,7 +29454,7 @@ encode_sasl_auth_attr_mechanism(_val, _acc) ->
decode_sasl_auth_cdata(__TopXMLNS, <<>>) -> <<>>;
decode_sasl_auth_cdata(__TopXMLNS, _val) ->
case catch base64:decode(_val) of
case catch base64:mime_decode(_val) of
{'EXIT', _} ->
erlang:error({xmpp_codec,
{bad_cdata_value, <<>>, <<"auth">>, __TopXMLNS}});