diff options
author | Zandra Hird <[email protected]> | 2016-06-14 11:04:58 +0200 |
---|---|---|
committer | Zandra Hird <[email protected]> | 2016-06-16 11:19:10 +0200 |
commit | c1b70a725a2cc5a64ff793b5f3ec79e82da3eff2 (patch) | |
tree | bb73903be54d2e0b7689f2466b250799eaadf784 /lib/kernel | |
parent | db21a04892e7cfd8d4ebad668a666b789604fcfb (diff) | |
download | otp-c1b70a725a2cc5a64ff793b5f3ec79e82da3eff2.tar.gz otp-c1b70a725a2cc5a64ff793b5f3ec79e82da3eff2.tar.bz2 otp-c1b70a725a2cc5a64ff793b5f3ec79e82da3eff2.zip |
Test: Try ipv6 versions of localhost if it fails for inet6
Most systems alias localhost to both the ipv4 and ipv6 localhost
address, but in some cases localhost6 is used instead.
Diffstat (limited to 'lib/kernel')
-rw-r--r-- | lib/kernel/test/gen_tcp_api_SUITE.erl | 19 | ||||
-rw-r--r-- | lib/kernel/test/gen_udp_SUITE.erl | 18 |
2 files changed, 30 insertions, 7 deletions
diff --git a/lib/kernel/test/gen_tcp_api_SUITE.erl b/lib/kernel/test/gen_tcp_api_SUITE.erl index 54298e6309..8079a31a9a 100644 --- a/lib/kernel/test/gen_tcp_api_SUITE.erl +++ b/lib/kernel/test/gen_tcp_api_SUITE.erl @@ -279,9 +279,7 @@ t_implicit_inet6(Host, Addr) -> implicit_inet6(S1, Loopback), ok = gen_tcp:close(S1), %% - Localhost = "localhost", - Localaddr = ok(inet:getaddr(Localhost, inet6)), - io:format("~s ~p~n", [Localhost,Localaddr]), + Localaddr = ok(get_localaddr()), S2 = ok(gen_tcp:listen(0, [{ip,Localaddr}])), implicit_inet6(S2, Localaddr), ok = gen_tcp:close(S2), @@ -369,8 +367,21 @@ unused_ip(A, B, C, D) -> {error, _} -> {ok, {A, B, C, D}} end. -ok({ok,V}) -> V. +get_localaddr() -> + get_localaddr(["localhost", "localhost6", "ip6-localhost"]). + +get_localaddr([]) -> + {error, localaddr_not_found}; +get_localaddr([Localhost|Ls]) -> + case inet:getaddr(Localhost, inet6) of + {ok, LocalAddr} -> + io:format("~s ~p~n", [Localhost, LocalAddr]), + {ok, LocalAddr}; + _ -> + get_localaddr(Ls) + end. +ok({ok,V}) -> V. getsockfd() -> undefined. closesockfd(_FD) -> undefined. diff --git a/lib/kernel/test/gen_udp_SUITE.erl b/lib/kernel/test/gen_udp_SUITE.erl index 44539bf44c..bc5bf02456 100644 --- a/lib/kernel/test/gen_udp_SUITE.erl +++ b/lib/kernel/test/gen_udp_SUITE.erl @@ -599,9 +599,7 @@ implicit_inet6(Host, Addr) -> implicit_inet6(S1, Active, Loopback), ok = gen_udp:close(S1), %% - Localhost = "localhost", - Localaddr = ok(inet:getaddr(Localhost, inet6)), - io:format("~s ~p~n", [Localhost,Localaddr]), + Localaddr = ok(get_localaddr()), S2 = ok(gen_udp:open(0, [{ip,Localaddr},Active])), implicit_inet6(S2, Active, Localaddr), ok = gen_udp:close(S2), @@ -630,4 +628,18 @@ implicit_inet6(S1, Active, Addr) -> {Addr,P2,"pong"} = ok(gen_udp:recv(S1, 1024)), ok = gen_udp:close(S2). +get_localaddr() -> + get_localaddr(["localhost", "localhost6", "ip6-localhost"]). + +get_localaddr([]) -> + {error, localaddr_not_found}; +get_localaddr([Localhost|Ls]) -> + case inet:getaddr(Localhost, inet6) of + {ok, LocalAddr} -> + io:format("~s ~p~n", [Localhost, LocalAddr]), + {ok, LocalAddr}; + _ -> + get_localaddr(Ls) + end. + ok({ok,V}) -> V. |