|
@@ -36,14 +36,8 @@
|
|
|
-define(TAB, ?MODULE).
|
|
-define(TAB, ?MODULE).
|
|
|
-define(SERVER, ?MODULE).
|
|
-define(SERVER, ?MODULE).
|
|
|
|
|
|
|
|
--type(key() :: {client_id, emqx_types:client_id()} |
|
|
|
|
|
- {username, emqx_types:username() |
|
|
|
|
|
- {ipaddr, inet:ip_address()}}).
|
|
|
|
|
-
|
|
|
|
|
-record(state, {expiry_timer}).
|
|
-record(state, {expiry_timer}).
|
|
|
|
|
|
|
|
--record(banned, {key :: key(), reason, by, desc, until}).
|
|
|
|
|
-
|
|
|
|
|
%%--------------------------------------------------------------------
|
|
%%--------------------------------------------------------------------
|
|
|
%% Mnesia bootstrap
|
|
%% Mnesia bootstrap
|
|
|
%%--------------------------------------------------------------------
|
|
%%--------------------------------------------------------------------
|
|
@@ -84,7 +78,7 @@ del(Key) ->
|
|
|
%%--------------------------------------------------------------------
|
|
%%--------------------------------------------------------------------
|
|
|
|
|
|
|
|
init([]) ->
|
|
init([]) ->
|
|
|
- emqx_timer:seed(),
|
|
|
|
|
|
|
+ emqx_time:seed(),
|
|
|
{ok, ensure_expiry_timer(#state{})}.
|
|
{ok, ensure_expiry_timer(#state{})}.
|
|
|
|
|
|
|
|
handle_call(Req, _From, State) ->
|
|
handle_call(Req, _From, State) ->
|
|
@@ -128,7 +122,8 @@ expire_banned_item(Key, Now) ->
|
|
|
[#banned{until = undefined}] -> ok;
|
|
[#banned{until = undefined}] -> ok;
|
|
|
[B = #banned{until = Until}] when Until < Now ->
|
|
[B = #banned{until = Until}] when Until < Now ->
|
|
|
mnesia:delete_object(?TAB, B, sticky_write);
|
|
mnesia:delete_object(?TAB, B, sticky_write);
|
|
|
|
|
+ [_] -> ok;
|
|
|
[] -> ok
|
|
[] -> ok
|
|
|
end,
|
|
end,
|
|
|
- expire_banned_item(mnesia:next(Key), Now).
|
|
|
|
|
|
|
+ expire_banned_item(mnesia:next(?TAB, Key), Now).
|
|
|
|
|
|