From 9ba938b9d9208e6beada92e73c1314a0f3b2c544 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=BC=A0=E5=A5=87=E6=80=AA?= Date: Sat, 11 Apr 2020 10:18:35 +0800 Subject: [PATCH] EMQX failed to start when the listening port was occupied (#3354) --- src/emqx_listeners.erl | 11 +++++------ test/emqx_listeners_SUITE.erl | 5 +++-- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/src/emqx_listeners.erl b/src/emqx_listeners.erl index 948c8e8d5..ce256d147 100644 --- a/src/emqx_listeners.erl +++ b/src/emqx_listeners.erl @@ -44,17 +44,16 @@ start() -> lists:foreach(fun start_listener/1, emqx:get_env(listeners, [])). --spec(start_listener(listener()) -> {ok, pid()} | {error, term()}). +-spec(start_listener(listener()) -> ok). start_listener({Proto, ListenOn, Options}) -> - StartRet = start_listener(Proto, ListenOn, Options), - case StartRet of + case start_listener(Proto, ListenOn, Options) of {ok, _} -> io:format("Start mqtt:~s listener on ~s successfully.~n", [Proto, format(ListenOn)]); {error, Reason} -> io:format(standard_error, "Failed to start mqtt:~s listener on ~s - ~0p~n!", - [Proto, format(ListenOn), Reason]) - end, - StartRet. + [Proto, format(ListenOn), Reason]), + error(Reason) + end. %% Start MQTT/TCP listener -spec(start_listener(esockd:proto(), esockd:listen_on(), [esockd:option()]) diff --git a/test/emqx_listeners_SUITE.erl b/test/emqx_listeners_SUITE.erl index bc09a26bb..3bf53e683 100644 --- a/test/emqx_listeners_SUITE.erl +++ b/test/emqx_listeners_SUITE.erl @@ -21,6 +21,7 @@ -include("emqx.hrl"). -include("emqx_mqtt.hrl"). +-include_lib("eunit/include/eunit.hrl"). all() -> emqx_ct:all(?MODULE). @@ -37,7 +38,7 @@ end_per_suite(_Config) -> t_start_stop_listeners(_) -> ok = emqx_listeners:start(), - {error, _} = emqx_listeners:start_listener({ws,{"127.0.0.1", 8083}, []}), + ?assertException(error, _, emqx_listeners:start_listener({ws,{"127.0.0.1", 8083}, []})), ok = emqx_listeners:stop(). t_restart_listeners(_) -> @@ -90,4 +91,4 @@ get_base_dir(Module) -> get_base_dir() -> get_base_dir(?MODULE). - \ No newline at end of file +