diff options
author | Péter Dimitrov <[email protected]> | 2017-09-05 09:30:37 +0200 |
---|---|---|
committer | Péter Dimitrov <[email protected]> | 2017-09-06 13:20:21 +0200 |
commit | 2a42a7d14bfdfdc323fa0b6da465f79821dafcae (patch) | |
tree | e5217e552bc31ad12dfd825373d2a59b14242174 /lib/inets | |
parent | a230f26086b3db9097f06d4bb91fb3b2e9379c77 (diff) | |
download | otp-2a42a7d14bfdfdc323fa0b6da465f79821dafcae.tar.gz otp-2a42a7d14bfdfdc323fa0b6da465f79821dafcae.tar.bz2 otp-2a42a7d14bfdfdc323fa0b6da465f79821dafcae.zip |
inets: Restore old behavior when parsing "+"
"+" is part of sub-delims according to RFC 3986 and shall not be
converted to space.
Diffstat (limited to 'lib/inets')
-rw-r--r-- | lib/inets/src/http_lib/http_uri.erl | 4 | ||||
-rw-r--r-- | lib/inets/test/uri_SUITE.erl | 4 |
2 files changed, 2 insertions, 6 deletions
diff --git a/lib/inets/src/http_lib/http_uri.erl b/lib/inets/src/http_lib/http_uri.erl index c4be5abd7c..7f1ca02014 100644 --- a/lib/inets/src/http_lib/http_uri.erl +++ b/lib/inets/src/http_lib/http_uri.erl @@ -117,8 +117,6 @@ decode(String) when is_list(String) -> decode(String) when is_binary(String) -> do_decode_binary(String). -do_decode([$+|Rest]) -> - [$ |do_decode(Rest)]; do_decode([$%,Hex1,Hex2|Rest]) -> [hex2dec(Hex1)*16+hex2dec(Hex2)|do_decode(Rest)]; do_decode([First|Rest]) -> @@ -126,8 +124,6 @@ do_decode([First|Rest]) -> do_decode([]) -> []. -do_decode_binary(<<$+, Rest/bits>>) -> - <<$ , (do_decode_binary(Rest))/binary>>; do_decode_binary(<<$%, Hex:2/binary, Rest/bits>>) -> <<(binary_to_integer(Hex, 16)), (do_decode_binary(Rest))/binary>>; do_decode_binary(<<First:1/binary, Rest/bits>>) -> diff --git a/lib/inets/test/uri_SUITE.erl b/lib/inets/test/uri_SUITE.erl index 3e7799141c..f973296af6 100644 --- a/lib/inets/test/uri_SUITE.erl +++ b/lib/inets/test/uri_SUITE.erl @@ -277,8 +277,8 @@ encode_decode(Config) when is_list(Config) -> ?assertEqual("foo%20bar", http_uri:encode("foo bar")), ?assertEqual(<<"foo%20bar">>, http_uri:encode(<<"foo bar">>)), - ?assertEqual("foo bar", http_uri:decode("foo+bar")), - ?assertEqual(<<"foo bar">>, http_uri:decode(<<"foo+bar">>)), + ?assertEqual("foo+bar", http_uri:decode("foo+bar")), + ?assertEqual(<<"foo+bar">>, http_uri:decode(<<"foo+bar">>)), ?assertEqual("foo bar", http_uri:decode("foo%20bar")), ?assertEqual(<<"foo bar">>, http_uri:decode(<<"foo%20bar">>)), ?assertEqual("foo\r\n", http_uri:decode("foo%0D%0A")), |