refactor(emqx_app): start quic listener condition
when the app is present, and when listners are configured
This commit is contained in:
parent
bdb871cb9a
commit
ce24696329
|
@ -96,14 +96,23 @@ maybe_start_listeners() ->
|
|||
end.
|
||||
|
||||
maybe_start_quicer() ->
|
||||
case os:getenv("EMQX_NO_QUIC") of
|
||||
X when X =:= "1" orelse X =:= "true" ->
|
||||
ok;
|
||||
_ ->
|
||||
{ok, _} = application:ensure_all_started(quicer),
|
||||
ok
|
||||
case is_quicer_app_present() andalso is_quic_listener_configured() of
|
||||
true -> {ok, _} = application:ensure_all_started(quicer), ok;
|
||||
false -> ok
|
||||
end.
|
||||
|
||||
is_quicer_app_present() ->
|
||||
case application:load(quicer) of
|
||||
ok -> true;
|
||||
{error, {already_loaded, _}} -> true;
|
||||
_ ->
|
||||
?SLOG(info, #{msg => "quicer_app_not_found"}),
|
||||
false
|
||||
end.
|
||||
|
||||
is_quic_listener_configured() ->
|
||||
emqx_listeners:has_enabled_listener_conf_by_type(quic).
|
||||
|
||||
get_description() ->
|
||||
{ok, Descr0} = application:get_key(?APP, description),
|
||||
case os:getenv("EMQX_DESCRIPTION") of
|
||||
|
|
|
@ -34,7 +34,7 @@
|
|||
, stop_listener/3
|
||||
, restart_listener/1
|
||||
, restart_listener/3
|
||||
, has_listener_conf_by_type/1
|
||||
, has_enabled_listener_conf_by_type/1
|
||||
]).
|
||||
|
||||
%% @doc List configured listeners.
|
||||
|
@ -296,10 +296,11 @@ foreach_listeners(Do) ->
|
|||
Do(ZoneName, LName, LConf)
|
||||
end, do_list()).
|
||||
|
||||
has_listener_conf_by_type(Type) ->
|
||||
has_enabled_listener_conf_by_type(Type) ->
|
||||
lists:any(
|
||||
fun({_Zone, _LName, LConf}) when is_map(LConf) ->
|
||||
Type =:= maps:get(type, LConf)
|
||||
Type =:= maps:get(type, LConf) andalso
|
||||
maps:get(enabled, LConf, true)
|
||||
end, do_list()).
|
||||
|
||||
%% merge the configs in zone and listeners in a manner that
|
||||
|
|
|
@ -127,15 +127,11 @@ start_one_app(App) ->
|
|||
%% 1. due to static static config change
|
||||
%% 2. after join a cluster
|
||||
reboot_apps() ->
|
||||
[gproc, esockd, ranch, cowboy, ekka, quicer, emqx | ?EMQX_DEP_APPS].
|
||||
|
||||
%% quicer can not be added to emqx's .app because it might be opted out at build time
|
||||
implicit_deps() ->
|
||||
[{emqx, [quicer]}].
|
||||
[gproc, esockd, ranch, cowboy, ekka, emqx | ?EMQX_DEP_APPS].
|
||||
|
||||
sorted_reboot_apps() ->
|
||||
Apps = [{App, app_deps(App)} || App <- reboot_apps()],
|
||||
sorted_reboot_apps(Apps ++ implicit_deps()).
|
||||
sorted_reboot_apps(Apps).
|
||||
|
||||
app_deps(App) ->
|
||||
case application:get_key(App, applications) of
|
||||
|
|
Loading…
Reference in New Issue