From 06147deccddf8a6a43dfc012d2586fd0e363869a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Pawe=C5=82=20Chmielowski?= Date: Tue, 21 Jun 2022 11:09:37 +0200 Subject: [PATCH] Don't register listeners that failed to start in config reload This should alleviate some issues in #3850 --- src/ejabberd_listener.erl | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) 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).