aboutsummaryrefslogtreecommitdiffstats
path: root/lib/inets/src
diff options
context:
space:
mode:
authorPéter Dimitrov <[email protected]>2019-06-27 14:24:33 +0200
committerPéter Dimitrov <[email protected]>2019-06-27 15:25:26 +0200
commit4c7bf834f532b682c92c77a4e4fe171002ee9d7a (patch)
tree393b227ea81d280db0b057ddf076c6db6a4cdea0 /lib/inets/src
parent4319a7f8bc93388ec540e954eb9bb73ea1eec4ef (diff)
downloadotp-4c7bf834f532b682c92c77a4e4fe171002ee9d7a.tar.gz
otp-4c7bf834f532b682c92c77a4e4fe171002ee9d7a.tar.bz2
otp-4c7bf834f532b682c92c77a4e4fe171002ee9d7a.zip
inets: Return error if URI has no scheme (httpc)
This commit fixes a regression and changes httpc to return {error, no_scheme} when the request URI has no scheme e.g. "//foobar".
Diffstat (limited to 'lib/inets/src')
-rw-r--r--lib/inets/src/http_client/httpc.erl8
1 files changed, 4 insertions, 4 deletions
diff --git a/lib/inets/src/http_client/httpc.erl b/lib/inets/src/http_client/httpc.erl
index 24a205ced9..9967488f61 100644
--- a/lib/inets/src/http_client/httpc.erl
+++ b/lib/inets/src/http_client/httpc.erl
@@ -317,7 +317,7 @@ store_cookies(SetCookieHeaders, Url, Profile)
{error, Bad, _} ->
{error, {parse_failed, Bad}};
URI ->
- Scheme = scheme_to_atom(maps:get(scheme, URI, '')),
+ Scheme = scheme_to_atom(maps:get(scheme, URI, undefined)),
Host = maps:get(host, URI, ""),
Port = maps:get(port, URI, default_port(Scheme)),
Path = uri_string:recompose(#{path => maps:get(path, URI, "")}),
@@ -536,7 +536,7 @@ handle_request(Method, Url,
BracketedHost = proplists:get_value(ipv6_host_with_brackets,
Options),
- Scheme = scheme_to_atom(maps:get(scheme, URI, '')),
+ Scheme = scheme_to_atom(maps:get(scheme, URI, undefined)),
Userinfo = maps:get(userinfo, URI, ""),
Host = http_util:maybe_add_brackets(maps:get(host, URI, ""), BracketedHost),
Port = maps:get(port, URI, default_port(Scheme)),
@@ -591,8 +591,8 @@ scheme_to_atom("http") ->
http;
scheme_to_atom("https") ->
https;
-scheme_to_atom('') ->
- '';
+scheme_to_atom(undefined) ->
+ throw({error, {no_scheme}});
scheme_to_atom(Scheme) ->
throw({error, {bad_scheme, Scheme}}).