summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSimon MacMullen <simon@rabbitmq.com>2011-01-07 16:03:50 +0000
committerSimon MacMullen <simon@rabbitmq.com>2011-01-07 16:03:50 +0000
commitbc7d41e765aefb7b22217749be59b05a063e01c3 (patch)
tree0e4f07f581965e00254644fee069402f4412399b
parent9e757b9c7de2fc97db27da0502b03207d0aee2db (diff)
downloadrabbitmq-server-bc7d41e765aefb7b22217749be59b05a063e01c3.tar.gz
Don't have the scripts set bind address of 0.0.0.0 if the port is specified but IP isn't. Instead use the same logic as if it's specified in the configuration file.
-rwxr-xr-xscripts/rabbitmq-multi2
-rw-r--r--scripts/rabbitmq-multi.bat2
-rwxr-xr-xscripts/rabbitmq-server2
-rw-r--r--scripts/rabbitmq-server.bat2
-rw-r--r--scripts/rabbitmq-service.bat2
-rw-r--r--src/rabbit_networking.erl25
6 files changed, 21 insertions, 14 deletions
diff --git a/scripts/rabbitmq-multi b/scripts/rabbitmq-multi
index 33883702..d8a69921 100755
--- a/scripts/rabbitmq-multi
+++ b/scripts/rabbitmq-multi
@@ -38,7 +38,7 @@ CONFIG_FILE=/etc/rabbitmq/rabbitmq
. `dirname $0`/rabbitmq-env
-DEFAULT_NODE_IP_ADDRESS=0.0.0.0
+DEFAULT_NODE_IP_ADDRESS=auto
DEFAULT_NODE_PORT=5672
[ "x" = "x$RABBITMQ_NODE_IP_ADDRESS" ] && [ "x" != "x$NODE_IP_ADDRESS" ] && RABBITMQ_NODE_IP_ADDRESS=${NODE_IP_ADDRESS}
[ "x" = "x$RABBITMQ_NODE_PORT" ] && [ "x" != "x$NODE_PORT" ] && RABBITMQ_NODE_PORT=${NODE_PORT}
diff --git a/scripts/rabbitmq-multi.bat b/scripts/rabbitmq-multi.bat
index a4f8c8b4..e1597bc5 100644
--- a/scripts/rabbitmq-multi.bat
+++ b/scripts/rabbitmq-multi.bat
@@ -52,7 +52,7 @@ if "!RABBITMQ_NODENAME!"=="" (
if "!RABBITMQ_NODE_IP_ADDRESS!"=="" (
if not "!RABBITMQ_NODE_PORT!"=="" (
- set RABBITMQ_NODE_IP_ADDRESS=0.0.0.0
+ set RABBITMQ_NODE_IP_ADDRESS=auto
)
) else (
if "!RABBITMQ_NODE_PORT!"=="" (
diff --git a/scripts/rabbitmq-server b/scripts/rabbitmq-server
index 4155b31d..d1f893cf 100755
--- a/scripts/rabbitmq-server
+++ b/scripts/rabbitmq-server
@@ -40,7 +40,7 @@ SERVER_START_ARGS=
. `dirname $0`/rabbitmq-env
-DEFAULT_NODE_IP_ADDRESS=0.0.0.0
+DEFAULT_NODE_IP_ADDRESS=auto
DEFAULT_NODE_PORT=5672
[ "x" = "x$RABBITMQ_NODE_IP_ADDRESS" ] && [ "x" != "x$NODE_IP_ADDRESS" ] && RABBITMQ_NODE_IP_ADDRESS=${NODE_IP_ADDRESS}
[ "x" = "x$RABBITMQ_NODE_PORT" ] && [ "x" != "x$NODE_PORT" ] && RABBITMQ_NODE_PORT=${NODE_PORT}
diff --git a/scripts/rabbitmq-server.bat b/scripts/rabbitmq-server.bat
index 52a250c6..d050d5de 100644
--- a/scripts/rabbitmq-server.bat
+++ b/scripts/rabbitmq-server.bat
@@ -52,7 +52,7 @@ if "!RABBITMQ_NODENAME!"=="" (
if "!RABBITMQ_NODE_IP_ADDRESS!"=="" (
if not "!RABBITMQ_NODE_PORT!"=="" (
- set RABBITMQ_NODE_IP_ADDRESS=0.0.0.0
+ set RABBITMQ_NODE_IP_ADDRESS=auto
)
) else (
if "!RABBITMQ_NODE_PORT!"=="" (
diff --git a/scripts/rabbitmq-service.bat b/scripts/rabbitmq-service.bat
index d2592931..209b2d7a 100644
--- a/scripts/rabbitmq-service.bat
+++ b/scripts/rabbitmq-service.bat
@@ -58,7 +58,7 @@ if "!RABBITMQ_NODENAME!"=="" (
if "!RABBITMQ_NODE_IP_ADDRESS!"=="" (
if not "!RABBITMQ_NODE_PORT!"=="" (
- set RABBITMQ_NODE_IP_ADDRESS=0.0.0.0
+ set RABBITMQ_NODE_IP_ADDRESS=auto
)
) else (
if "!RABBITMQ_NODE_PORT!"=="" (
diff --git a/src/rabbit_networking.erl b/src/rabbit_networking.erl
index 621343c4..5243f17a 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, []}).