diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/rabbit_networking.erl | 25 |
1 files changed, 16 insertions, 9 deletions
diff --git a/src/rabbit_networking.erl b/src/rabbit_networking.erl index 621343c488..5243f17ab9 100644 --- a/src/rabbit_networking.erl +++ b/src/rabbit_networking.erl @@ -176,15 +176,11 @@ resolve_family(IP, auto) -> throw({error, {strange_family, IP}}); resolve_family(_, F) -> F. check_tcp_listener_address(NamePrefix, Port) when is_integer(Port) -> - case ipv6_status(Port) of - ipv4_only -> - check_tcp_listener_address(NamePrefix, {"0.0.0.0", Port, inet}); - ipv6_single_stack -> - check_tcp_listener_address(NamePrefix, {"::", Port, inet6}); - ipv6_dual_stack -> - check_tcp_listener_address(NamePrefix, {"0.0.0.0", Port, inet}) - ++ check_tcp_listener_address(NamePrefix, {"::", Port, inet6}) - end; + check_tcp_listener_address_auto(NamePrefix, Port); + +check_tcp_listener_address(NamePrefix, {"auto", Port}) -> + %% Variant to prevent lots of hacking around in bash and batch files + check_tcp_listener_address_auto(NamePrefix, Port); check_tcp_listener_address(NamePrefix, {Host, Port}) -> %% auto: determine family IPv4 / IPv6 after converting to IP address @@ -200,6 +196,17 @@ check_tcp_listener_address(NamePrefix, {Host, Port, Family0}) -> Name = rabbit_misc:tcp_name(NamePrefix, IPAddress, Port), [{IPAddress, Port, Family, Name}]. +check_tcp_listener_address_auto(NamePrefix, Port) -> + case ipv6_status(Port) of + ipv4_only -> + check_tcp_listener_address(NamePrefix, {"0.0.0.0", Port, inet}); + ipv6_single_stack -> + check_tcp_listener_address(NamePrefix, {"::", Port, inet6}); + ipv6_dual_stack -> + check_tcp_listener_address(NamePrefix, {"0.0.0.0", Port, inet}) + ++ check_tcp_listener_address(NamePrefix, {"::", Port, inet6}) + end. + start_tcp_listener(Listener) -> start_listener(Listener, amqp, "TCP Listener", {?MODULE, start_client, []}). |
