diff --git a/rebar.config b/rebar.config index 52bb8ead3a..6a7852afff 100644 --- a/rebar.config +++ b/rebar.config @@ -2,10 +2,10 @@ [ {jsx, "2.9.0"} % hex , {cowboy, "2.6.1"} % hex , {gproc, "0.8.0"} % hex + , {ekka, "0.5.6"} % hex + , {replayq, "0.1.1"} %hex + , {esockd, "5.5.0"} %hex , {gen_rpc, {git, "https://github.com/emqx/gen_rpc", {tag, "2.3.1"}}} - , {ekka, {git, "https://github.com/emqx/ekka", {tag, "v0.5.5"}}} - , {replayq, {git, "https://github.com/emqx/replayq", {tag, "v0.1.1"}}} - , {esockd, "5.5.0"} , {cuttlefish, {git, "https://github.com/emqx/cuttlefish", {tag, "v3.0.0"}}} ]}. diff --git a/src/emqx_cm_sup.erl b/src/emqx_cm_sup.erl index 19940da05d..e054c53e78 100644 --- a/src/emqx_cm_sup.erl +++ b/src/emqx_cm_sup.erl @@ -30,9 +30,8 @@ init([]) -> shutdown => 1000, type => worker, modules => [emqx_banned]}, - FlappingOption = emqx_config:get_env(flapping_clean_interval, 3600000), Flapping = #{id => flapping, - start => {emqx_flapping, start_link, [FlappingOption]}, + start => {emqx_flapping, start_link, []}, restart => permanent, shutdown => 1000, type => worker, diff --git a/src/emqx_flapping.erl b/src/emqx_flapping.erl index 099bf3910d..2a5e66be16 100644 --- a/src/emqx_flapping.erl +++ b/src/emqx_flapping.erl @@ -19,7 +19,7 @@ -behaviour(gen_statem). --export([start_link/1]). +-export([start_link/0]). %% This module is used to garbage clean the flapping records @@ -33,6 +33,8 @@ -define(FLAPPING_TAB, ?MODULE). +-define(default_flapping_clean_interval, 3600000). + -export([check/3]). -record(flapping, @@ -96,11 +98,12 @@ check_flapping(Action, CheckCount, _Threshold = {TimesThreshold, TimeInterval}, %%-------------------------------------------------------------------- %% gen_statem callbacks %%-------------------------------------------------------------------- --spec(start_link(TimerInterval :: [integer()]) -> startlink_ret()). -start_link(TimerInterval) -> - gen_statem:start_link({local, ?MODULE}, ?MODULE, [TimerInterval], []). +-spec(start_link() -> startlink_ret()). +start_link() -> + gen_statem:start_link({local, ?MODULE}, ?MODULE, [], []). -init([TimerInterval]) -> +init([]) -> + TimerInterval = emqx_config:get_env(flapping_clean_interval, ?default_flapping_clean_interval), TabOpts = [ public , set , {keypos, 2} diff --git a/src/emqx_protocol.erl b/src/emqx_protocol.erl index b6ca03d7f4..3328ac019c 100644 --- a/src/emqx_protocol.erl +++ b/src/emqx_protocol.erl @@ -961,7 +961,7 @@ do_flapping_detect(Action, #pstate{zone = Zone, Threshold = emqx_zone:get_env(Zone, flapping_threshold, {10, 60}), case emqx_flapping:check(Action, ClientId, Threshold) of flapping -> - BanExpiryInterval = emqx_zone:get_env(Zone, flapping_ban_expiry_interval, 3600000), + BanExpiryInterval = emqx_zone:get_env(Zone, flapping_banned_expiry_interval, 3600000), Until = erlang:system_time(second) + BanExpiryInterval, emqx_banned:add(#banned{who = {client_id, ClientId}, reason = <<"flapping">>,