diff options
author | Paweł Chmielowski <pawel@process-one.net> | 2022-06-21 11:09:37 +0200 |
---|---|---|
committer | Paweł Chmielowski <pawel@process-one.net> | 2022-06-21 11:09:37 +0200 |
commit | 06147deccddf8a6a43dfc012d2586fd0e363869a (patch) | |
tree | 5691334d14bfea5abcf9ef12d85c42572d4166ef /src | |
parent | Define batch delete function types in coresponding behaviours (diff) |
Don't register listeners that failed to start in config reload
This should alleviate some issues in #3850
Diffstat (limited to 'src')
-rw-r--r-- | src/ejabberd_listener.erl | 16 |
1 files 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). |