fix: xref/dialyzer warning
This commit is contained in:
parent
a131535c60
commit
f8a2831c5d
|
@ -50,14 +50,12 @@
|
||||||
parse_listener_id/1
|
parse_listener_id/1
|
||||||
]).
|
]).
|
||||||
|
|
||||||
-export([create/2, update/2, remove/1]).
|
|
||||||
-export([pre_config_update/3, post_config_update/5]).
|
-export([pre_config_update/3, post_config_update/5]).
|
||||||
|
|
||||||
-export([format_addr/1]).
|
-export([format_addr/1]).
|
||||||
|
|
||||||
-define(CONF_KEY_PATH, [listeners, '?', '?']).
|
-define(CONF_KEY_PATH, [listeners, '?', '?']).
|
||||||
-define(TYPES_STRING, ["tcp", "ssl", "ws", "wss", "quic"]).
|
-define(TYPES_STRING, ["tcp", "ssl", "ws", "wss", "quic"]).
|
||||||
-define(OPTS(_OverrideTo_), #{rawconf_with_defaults => true, override_to => _OverrideTo_}).
|
|
||||||
|
|
||||||
-spec id_example() -> atom().
|
-spec id_example() -> atom().
|
||||||
id_example() -> 'tcp:default'.
|
id_example() -> 'tcp:default'.
|
||||||
|
@ -204,8 +202,12 @@ start_listener(Type, ListenerName, #{bind := Bind} = Conf) ->
|
||||||
"Failed to start listener ~ts on ~ts: ~0p~n",
|
"Failed to start listener ~ts on ~ts: ~0p~n",
|
||||||
[ListenerId, BindStr, Reason]
|
[ListenerId, BindStr, Reason]
|
||||||
),
|
),
|
||||||
Msg = lists:flatten(io_lib:format("~ts(~ts) : ~p",
|
Msg = lists:flatten(
|
||||||
[ListenerId, BindStr, element(1, Reason)])),
|
io_lib:format(
|
||||||
|
"~ts(~ts) : ~p",
|
||||||
|
[ListenerId, BindStr, element(1, Reason)]
|
||||||
|
)
|
||||||
|
),
|
||||||
{error, {failed_to_start, Msg}}
|
{error, {failed_to_start, Msg}}
|
||||||
end.
|
end.
|
||||||
|
|
||||||
|
@ -218,7 +220,7 @@ restart() ->
|
||||||
restart_listener(ListenerId) ->
|
restart_listener(ListenerId) ->
|
||||||
apply_on_listener(ListenerId, fun restart_listener/3).
|
apply_on_listener(ListenerId, fun restart_listener/3).
|
||||||
|
|
||||||
-spec restart_listener(atom(), atom(), map()) -> ok | {error, term()}.
|
-spec restart_listener(atom(), atom(), map() | {map(), map()}) -> ok | {error, term()}.
|
||||||
restart_listener(Type, ListenerName, {OldConf, NewConf}) ->
|
restart_listener(Type, ListenerName, {OldConf, NewConf}) ->
|
||||||
restart_listener(Type, ListenerName, OldConf, NewConf);
|
restart_listener(Type, ListenerName, OldConf, NewConf);
|
||||||
restart_listener(Type, ListenerName, Conf) ->
|
restart_listener(Type, ListenerName, Conf) ->
|
||||||
|
@ -338,20 +340,6 @@ do_start_listener(quic, ListenerName, #{bind := ListenOn} = Opts) ->
|
||||||
{ok, {skipped, quic_app_missing}}
|
{ok, {skipped, quic_app_missing}}
|
||||||
end.
|
end.
|
||||||
|
|
||||||
update(Path, Conf) ->
|
|
||||||
wrap(emqx_conf:update(Path, {update, Conf}, ?OPTS(cluster))).
|
|
||||||
|
|
||||||
create(Path, Conf) ->
|
|
||||||
wrap(emqx_conf:update(Path, {create, Conf}, ?OPTS(cluster))).
|
|
||||||
|
|
||||||
remove(Path) ->
|
|
||||||
wrap(emqx_conf:remove(Path, ?OPTS(cluster))).
|
|
||||||
|
|
||||||
wrap({error, {post_config_update,?MODULE, Reason}}) -> {error, Reason};
|
|
||||||
wrap({error, {pre_config_update,?MODULE, Reason}}) -> {error, Reason};
|
|
||||||
wrap({error, Reason}) -> {error, Reason};
|
|
||||||
wrap(Ok) -> Ok.
|
|
||||||
|
|
||||||
%% Update the listeners at runtime
|
%% Update the listeners at runtime
|
||||||
pre_config_update([listeners, Type, Name], {create, NewConf}, undefined) ->
|
pre_config_update([listeners, Type, Name], {create, NewConf}, undefined) ->
|
||||||
CertsDir = certs_dir(Type, Name),
|
CertsDir = certs_dir(Type, Name),
|
||||||
|
@ -376,10 +364,11 @@ post_config_update([listeners, _Type, _Name], '$remove', undefined, undefined, _
|
||||||
post_config_update([listeners, Type, Name], '$remove', undefined, OldConf, _AppEnvs) ->
|
post_config_update([listeners, Type, Name], '$remove', undefined, OldConf, _AppEnvs) ->
|
||||||
case stop_listener(Type, Name, OldConf) of
|
case stop_listener(Type, Name, OldConf) of
|
||||||
ok ->
|
ok ->
|
||||||
emqx_authentication:delete_chain(listener_id(Type, Name)),
|
_ = emqx_authentication:delete_chain(listener_id(Type, Name)),
|
||||||
CertsDir = certs_dir(Type, Name),
|
CertsDir = certs_dir(Type, Name),
|
||||||
clear_certs(CertsDir, OldConf);
|
clear_certs(CertsDir, OldConf);
|
||||||
Err -> Err
|
Err ->
|
||||||
|
Err
|
||||||
end;
|
end;
|
||||||
post_config_update(_Path, _Request, _NewConf, _OldConf, _AppEnvs) ->
|
post_config_update(_Path, _Request, _NewConf, _OldConf, _AppEnvs) ->
|
||||||
ok.
|
ok.
|
||||||
|
@ -563,8 +552,10 @@ certs_dir(Type, Name) ->
|
||||||
|
|
||||||
convert_certs(CertsDir, Conf) ->
|
convert_certs(CertsDir, Conf) ->
|
||||||
case emqx_tls_lib:ensure_ssl_files(CertsDir, maps:get(<<"ssl">>, Conf, undefined)) of
|
case emqx_tls_lib:ensure_ssl_files(CertsDir, maps:get(<<"ssl">>, Conf, undefined)) of
|
||||||
{ok, undefined} -> Conf;
|
{ok, undefined} ->
|
||||||
{ok, SSL} -> Conf#{<<"ssl">> => SSL};
|
Conf;
|
||||||
|
{ok, SSL} ->
|
||||||
|
Conf#{<<"ssl">> => SSL};
|
||||||
{error, Reason} ->
|
{error, Reason} ->
|
||||||
?SLOG(error, Reason#{msg => "bad_ssl_config"}),
|
?SLOG(error, Reason#{msg => "bad_ssl_config"}),
|
||||||
throw({bad_ssl_config, Reason})
|
throw({bad_ssl_config, Reason})
|
||||||
|
|
|
@ -41,6 +41,7 @@
|
||||||
-define(LISTENER_NOT_FOUND, <<"Listener id not found">>).
|
-define(LISTENER_NOT_FOUND, <<"Listener id not found">>).
|
||||||
-define(LISTENER_ID_INCONSISTENT, <<"Path and body's listener id not match">>).
|
-define(LISTENER_ID_INCONSISTENT, <<"Path and body's listener id not match">>).
|
||||||
-define(ADDR_PORT_INUSE, <<"Addr port in use">>).
|
-define(ADDR_PORT_INUSE, <<"Addr port in use">>).
|
||||||
|
-define(OPTS(_OverrideTo_), #{rawconf_with_defaults => true, override_to => _OverrideTo_}).
|
||||||
|
|
||||||
namespace() -> "listeners".
|
namespace() -> "listeners".
|
||||||
|
|
||||||
|
@ -321,7 +322,7 @@ crud_listeners_by_id(put, #{bindings := #{id := Id}, body := Body0}) ->
|
||||||
{404, #{code => 'BAD_LISTENER_ID', message => ?LISTENER_NOT_FOUND}};
|
{404, #{code => 'BAD_LISTENER_ID', message => ?LISTENER_NOT_FOUND}};
|
||||||
PrevConf ->
|
PrevConf ->
|
||||||
MergeConf = emqx_map_lib:deep_merge(PrevConf, Conf),
|
MergeConf = emqx_map_lib:deep_merge(PrevConf, Conf),
|
||||||
case emqx_listeners:update(Path, MergeConf) of
|
case update(Path, MergeConf) of
|
||||||
{ok, #{raw_config := _RawConf}} ->
|
{ok, #{raw_config := _RawConf}} ->
|
||||||
crud_listeners_by_id(get, #{bindings => #{id => Id}});
|
crud_listeners_by_id(get, #{bindings => #{id => Id}});
|
||||||
{error, not_found} ->
|
{error, not_found} ->
|
||||||
|
@ -339,7 +340,7 @@ crud_listeners_by_id(post, #{bindings := #{id := Id}, body := Body0}) ->
|
||||||
case parse_listener_conf(Body0) of
|
case parse_listener_conf(Body0) of
|
||||||
{Id, Type, Name, Conf} ->
|
{Id, Type, Name, Conf} ->
|
||||||
Path = [listeners, Type, Name],
|
Path = [listeners, Type, Name],
|
||||||
case emqx_listeners:create(Path, Conf) of
|
case create(Path, Conf) of
|
||||||
{ok, #{raw_config := _RawConf}} ->
|
{ok, #{raw_config := _RawConf}} ->
|
||||||
crud_listeners_by_id(get, #{bindings => #{id => Id}});
|
crud_listeners_by_id(get, #{bindings => #{id => Id}});
|
||||||
{error, already_exist} ->
|
{error, already_exist} ->
|
||||||
|
@ -354,7 +355,7 @@ crud_listeners_by_id(post, #{bindings := #{id := Id}, body := Body0}) ->
|
||||||
end;
|
end;
|
||||||
crud_listeners_by_id(delete, #{bindings := #{id := Id}}) ->
|
crud_listeners_by_id(delete, #{bindings := #{id := Id}}) ->
|
||||||
{ok, #{type := Type, name := Name}} = emqx_listeners:parse_listener_id(Id),
|
{ok, #{type := Type, name := Name}} = emqx_listeners:parse_listener_id(Id),
|
||||||
case emqx_listeners:remove([listeners, Type, Name]) of
|
case remove([listeners, Type, Name]) of
|
||||||
{ok, _} -> {204};
|
{ok, _} -> {204};
|
||||||
{error, not_found} -> {204};
|
{error, not_found} -> {204};
|
||||||
{error, Reason} -> {400, #{code => 'BAD_REQUEST', message => err_msg(Reason)}}
|
{error, Reason} -> {400, #{code => 'BAD_REQUEST', message => err_msg(Reason)}}
|
||||||
|
@ -570,6 +571,20 @@ max_conn(_Int1, <<"infinity">>) -> <<"infinity">>;
|
||||||
max_conn(<<"infinity">>, _Int) -> <<"infinity">>;
|
max_conn(<<"infinity">>, _Int) -> <<"infinity">>;
|
||||||
max_conn(Int1, Int2) -> Int1 + Int2.
|
max_conn(Int1, Int2) -> Int1 + Int2.
|
||||||
|
|
||||||
|
update(Path, Conf) ->
|
||||||
|
wrap(emqx_conf:update(Path, {update, Conf}, ?OPTS(cluster))).
|
||||||
|
|
||||||
|
create(Path, Conf) ->
|
||||||
|
wrap(emqx_conf:update(Path, {create, Conf}, ?OPTS(cluster))).
|
||||||
|
|
||||||
|
remove(Path) ->
|
||||||
|
wrap(emqx_conf:remove(Path, ?OPTS(cluster))).
|
||||||
|
|
||||||
|
wrap({error, {post_config_update, ?MODULE, Reason}}) -> {error, Reason};
|
||||||
|
wrap({error, {pre_config_update, ?MODULE, Reason}}) -> {error, Reason};
|
||||||
|
wrap({error, Reason}) -> {error, Reason};
|
||||||
|
wrap(Ok) -> Ok.
|
||||||
|
|
||||||
listener_type_status_example() ->
|
listener_type_status_example() ->
|
||||||
[
|
[
|
||||||
#{
|
#{
|
||||||
|
|
Loading…
Reference in New Issue