diff options
| author | Diana Corbacho <diana.corbacho@erlang-solutions.com> | 2015-10-26 08:06:27 +0000 |
|---|---|---|
| committer | Diana Corbacho <diana.corbacho@erlang-solutions.com> | 2015-10-26 08:06:27 +0000 |
| commit | ef8f4b96efeaf502a6890271f1b308298b1c270b (patch) | |
| tree | 85597be1407b9dbb3640718e9a33c0cec0a17286 | |
| parent | 035347c4468d0b2d5f433a8e8dd6f41c25737b2c (diff) | |
| download | rabbitmq-server-git-ef8f4b96efeaf502a6890271f1b308298b1c270b.tar.gz | |
Check port using ipv6
| -rw-r--r-- | src/rabbit_prelaunch.erl | 18 |
1 files changed, 14 insertions, 4 deletions
diff --git a/src/rabbit_prelaunch.erl b/src/rabbit_prelaunch.erl index 13455abb0a..c8200d472d 100644 --- a/src/rabbit_prelaunch.erl +++ b/src/rabbit_prelaunch.erl @@ -113,10 +113,20 @@ dist_port_use_check(NodeHost) -> case os:getenv("RABBITMQ_DIST_PORT") of false -> ok; PortStr -> Port = list_to_integer(PortStr), - case gen_tcp:listen(Port, [inet, {reuseaddr, true}]) of - {ok, Sock} -> gen_tcp:close(Sock); - {error, _} -> dist_port_use_check_fail(Port, NodeHost) - end + disk_port_use_check_ipv4(NodeHost, Port) + end. + +disk_port_use_check_ipv4(NodeHost, Port) -> + case gen_tcp:listen(Port, [inet, {reuseaddr, true}]) of + {ok, Sock} -> gen_tcp:close(Sock); + {error, einval} -> disk_port_use_check_ipv6(NodeHost, Port); + {error, _} -> dist_port_use_check_fail(Port, NodeHost) + end. + +disk_port_use_check_ipv6(NodeHost, Port) -> + case gen_tcp:listen(Port, [inet6, {reuseaddr, true}]) of + {ok, Sock} -> gen_tcp:close(Sock); + {error, _} -> dist_port_use_check_fail(Port, NodeHost) end. -ifdef(use_specs). |
