summaryrefslogtreecommitdiff
path: root/src/rabbit_networking.erl
diff options
context:
space:
mode:
authorSimon MacMullen <simon@rabbitmq.com>2012-01-20 15:29:38 +0000
committerSimon MacMullen <simon@rabbitmq.com>2012-01-20 15:29:38 +0000
commitd687a24dd263da6f3fbf7019c070e24d34be9172 (patch)
treec8124d38cc35ff1c0e754d0f25777dfd4c4c66cc /src/rabbit_networking.erl
parent06a5511512b9fb76461c566aebc94b26039f5254 (diff)
downloadrabbitmq-server-git-d687a24dd263da6f3fbf7019c070e24d34be9172.tar.gz
Improvement?
Diffstat (limited to 'src/rabbit_networking.erl')
-rw-r--r--src/rabbit_networking.erl23
1 files changed, 14 insertions, 9 deletions
diff --git a/src/rabbit_networking.erl b/src/rabbit_networking.erl
index 045ab89a70..5003fa0ee1 100644
--- a/src/rabbit_networking.erl
+++ b/src/rabbit_networking.erl
@@ -240,15 +240,20 @@ start_listener(Listener, Protocol, Label, OnConnect) ->
ok.
start_listener0({IPAddress, Port, Family, Name}, Protocol, Label, OnConnect) ->
- {ok,_} = supervisor:start_child(
- rabbit_sup,
- {Name,
- {tcp_listener_sup, start_link,
- [IPAddress, Port, [Family | tcp_opts()],
- {?MODULE, tcp_listener_started, [Protocol]},
- {?MODULE, tcp_listener_stopped, [Protocol]},
- OnConnect, Label]},
- transient, infinity, supervisor, [tcp_listener_sup]}).
+ case supervisor:start_child(
+ rabbit_sup,
+ {Name,
+ {tcp_listener_sup, start_link,
+ [IPAddress, Port, [Family | tcp_opts()],
+ {?MODULE, tcp_listener_started, [Protocol]},
+ {?MODULE, tcp_listener_stopped, [Protocol]},
+ OnConnect, Label]},
+ transient, infinity, supervisor, [tcp_listener_sup]}) of
+ {ok, _} ->
+ ok;
+ {error, {shutdown, _}} ->
+ exit({could_not_start_tcp_listener, {IPAddress, Port}})
+ end.
stop_tcp_listener(Listener) ->
[stop_tcp_listener0(Spec) ||