diff --git a/apps/emqx/src/emqx_alarm.erl b/apps/emqx/src/emqx_alarm.erl index 1ae985deb..21581e71a 100644 --- a/apps/emqx/src/emqx_alarm.erl +++ b/apps/emqx/src/emqx_alarm.erl @@ -307,8 +307,8 @@ clear_table(TableName) -> end. ensure_timer(OldTRef, Period) -> - case is_reference(OldTRef) of - true -> _ = erlang:cancel_timer(OldTRef); + _ = case is_reference(OldTRef) of + true -> erlang:cancel_timer(OldTRef); false -> ok end, emqx_misc:start_timer(Period, delete_expired_deactivated_alarm). diff --git a/apps/emqx/src/emqx_channel.erl b/apps/emqx/src/emqx_channel.erl index 98206c37a..5660863a7 100644 --- a/apps/emqx/src/emqx_channel.erl +++ b/apps/emqx/src/emqx_channel.erl @@ -253,14 +253,12 @@ set_peercert_infos(Peercert, ClientInfo, Zone, Listener) -> {DN, CN} = {esockd_peercert:subject(Peercert), esockd_peercert:common_name(Peercert)}, PeercetAs = fun(Key) -> - % esockd_peercert:peercert is opaque - % https://github.com/emqx/esockd/blob/master/src/esockd_peercert.erl case get_mqtt_conf(Zone, Listener, Key) of cn -> CN; dn -> DN; crt -> Peercert; - pem -> base64:encode(Peercert); - md5 -> emqx_passwd:hash(md5, Peercert); + pem when is_binary(Peercert) -> base64:encode(Peercert); + md5 when is_binary(Peercert) -> emqx_passwd:hash(md5, Peercert); _ -> undefined end end, diff --git a/apps/emqx/src/emqx_flapping.erl b/apps/emqx/src/emqx_flapping.erl index dcc88f6b4..64633833b 100644 --- a/apps/emqx/src/emqx_flapping.erl +++ b/apps/emqx/src/emqx_flapping.erl @@ -54,7 +54,7 @@ clientid :: emqx_types:clientid(), peerhost :: emqx_types:peerhost(), started_at :: pos_integer(), - detect_cnt :: pos_integer() + detect_cnt :: integer() }). -opaque(flapping() :: #flapping{}). diff --git a/apps/emqx/src/emqx_frame.erl b/apps/emqx/src/emqx_frame.erl index 0bab10e0c..082801bad 100644 --- a/apps/emqx/src/emqx_frame.erl +++ b/apps/emqx/src/emqx_frame.erl @@ -34,9 +34,6 @@ , serialize/2 ]). --export([ set_opts/2 - ]). - -export_type([ options/0 , parse_state/0 , parse_result/0 @@ -86,10 +83,6 @@ initial_parse_state() -> initial_parse_state(Options) when is_map(Options) -> ?none(maps:merge(?DEFAULT_OPTIONS, Options)). --spec set_opts(parse_state(), options()) -> parse_state(). -set_opts({_, OldOpts}, Opts) -> - maps:merge(OldOpts, Opts). - %%-------------------------------------------------------------------- %% Parse MQTT Frame %%-------------------------------------------------------------------- diff --git a/apps/emqx/src/emqx_os_mon.erl b/apps/emqx/src/emqx_os_mon.erl index ee509e54f..b70c27e1b 100644 --- a/apps/emqx/src/emqx_os_mon.erl +++ b/apps/emqx/src/emqx_os_mon.erl @@ -81,7 +81,7 @@ init([]) -> set_mem_check_interval(maps:get(mem_check_interval, Opts)), set_sysmem_high_watermark(maps:get(sysmem_high_watermark, Opts)), set_procmem_high_watermark(maps:get(procmem_high_watermark, Opts)), - start_check_timer(), + _ = start_check_timer(), {ok, #{}}. handle_call(Req, _From, State) -> @@ -95,7 +95,7 @@ handle_cast(Msg, State) -> handle_info({timeout, _Timer, check}, State) -> CPUHighWatermark = emqx_config:get([sysmon, os, cpu_high_watermark]) * 100, CPULowWatermark = emqx_config:get([sysmon, os, cpu_low_watermark]) * 100, - case emqx_vm:cpu_util() of %% TODO: should be improved? + _ = case emqx_vm:cpu_util() of %% TODO: should be improved? 0 -> ok; Busy when Busy >= CPUHighWatermark -> emqx_alarm:activate(high_cpu_usage, #{usage => io_lib:format("~p%", [Busy]), diff --git a/apps/emqx/src/emqx_session.erl b/apps/emqx/src/emqx_session.erl index 995aff713..c1f6767b4 100644 --- a/apps/emqx/src/emqx_session.erl +++ b/apps/emqx/src/emqx_session.erl @@ -96,7 +96,7 @@ %% Client’s Subscriptions. subscriptions :: map(), %% Max subscriptions allowed - max_subscriptions :: non_neg_integer(), + max_subscriptions :: non_neg_integer() | infinity, %% Upgrade QoS? upgrade_qos :: boolean(), %% Client <- Broker: QoS1/2 messages sent to the client but @@ -115,7 +115,7 @@ %% have not been completely acknowledged awaiting_rel :: map(), %% Maximum number of awaiting QoS2 messages allowed - max_awaiting_rel :: non_neg_integer(), + max_awaiting_rel :: non_neg_integer() | infinity, %% Awaiting PUBREL Timeout (Unit: millsecond) await_rel_timeout :: timeout(), %% Created at diff --git a/apps/emqx/src/emqx_ws_connection.erl b/apps/emqx/src/emqx_ws_connection.erl index 50a1cfea1..947658035 100644 --- a/apps/emqx/src/emqx_ws_connection.erl +++ b/apps/emqx/src/emqx_ws_connection.erl @@ -524,7 +524,7 @@ check_oom(State = #state{channel = Channel}) -> ShutdownPolicy = emqx_config:get_listener_conf(emqx_channel:info(zone, Channel), emqx_channel:info(listener, Channel), [force_shutdown]), case ShutdownPolicy of - #{enable := false} -> ok; + #{enable := false} -> State; #{enable := true} -> case emqx_misc:check_oom(ShutdownPolicy) of Shutdown = {shutdown, _Reason} ->