aboutsummaryrefslogtreecommitdiff
path: root/src/ejabberd_listener.erl
diff options
context:
space:
mode:
authorEvgeny Khramtsov <ekhramtsov@process-one.net>2018-09-18 13:22:34 +0300
committerEvgeny Khramtsov <ekhramtsov@process-one.net>2018-09-18 13:22:34 +0300
commit3cc964fbcc7ba46686e9422b3a6eb38bc0eb21d5 (patch)
tree6c7d97702e795edfdb3ea63a2e9bbc0f2b8f2c36 /src/ejabberd_listener.erl
parentRemove forgotten debug line (diff)
Fix listeners child specs creation
Diffstat (limited to 'src/ejabberd_listener.erl')
-rw-r--r--src/ejabberd_listener.erl32
1 files changed, 15 insertions, 17 deletions
diff --git a/src/ejabberd_listener.erl b/src/ejabberd_listener.erl
index 677429da2..226978592 100644
--- a/src/ejabberd_listener.erl
+++ b/src/ejabberd_listener.erl
@@ -62,33 +62,31 @@ start_link() ->
init(_) ->
ets:new(?MODULE, [named_table, public]),
ejabberd_hooks:add(config_reloaded, ?MODULE, config_reloaded, 50),
- case listeners_childspec() of
- {ok, Specs} -> {ok, {{one_for_one, 10, 1}, Specs}};
- {error, _} = Err -> Err
- end.
-
--spec listeners_childspec() -> {ok, [supervisor:child_spec()]} | {error, any()}.
-listeners_childspec() ->
- Ls = ejabberd_config:get_option(listen, []),
- case add_certfiles(Ls) of
+ Listeners = ejabberd_config:get_option(listen, []),
+ case add_certfiles(Listeners) of
ok ->
- {ok, lists:map(
- fun({EndPoint, Module, Opts}) ->
- ets:insert(?MODULE, {EndPoint, Module, Opts}),
- {EndPoint,
- {?MODULE, start, [EndPoint, Module, Opts]},
- transient, brutal_kill, worker, [?MODULE]}
- end, Ls)};
+ {ok, {{one_for_one, 10, 1}, listeners_childspec(Listeners)}};
{error, _} = Err ->
Err
end.
+-spec listeners_childspec([listener()]) -> [supervisor:child_spec()].
+listeners_childspec(Listeners) ->
+ lists:map(
+ fun({EndPoint, Module, Opts}) ->
+ ets:insert(?MODULE, {EndPoint, Module, Opts}),
+ {EndPoint,
+ {?MODULE, start, [EndPoint, Module, Opts]},
+ transient, brutal_kill, worker, [?MODULE]}
+ end, Listeners).
+
-spec start_listeners() -> ok.
start_listeners() ->
+ Listeners = ejabberd_config:get_option(listen, []),
lists:foreach(
fun(Spec) ->
supervisor:start_child(?MODULE, Spec)
- end, listeners_childspec()).
+ end, listeners_childspec(Listeners)).
-spec start(endpoint(), module(), listen_opts()) -> term().
start(EndPoint, Module, Opts) ->