diff options
| author | Michael Klishin <mklishin@pivotal.io> | 2015-10-27 05:31:03 +0900 |
|---|---|---|
| committer | Michael Klishin <mklishin@pivotal.io> | 2015-10-27 05:31:03 +0900 |
| commit | 8366d05cc8638662a5bf74448e63f34f74220e10 (patch) | |
| tree | e06518bbf48cdfbb13285f4fa6eaff35f055a74c /src | |
| parent | 5f8bdce5bd4b7473dec5ac1e2c9245fd90d8bf27 (diff) | |
| parent | 9c87242dda3a864661f8092b8c07fc6ea76aab11 (diff) | |
| download | rabbitmq-server-git-8366d05cc8638662a5bf74448e63f34f74220e10.tar.gz | |
Merge branch 'stable'
Diffstat (limited to 'src')
| -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). |
