diff options
author | Micael Karlberg <[email protected]> | 2011-10-18 17:47:53 +0200 |
---|---|---|
committer | Micael Karlberg <[email protected]> | 2011-10-18 17:47:53 +0200 |
commit | c30eb71556cd569fea82de2a1c2a5a17e71650c1 (patch) | |
tree | 80ea91aedcae12b65d0a51c41f638b38fbf6a69b /lib/inets/test | |
parent | 45e501e1280839d91969e9d73449b9e474468e3e (diff) | |
download | otp-c30eb71556cd569fea82de2a1c2a5a17e71650c1.tar.gz otp-c30eb71556cd569fea82de2a1c2a5a17e71650c1.tar.bz2 otp-c30eb71556cd569fea82de2a1c2a5a17e71650c1.zip |
[httpc] Wrong Host header in IPv6 HTTP requests.
When a URI with a IPv6 host is parsed, the brackets that encapsulates
the nnn is removed. This value is then supplied as the host header.
This can cause problems with some servers.
A workaround for this is to use headers_as_is and provide the host
header with the requst call
To solve this a new option has been added, ipv6_host_with_brackets.
This option specifies if the host value of the host header shall include
the branckets or not. By default, it does not (as before).
OTP-9628
Diffstat (limited to 'lib/inets/test')
-rw-r--r-- | lib/inets/test/httpc_SUITE.erl | 15 |
1 files changed, 13 insertions, 2 deletions
diff --git a/lib/inets/test/httpc_SUITE.erl b/lib/inets/test/httpc_SUITE.erl index f95fb93669..d9432c5127 100644 --- a/lib/inets/test/httpc_SUITE.erl +++ b/lib/inets/test/httpc_SUITE.erl @@ -1878,8 +1878,17 @@ parse_url(suite) -> []; parse_url(Config) when is_list(Config) -> %% ipv6 - {http,[],"2010:836B:4179::836B:4179",80,"/foobar.html",[]} - = http_uri:parse("http://[2010:836B:4179::836B:4179]/foobar.html"), + {http,[],"2010:836B:4179::836B:4179",80,"/foobar.html",[]} = + http_uri:parse("http://[2010:836B:4179::836B:4179]/foobar.html"), + {http,[],"[2010:836B:4179::836B:4179]",80,"/foobar.html",[]} = + http_uri:parse("http://[2010:836B:4179::836B:4179]/foobar.html", + [{ipv6_host_with_brackets, true}]), + {http,[],"2010:836B:4179::836B:4179",80,"/foobar.html",[]} = + http_uri:parse("http://[2010:836B:4179::836B:4179]/foobar.html", + [{ipv6_host_with_brackets, false}]), + {http,[],"2010:836B:4179::836B:4179",80,"/foobar.html",[]} = + http_uri:parse("http://[2010:836B:4179::836B:4179]/foobar.html", + [{foo, false}]), {error, {malformed_url,"http://2010:836B:4179::836B:4179/foobar.html"}} = http_uri:parse("http://2010:836B:4179::836B:4179/foobar.html"), @@ -1914,6 +1923,8 @@ parse_url(Config) when is_list(Config) -> http_uri:parse("http://www.somedomain.com/%25abc"), {http,[],"www.somedomain.com",80,"/%25abc", "?foo=bar"} = http_uri:parse("http://www.somedomain.com/%25abc?foo=bar"), + + ok. |