diff --git a/src/ejabberd_listener.erl b/src/ejabberd_listener.erl index 9c962be6e..309e167df 100644 --- a/src/ejabberd_listener.erl +++ b/src/ejabberd_listener.erl @@ -457,11 +457,19 @@ config_reloaded() -> ok; {_, OldModule, OldOpts} -> _ = stop_listener(EndPoint, OldModule, OldOpts), - ets:insert(?MODULE, {EndPoint, Module, Opts}), - start_listener(EndPoint, Module, Opts); + case start_listener(EndPoint, Module, Opts) of + {ok, _} -> + ets:insert(?MODULE, {EndPoint, Module, Opts}); + _ -> + ok + end; false -> - ets:insert(?MODULE, {EndPoint, Module, Opts}), - start_listener(EndPoint, Module, Opts) + case start_listener(EndPoint, Module, Opts) of + {ok, _} -> + ets:insert(?MODULE, {EndPoint, Module, Opts}); + _ -> + ok + end end end, New).