diff --git a/apps/emqx_management/src/emqx_mgmt_api_banned.erl b/apps/emqx_management/src/emqx_mgmt_api_banned.erl index 0e6439163..c3cd8e313 100644 --- a/apps/emqx_management/src/emqx_mgmt_api_banned.erl +++ b/apps/emqx_management/src/emqx_mgmt_api_banned.erl @@ -59,7 +59,7 @@ create(_Bindings, Params) -> {ok, Banned} = pack_banned(NParams), ok = emqx_mgmt:create_banned(Banned), return({ok, maps:from_list(Params)}); - {error, Code, Message} -> + {error, Code, Message} -> return({error, Code, Message}) end. @@ -71,7 +71,7 @@ delete(#{as := As, who := Who}, _) -> {ok, NParams} -> do_delete(get_value(<<"as">>, NParams), get_value(<<"who">>, NParams)), return(); - {error, Code, Message} -> + {error, Code, Message} -> return({error, Code, Message}) end. @@ -105,6 +105,8 @@ validate_params(Params) -> {error, ?ERROR8, Msg} end. +%% TODO who and reason is undefined - causing dialyzer errors. fix later +-dialyzer({nowarn_function,pack_banned/1}). pack_banned(Params) -> Now = erlang:system_time(second), do_pack_banned(Params, #banned{by = <<"user">>, diff --git a/include/emqx.hrl b/include/emqx.hrl index e13ab8215..a76a86528 100644 --- a/include/emqx.hrl +++ b/include/emqx.hrl @@ -145,6 +145,7 @@ -record(banned, { who :: {clientid, binary()} + | {peerhost, inet:ip_address()} | {username, binary()} | {ip_address, inet:ip_address()}, by :: binary(), diff --git a/src/emqx.erl b/src/emqx.erl index deab636d6..b8b8cffbc 100644 --- a/src/emqx.erl +++ b/src/emqx.erl @@ -184,7 +184,7 @@ hook(HookPoint, Action, InitArgs) when is_list(InitArgs) -> hook(HookPoint, Action, Filter, Priority) -> emqx_hooks:add(HookPoint, Action, Filter, Priority). --spec(unhook(emqx_hooks:hookpoint(), fun() | {atom(), atom()} | {atom(), atom(), [any()]}) -> ok). +-spec(unhook(emqx_hooks:hookpoint(), emqx_hooks:action() | {module(), atom()}) -> ok). unhook(HookPoint, Action) -> emqx_hooks:del(HookPoint, Action). diff --git a/src/emqx_hooks.erl b/src/emqx_hooks.erl index ef4245b46..33dca08cb 100644 --- a/src/emqx_hooks.erl +++ b/src/emqx_hooks.erl @@ -121,7 +121,7 @@ put(HookPoint, Callback) -> end. %% @doc Unregister a callback. --spec(del(hookpoint(), function() | {module(), atom()}) -> ok). +-spec(del(hookpoint(), action() | {module(), atom()}) -> ok). del(HookPoint, Action) -> gen_server:cast(?SERVER, {del, HookPoint, Action}). diff --git a/src/emqx_types.erl b/src/emqx_types.erl index dd1bd71a9..b92d457b8 100644 --- a/src/emqx_types.erl +++ b/src/emqx_types.erl @@ -127,7 +127,7 @@ expiry_interval => non_neg_integer(), atom() => term() }). --type(clientinfo() :: #{zone := zone(), +-type(clientinfo() :: #{zone := maybe(zone()), protocol := protocol(), peerhost := peerhost(), sockport := non_neg_integer(),