summaryrefslogtreecommitdiff
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
commit46317e689f246243d8e4f65d54e30006d70eed39 (patch)
treec8124d38cc35ff1c0e754d0f25777dfd4c4c66cc
parent350fd440868ae032765e3dcdc29b37fafd0287f3 (diff)
downloadrabbitmq-server-46317e689f246243d8e4f65d54e30006d70eed39.tar.gz
Improvement?
-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 045ab89a..5003fa0e 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) ||