diff --git a/apps/emqx/include/types.hrl b/apps/emqx/include/types.hrl index ec56a9300..75750138f 100644 --- a/apps/emqx/include/types.hrl +++ b/apps/emqx/include/types.hrl @@ -14,7 +14,7 @@ %% limitations under the License. %%-------------------------------------------------------------------- --type maybe(T) :: undefined | T. +-type option(T) :: undefined | T. -type startlink_ret() :: {ok, pid()} | ignore | {error, term()}. diff --git a/apps/emqx/rebar.config b/apps/emqx/rebar.config index a9b441bc5..3626d0858 100644 --- a/apps/emqx/rebar.config +++ b/apps/emqx/rebar.config @@ -71,7 +71,7 @@ {statistics, true} ]}. -{project_plugins, [erlfmt]}. +{project_plugins, [{erlfmt, "1.3.0"}]}. {erlfmt, [ {files, [ diff --git a/apps/emqx/src/emqx_broker.erl b/apps/emqx/src/emqx_broker.erl index b4fdd0e86..c8ca20812 100644 --- a/apps/emqx/src/emqx_broker.erl +++ b/apps/emqx/src/emqx_broker.erl @@ -440,7 +440,7 @@ subscribed(SubId, Topic) when ?IS_SUBID(SubId) -> SubPid = emqx_broker_helper:lookup_subpid(SubId), ets:member(?SUBOPTION, {Topic, SubPid}). --spec get_subopts(pid(), emqx_types:topic() | emqx_types:share()) -> maybe(emqx_types:subopts()). +-spec get_subopts(pid(), emqx_types:topic() | emqx_types:share()) -> option(emqx_types:subopts()). get_subopts(SubPid, Topic) when is_pid(SubPid), ?IS_TOPIC(Topic) -> lookup_value(?SUBOPTION, {Topic, SubPid}); get_subopts(SubId, Topic) when ?IS_SUBID(SubId) -> diff --git a/apps/emqx/src/emqx_broker_helper.erl b/apps/emqx/src/emqx_broker_helper.erl index ea615c2f7..ef238b61a 100644 --- a/apps/emqx/src/emqx_broker_helper.erl +++ b/apps/emqx/src/emqx_broker_helper.erl @@ -71,11 +71,11 @@ register_sub(SubPid, SubId) when is_pid(SubPid) -> error(subid_conflict) end. --spec lookup_subid(pid()) -> maybe(emqx_types:subid()). +-spec lookup_subid(pid()) -> option(emqx_types:subid()). lookup_subid(SubPid) when is_pid(SubPid) -> emqx_utils_ets:lookup_value(?SUBMON, SubPid). --spec lookup_subpid(emqx_types:subid()) -> maybe(pid()). +-spec lookup_subpid(emqx_types:subid()) -> option(pid()). lookup_subpid(SubId) -> emqx_utils_ets:lookup_value(?SUBID, SubId). diff --git a/apps/emqx/src/emqx_channel.erl b/apps/emqx/src/emqx_channel.erl index 86c3b840c..c2e0f3396 100644 --- a/apps/emqx/src/emqx_channel.erl +++ b/apps/emqx/src/emqx_channel.erl @@ -84,21 +84,21 @@ %% MQTT ClientInfo clientinfo :: emqx_types:clientinfo(), %% MQTT Session - session :: maybe(emqx_session:t()), + session :: option(emqx_session:t()), %% Keepalive - keepalive :: maybe(emqx_keepalive:keepalive()), + keepalive :: option(emqx_keepalive:keepalive()), %% MQTT Will Msg - will_msg :: maybe(emqx_types:message()), + will_msg :: option(emqx_types:message()), %% MQTT Topic Aliases topic_aliases :: emqx_types:topic_aliases(), %% MQTT Topic Alias Maximum - alias_maximum :: maybe(map()), + alias_maximum :: option(map()), %% Authentication Data Cache - auth_cache :: maybe(map()), + auth_cache :: option(map()), %% Quota checkers quota :: emqx_limiter_container:container(), %% Timers - timers :: #{atom() => disabled | maybe(reference())}, + timers :: #{atom() => disabled | option(reference())}, %% Conn State conn_state :: conn_state(), %% Takeover diff --git a/apps/emqx/src/emqx_cm.erl b/apps/emqx/src/emqx_cm.erl index 10cd3d6cc..d9d5aa941 100644 --- a/apps/emqx/src/emqx_cm.erl +++ b/apps/emqx/src/emqx_cm.erl @@ -200,12 +200,12 @@ do_unregister_channel({_ClientId, ChanPid} = Chan) -> true. %% @doc Get info of a channel. --spec get_chan_info(emqx_types:clientid()) -> maybe(emqx_types:infos()). +-spec get_chan_info(emqx_types:clientid()) -> option(emqx_types:infos()). get_chan_info(ClientId) -> with_channel(ClientId, fun(ChanPid) -> get_chan_info(ClientId, ChanPid) end). -spec do_get_chan_info(emqx_types:clientid(), chan_pid()) -> - maybe(emqx_types:infos()). + option(emqx_types:infos()). do_get_chan_info(ClientId, ChanPid) -> Chan = {ClientId, ChanPid}, try @@ -215,7 +215,7 @@ do_get_chan_info(ClientId, ChanPid) -> end. -spec get_chan_info(emqx_types:clientid(), chan_pid()) -> - maybe(emqx_types:infos()). + option(emqx_types:infos()). get_chan_info(ClientId, ChanPid) -> wrap_rpc(emqx_cm_proto_v2:get_chan_info(ClientId, ChanPid)). @@ -230,12 +230,12 @@ set_chan_info(ClientId, Info) when ?IS_CLIENTID(ClientId) -> end. %% @doc Get channel's stats. --spec get_chan_stats(emqx_types:clientid()) -> maybe(emqx_types:stats()). +-spec get_chan_stats(emqx_types:clientid()) -> option(emqx_types:stats()). get_chan_stats(ClientId) -> with_channel(ClientId, fun(ChanPid) -> get_chan_stats(ClientId, ChanPid) end). -spec do_get_chan_stats(emqx_types:clientid(), chan_pid()) -> - maybe(emqx_types:stats()). + option(emqx_types:stats()). do_get_chan_stats(ClientId, ChanPid) -> Chan = {ClientId, ChanPid}, try @@ -245,7 +245,7 @@ do_get_chan_stats(ClientId, ChanPid) -> end. -spec get_chan_stats(emqx_types:clientid(), chan_pid()) -> - maybe(emqx_types:stats()). + option(emqx_types:stats()). get_chan_stats(ClientId, ChanPid) -> wrap_rpc(emqx_cm_proto_v2:get_chan_stats(ClientId, ChanPid)). @@ -325,7 +325,7 @@ takeover_session_end({ConnMod, ChanPid}) -> end. -spec pick_channel(emqx_types:clientid()) -> - maybe(pid()). + option(pid()). pick_channel(ClientId) -> case lookup_channels(ClientId) of [] -> diff --git a/apps/emqx/src/emqx_cm_locker.erl b/apps/emqx/src/emqx_cm_locker.erl index f56f9239a..c767901ed 100644 --- a/apps/emqx/src/emqx_cm_locker.erl +++ b/apps/emqx/src/emqx_cm_locker.erl @@ -32,7 +32,7 @@ start_link() -> ekka_locker:start_link(?MODULE). -spec trans( - maybe(emqx_types:clientid()), + option(emqx_types:clientid()), fun(([node()]) -> any()) ) -> any(). trans(undefined, Fun) -> diff --git a/apps/emqx/src/emqx_connection.erl b/apps/emqx/src/emqx_connection.erl index d306464c1..96e4f54c7 100644 --- a/apps/emqx/src/emqx_connection.erl +++ b/apps/emqx/src/emqx_connection.erl @@ -99,13 +99,13 @@ %% Channel State channel :: emqx_channel:channel(), %% GC State - gc_state :: maybe(emqx_gc:gc_state()), + gc_state :: option(emqx_gc:gc_state()), %% Stats Timer - stats_timer :: disabled | maybe(reference()), + stats_timer :: disabled | option(reference()), %% Idle Timeout idle_timeout :: integer() | infinity, %% Idle Timer - idle_timer :: maybe(reference()), + idle_timer :: option(reference()), %% Zone name zone :: atom(), %% Listener Type and Name @@ -121,7 +121,7 @@ limiter_timer :: undefined | reference(), %% QUIC conn owner pid if in use. - quic_conn_pid :: maybe(pid()) + quic_conn_pid :: option(pid()) }). -record(retry, { diff --git a/apps/emqx/src/emqx_gc.erl b/apps/emqx/src/emqx_gc.erl index 61087ba29..525a9bea8 100644 --- a/apps/emqx/src/emqx_gc.erl +++ b/apps/emqx/src/emqx_gc.erl @@ -86,11 +86,11 @@ do_run([{K, N} | T], St) -> end. %% @doc Info of GC state. --spec info(maybe(gc_state())) -> maybe(map()). +-spec info(option(gc_state())) -> option(map()). info(?GCS(St)) -> St. %% @doc Reset counters to zero. --spec reset(maybe(gc_state())) -> gc_state(). +-spec reset(option(gc_state())) -> gc_state(). reset(?GCS(St)) -> ?GCS(do_reset(St)). diff --git a/apps/emqx/src/emqx_hooks.erl b/apps/emqx/src/emqx_hooks.erl index efe2c0de8..57e772ddc 100644 --- a/apps/emqx/src/emqx_hooks.erl +++ b/apps/emqx/src/emqx_hooks.erl @@ -76,7 +76,7 @@ -record(callback, { action :: action(), - filter :: maybe(filter()), + filter :: option(filter()), priority :: integer() }). diff --git a/apps/emqx/src/emqx_maybe.erl b/apps/emqx/src/emqx_maybe.erl index af2fd04a7..522cd5e98 100644 --- a/apps/emqx/src/emqx_maybe.erl +++ b/apps/emqx/src/emqx_maybe.erl @@ -23,30 +23,30 @@ -export([define/2]). -export([apply/2]). --type t(T) :: maybe(T). +-type t(T) :: option(T). -export_type([t/1]). --spec to_list(maybe(A)) -> [A]. +-spec to_list(option(A)) -> [A]. to_list(undefined) -> []; to_list(Term) -> [Term]. --spec from_list([A]) -> maybe(A). +-spec from_list([A]) -> option(A). from_list([]) -> undefined; from_list([Term]) -> Term. --spec define(maybe(A), B) -> A | B. +-spec define(option(A), B) -> A | B. define(undefined, Term) -> Term; define(Term, _) -> Term. %% @doc Apply a function to a maybe argument. --spec apply(fun((A) -> B), maybe(A)) -> - maybe(B). +-spec apply(fun((A) -> B), option(A)) -> + option(B). apply(_Fun, undefined) -> undefined; apply(Fun, Term) when is_function(Fun) -> diff --git a/apps/emqx/src/emqx_message.erl b/apps/emqx/src/emqx_message.erl index 0628908d1..b183aa029 100644 --- a/apps/emqx/src/emqx_message.erl +++ b/apps/emqx/src/emqx_message.erl @@ -186,7 +186,7 @@ estimate_size(#message{topic = Topic, payload = Payload}) -> TopicLengthSize = 2, FixedHeaderSize + VarLenSize + TopicLengthSize + TopicSize + PacketIdSize + PayloadSize. --spec id(emqx_types:message()) -> maybe(binary()). +-spec id(emqx_types:message()) -> option(binary()). id(#message{id = Id}) -> Id. -spec qos(emqx_types:message()) -> emqx_types:qos(). @@ -229,7 +229,7 @@ get_flag(Flag, Msg) -> get_flag(Flag, #message{flags = Flags}, Default) -> maps:get(Flag, Flags, Default). --spec get_flags(emqx_types:message()) -> maybe(map()). +-spec get_flags(emqx_types:message()) -> option(map()). get_flags(#message{flags = Flags}) -> Flags. -spec set_flag(emqx_types:flag(), emqx_types:message()) -> emqx_types:message(). @@ -252,7 +252,7 @@ unset_flag(Flag, Msg = #message{flags = Flags}) -> set_headers(New, Msg = #message{headers = Old}) when is_map(New) -> Msg#message{headers = maps:merge(Old, New)}. --spec get_headers(emqx_types:message()) -> maybe(map()). +-spec get_headers(emqx_types:message()) -> option(map()). get_headers(Msg) -> Msg#message.headers. -spec get_header(term(), emqx_types:message()) -> term(). diff --git a/apps/emqx/src/emqx_mountpoint.erl b/apps/emqx/src/emqx_mountpoint.erl index c19736690..8da27aad2 100644 --- a/apps/emqx/src/emqx_mountpoint.erl +++ b/apps/emqx/src/emqx_mountpoint.erl @@ -32,7 +32,7 @@ -type mountpoint() :: binary(). --spec mount(maybe(mountpoint()), Any) -> Any when +-spec mount(option(mountpoint()), Any) -> Any when Any :: emqx_types:topic() | emqx_types:share() @@ -47,7 +47,7 @@ mount(MountPoint, Msg = #message{topic = Topic}) when is_binary(Topic) -> mount(MountPoint, TopicFilters) when is_list(TopicFilters) -> [{prefix_maybe_share(MountPoint, Topic), SubOpts} || {Topic, SubOpts} <- TopicFilters]. --spec prefix_maybe_share(maybe(mountpoint()), Any) -> Any when +-spec prefix_maybe_share(option(mountpoint()), Any) -> Any when Any :: emqx_types:topic() | emqx_types:share(). @@ -60,7 +60,7 @@ prefix_maybe_share(MountPoint, #share{group = Group, topic = Topic}) when -> #share{group = Group, topic = prefix_maybe_share(MountPoint, Topic)}. --spec unmount(maybe(mountpoint()), Any) -> Any when +-spec unmount(option(mountpoint()), Any) -> Any when Any :: emqx_types:topic() | emqx_types:share() @@ -84,7 +84,7 @@ unmount_maybe_share(MountPoint, TopicFilter = #share{topic = Topic}) when -> TopicFilter#share{topic = unmount_maybe_share(MountPoint, Topic)}. --spec replvar(maybe(mountpoint()), map()) -> maybe(mountpoint()). +-spec replvar(option(mountpoint()), map()) -> option(mountpoint()). replvar(undefined, _Vars) -> undefined; replvar(MountPoint, Vars) -> diff --git a/apps/emqx/src/emqx_mqueue.erl b/apps/emqx/src/emqx_mqueue.erl index 0ef7d56e5..7b30e5006 100644 --- a/apps/emqx/src/emqx_mqueue.erl +++ b/apps/emqx/src/emqx_mqueue.erl @@ -189,7 +189,7 @@ stats(#mqueue{max_len = MaxLen, dropped = Dropped} = MQ) -> [{len, len(MQ)}, {max_len, MaxLen}, {dropped, Dropped}]. %% @doc Enqueue a message. --spec in(message(), mqueue()) -> {maybe(message()), mqueue()}. +-spec in(message(), mqueue()) -> {option(message()), mqueue()}. in(Msg = #message{qos = ?QOS_0}, MQ = #mqueue{store_qos0 = false}) -> {_Dropped = Msg, MQ}; in( diff --git a/apps/emqx/src/emqx_pd.erl b/apps/emqx/src/emqx_pd.erl index 73e75a771..602c23065 100644 --- a/apps/emqx/src/emqx_pd.erl +++ b/apps/emqx/src/emqx_pd.erl @@ -48,7 +48,7 @@ get_counter(Key) -> Cnt -> Cnt end. --spec inc_counter(key(), number()) -> maybe(number()). +-spec inc_counter(key(), number()) -> option(number()). inc_counter(Key, Inc) -> put(Key, get_counter(Key) + Inc). diff --git a/apps/emqx/src/emqx_session.erl b/apps/emqx/src/emqx_session.erl index fa7441b11..a84ed4d83 100644 --- a/apps/emqx/src/emqx_session.erl +++ b/apps/emqx/src/emqx_session.erl @@ -135,7 +135,7 @@ -type custom_timer_name() :: atom(). -type message() :: emqx_types:message(). --type publish() :: {maybe(emqx_types:packet_id()), emqx_types:message()}. +-type publish() :: {option(emqx_types:packet_id()), emqx_types:message()}. -type pubrel() :: {pubrel, emqx_types:packet_id()}. -type reply() :: publish() | pubrel(). -type replies() :: [reply()] | reply(). diff --git a/apps/emqx/src/emqx_stats.erl b/apps/emqx/src/emqx_stats.erl index 9685823ff..4954d0a45 100644 --- a/apps/emqx/src/emqx_stats.erl +++ b/apps/emqx/src/emqx_stats.erl @@ -62,7 +62,7 @@ -record(update, {name, countdown, interval, func}). -record(state, { - timer :: maybe(reference()), + timer :: option(reference()), updates :: [#update{}], tick_ms :: timeout() }). diff --git a/apps/emqx/src/emqx_sys.erl b/apps/emqx/src/emqx_sys.erl index 509429796..e7c19cabd 100644 --- a/apps/emqx/src/emqx_sys.erl +++ b/apps/emqx/src/emqx_sys.erl @@ -65,8 +65,8 @@ -import(emqx_utils, [start_timer/2]). -record(state, { - heartbeat :: maybe(reference()), - ticker :: maybe(reference()), + heartbeat :: option(reference()), + ticker :: option(reference()), sysdescr :: binary() }). diff --git a/apps/emqx/src/emqx_types.erl b/apps/emqx/src/emqx_types.erl index 436fffe4e..087bcaebe 100644 --- a/apps/emqx/src/emqx_types.erl +++ b/apps/emqx/src/emqx_types.erl @@ -173,7 +173,7 @@ atom() => term() }. -type clientinfo() :: #{ - zone := maybe(zone()), + zone := option(zone()), protocol := protocol(), peerhost := peerhost(), sockport := non_neg_integer(), @@ -181,9 +181,9 @@ username := username(), is_bridge := boolean(), is_superuser := boolean(), - mountpoint := maybe(binary()), - ws_cookie => maybe(list()), - password => maybe(binary()), + mountpoint := option(binary()), + ws_cookie => option(list()), + password => option(binary()), auth_result => auth_result(), anonymous => boolean(), cn => binary(), @@ -191,8 +191,8 @@ atom() => term() }. -type clientid() :: binary() | atom(). --type username() :: maybe(binary()). --type password() :: maybe(binary()). +-type username() :: option(binary()). +-type password() :: option(binary()). -type peerhost() :: inet:ip_address(). -type peername() :: {inet:ip_address(), inet:port_number()} @@ -222,8 +222,8 @@ -type packet_id() :: 1..16#FFFF. -type alias_id() :: 0..16#FFFF. -type topic_aliases() :: #{ - inbound => maybe(map()), - outbound => maybe(map()) + inbound => option(map()), + outbound => option(map()) }. -type properties() :: #{atom() => term()}. -type topic_filters() :: list({topic(), subopts()}). diff --git a/apps/emqx/src/emqx_ws_connection.erl b/apps/emqx/src/emqx_ws_connection.erl index 1511eb6e0..59e120e47 100644 --- a/apps/emqx/src/emqx_ws_connection.erl +++ b/apps/emqx/src/emqx_ws_connection.erl @@ -76,15 +76,15 @@ %% Channel channel :: emqx_channel:channel(), %% GC State - gc_state :: maybe(emqx_gc:gc_state()), + gc_state :: option(emqx_gc:gc_state()), %% Postponed Packets|Cmds|Events postponed :: list(emqx_types:packet() | ws_cmd() | tuple()), %% Stats Timer - stats_timer :: disabled | maybe(reference()), + stats_timer :: disabled | option(reference()), %% Idle Timeout idle_timeout :: timeout(), %% Idle Timer - idle_timer :: maybe(reference()), + idle_timer :: option(reference()), %% Zone name zone :: atom(), %% Listener Type and Name diff --git a/apps/emqx/test/emqx_listeners_SUITE.erl b/apps/emqx/test/emqx_listeners_SUITE.erl index 2d2a13e31..e934e6903 100644 --- a/apps/emqx/test/emqx_listeners_SUITE.erl +++ b/apps/emqx/test/emqx_listeners_SUITE.erl @@ -405,9 +405,9 @@ t_quic_update_opts(Config) -> %% Unable to connect with old SSL options, server's cert is signed by another CA. ?assertError( {transport_down, #{error := _, status := Status}} when - (Status =:= bad_certificate orelse + ((Status =:= bad_certificate orelse Status =:= cert_untrusted_root orelse - Status =:= handshake_failure), + Status =:= handshake_failure)), ConnectFun(Host, Port, [ {cacertfile, filename:join(PrivDir, "ca.pem")} | ClientSSLOpts ]) @@ -553,9 +553,9 @@ t_quic_update_opts_fail(Config) -> %% Unable to connect with old SSL options, server's cert is signed by another CA. ?assertError( {transport_down, #{error := _, status := Status}} when - (Status =:= bad_certificate orelse + ((Status =:= bad_certificate orelse Status =:= cert_untrusted_root orelse - Status =:= handshake_failure), + Status =:= handshake_failure)), ConnectFun(Host, Port, [ {cacertfile, filename:join(PrivDir, "ca.pem")} | ClientSSLOpts ]) diff --git a/apps/emqx/test/emqx_proper_types.erl b/apps/emqx/test/emqx_proper_types.erl index 243a39007..d1b4b7554 100644 --- a/apps/emqx/test/emqx_proper_types.erl +++ b/apps/emqx/test/emqx_proper_types.erl @@ -114,8 +114,8 @@ clientinfo() -> {username, username()}, {is_bridge, boolean()}, {is_supuser, boolean()}, - {mountpoint, maybe(utf8())}, - {ws_cookie, maybe(list())} + {mountpoint, option(utf8())}, + {ws_cookie, option(list())} % password, % auth_result, % anonymous, @@ -496,7 +496,7 @@ pubsub() -> %% Basic Types %%-------------------------------------------------------------------- -maybe(T) -> +option(T) -> oneof([undefined, T]). socktype() -> @@ -522,7 +522,7 @@ clientid() -> utf8(). username() -> - maybe(utf8()). + option(utf8()). properties() -> map(limited_latin_atom(), binary()). diff --git a/apps/emqx_exhook/src/emqx_exhook.app.src b/apps/emqx_exhook/src/emqx_exhook.app.src index 79c34e36b..826f0ba46 100644 --- a/apps/emqx_exhook/src/emqx_exhook.app.src +++ b/apps/emqx_exhook/src/emqx_exhook.app.src @@ -1,7 +1,7 @@ %% -*- mode: erlang -*- {application, emqx_exhook, [ {description, "EMQX Extension for Hook"}, - {vsn, "5.0.15"}, + {vsn, "5.0.16"}, {modules, []}, {registered, []}, {mod, {emqx_exhook_app, []}}, diff --git a/apps/emqx_exhook/src/emqx_exhook_handler.erl b/apps/emqx_exhook/src/emqx_exhook_handler.erl index 5c1d18c17..0519d5f22 100644 --- a/apps/emqx_exhook/src/emqx_exhook_handler.erl +++ b/apps/emqx_exhook/src/emqx_exhook_handler.erl @@ -306,7 +306,7 @@ conninfo( #{ node => stringfy(node()), clientid => ClientId, - username => maybe(Username), + username => option(Username), peerhost => ntoa(Peerhost), peerport => PeerPort, sockport => SockPort, @@ -330,17 +330,17 @@ clientinfo( #{ node => stringfy(node()), clientid => ClientId, - username => maybe(Username), - password => maybe(maps:get(password, ClientInfo, undefined)), + username => option(Username), + password => option(maps:get(password, ClientInfo, undefined)), peerhost => ntoa(PeerHost), peerport => PeerPort, sockport => SockPort, protocol => stringfy(Protocol), - mountpoint => maybe(Mountpoiont), + mountpoint => option(Mountpoiont), is_superuser => maps:get(is_superuser, ClientInfo, false), anonymous => maps:get(anonymous, ClientInfo, true), - cn => maybe(maps:get(cn, ClientInfo, undefined)), - dn => maybe(maps:get(dn, ClientInfo, undefined)) + cn => option(maps:get(cn, ClientInfo, undefined)), + dn => option(maps:get(dn, ClientInfo, undefined)) }. message(#message{ @@ -435,8 +435,8 @@ ntoa({0, 0, 0, 0, 0, 16#ffff, AB, CD}) -> ntoa(IP) -> list_to_binary(inet_parse:ntoa(IP)). -maybe(undefined) -> <<>>; -maybe(B) -> B. +option(undefined) -> <<>>; +option(B) -> B. %% @private stringfy(Term) when is_binary(Term) -> diff --git a/apps/emqx_exhook/test/props/prop_exhook_hooks.erl b/apps/emqx_exhook/test/props/prop_exhook_hooks.erl index 041091e27..defdcf901 100644 --- a/apps/emqx_exhook/test/props/prop_exhook_hooks.erl +++ b/apps/emqx_exhook/test/props/prop_exhook_hooks.erl @@ -509,8 +509,8 @@ ntoa({0, 0, 0, 0, 0, 16#ffff, AB, CD}) -> ntoa(IP) -> list_to_binary(inet_parse:ntoa(IP)). -maybe(undefined) -> <<>>; -maybe(B) -> B. +option(undefined) -> <<>>; +option(B) -> B. properties(undefined) -> []; @@ -568,7 +568,7 @@ from_conninfo(ConnInfo) -> #{ node => nodestr(), clientid => maps:get(clientid, ConnInfo), - username => maybe(maps:get(username, ConnInfo, <<>>)), + username => option(maps:get(username, ConnInfo, <<>>)), peerhost => peerhost(ConnInfo), peerport => peerport(ConnInfo), sockport => sockport(ConnInfo), @@ -581,17 +581,17 @@ from_clientinfo(ClientInfo) -> #{ node => nodestr(), clientid => maps:get(clientid, ClientInfo), - username => maybe(maps:get(username, ClientInfo, <<>>)), - password => maybe(maps:get(password, ClientInfo, <<>>)), + username => option(maps:get(username, ClientInfo, <<>>)), + password => option(maps:get(password, ClientInfo, <<>>)), peerhost => ntoa(maps:get(peerhost, ClientInfo)), peerport => maps:get(peerport, ClientInfo), sockport => maps:get(sockport, ClientInfo), protocol => stringfy(maps:get(protocol, ClientInfo)), - mountpoint => maybe(maps:get(mountpoint, ClientInfo, <<>>)), + mountpoint => option(maps:get(mountpoint, ClientInfo, <<>>)), is_superuser => maps:get(is_superuser, ClientInfo, false), anonymous => maps:get(anonymous, ClientInfo, true), - cn => maybe(maps:get(cn, ClientInfo, <<>>)), - dn => maybe(maps:get(dn, ClientInfo, <<>>)) + cn => option(maps:get(cn, ClientInfo, <<>>)), + dn => option(maps:get(dn, ClientInfo, <<>>)) }. from_message(Msg) -> diff --git a/apps/emqx_ft/src/emqx_ft.erl b/apps/emqx_ft/src/emqx_ft.erl index c886b86bd..7eef357b3 100644 --- a/apps/emqx_ft/src/emqx_ft.erl +++ b/apps/emqx_ft/src/emqx_ft.erl @@ -218,7 +218,7 @@ do_on_file_command(TopicReplyData, FileId, Msg, FileCommand) -> [<<"fin">>, FinalSizeBin | MaybeChecksum] when length(MaybeChecksum) =< 1 -> ChecksumBin = emqx_maybe:from_list(MaybeChecksum), validate( - [{size, FinalSizeBin}, {{maybe, checksum}, ChecksumBin}], + [{size, FinalSizeBin}, {{option, checksum}, ChecksumBin}], fun([FinalSize, FinalChecksum]) -> on_fin(TopicReplyData, Msg, Transfer, FinalSize, FinalChecksum) end @@ -464,9 +464,9 @@ do_validate([{integrity, Payload, {Algo, Checksum}} | Rest], Parsed) -> Mismatch -> {error, {checksum_mismatch, binary:encode_hex(Mismatch)}} end; -do_validate([{{maybe, _}, undefined} | Rest], Parsed) -> +do_validate([{{option, _}, undefined} | Rest], Parsed) -> do_validate(Rest, [undefined | Parsed]); -do_validate([{{maybe, T}, Value} | Rest], Parsed) -> +do_validate([{{option, T}, Value} | Rest], Parsed) -> do_validate([{T, Value} | Rest], Parsed). parse_checksum(Checksum) when is_binary(Checksum) andalso byte_size(Checksum) =:= 64 -> diff --git a/apps/emqx_ft/src/emqx_ft_storage.erl b/apps/emqx_ft/src/emqx_ft_storage.erl index 506cf9789..b8d4952ee 100644 --- a/apps/emqx_ft/src/emqx_ft_storage.erl +++ b/apps/emqx_ft/src/emqx_ft_storage.erl @@ -100,7 +100,7 @@ -callback start(storage()) -> any(). -callback stop(storage()) -> any(). --callback update_config(_OldConfig :: maybe(storage()), _NewConfig :: maybe(storage())) -> +-callback update_config(_OldConfig :: option(storage()), _NewConfig :: option(storage())) -> any(). %%-------------------------------------------------------------------- diff --git a/apps/emqx_ft/src/emqx_ft_storage_fs_gc.erl b/apps/emqx_ft/src/emqx_ft_storage_fs_gc.erl index 4e9a6d56c..9be7779f8 100644 --- a/apps/emqx_ft/src/emqx_ft_storage_fs_gc.erl +++ b/apps/emqx_ft/src/emqx_ft_storage_fs_gc.erl @@ -41,8 +41,8 @@ -export([handle_info/2]). -record(st, { - next_gc_timer :: maybe(reference()), - last_gc :: maybe(gcstats()) + next_gc_timer :: option(reference()), + last_gc :: option(gcstats()) }). -type gcstats() :: #gcstats{}. diff --git a/apps/emqx_gateway/src/bhvrs/emqx_gateway_conn.erl b/apps/emqx_gateway/src/bhvrs/emqx_gateway_conn.erl index d61d086b4..5e85444a1 100644 --- a/apps/emqx_gateway/src/bhvrs/emqx_gateway_conn.erl +++ b/apps/emqx_gateway/src/bhvrs/emqx_gateway_conn.erl @@ -67,9 +67,9 @@ %% The {active, N} option active_n :: pos_integer(), %% Limiter - limiter :: maybe(emqx_htb_limiter:limiter()), + limiter :: option(emqx_htb_limiter:limiter()), %% Limit Timer - limit_timer :: maybe(reference()), + limit_timer :: option(reference()), %% Parse State parse_state :: emqx_gateway_frame:parse_state(), %% Serialize options @@ -77,15 +77,15 @@ %% Channel State channel :: emqx_gateway_channel:channel(), %% GC State - gc_state :: maybe(emqx_gc:gc_state()), + gc_state :: option(emqx_gc:gc_state()), %% Stats Timer - stats_timer :: disabled | maybe(reference()), + stats_timer :: disabled | option(reference()), %% Idle Timeout idle_timeout :: integer(), %% Idle Timer - idle_timer :: maybe(reference()), + idle_timer :: option(reference()), %% OOM Policy - oom_policy :: maybe(emqx_types:oom_policy()), + oom_policy :: option(emqx_types:oom_policy()), %% Frame Module frame_mod :: atom(), %% Channel Module diff --git a/apps/emqx_gateway_exproto/src/emqx_exproto_channel.erl b/apps/emqx_gateway_exproto/src/emqx_exproto_channel.erl index 1b3d057a8..718f97982 100644 --- a/apps/emqx_gateway_exproto/src/emqx_exproto_channel.erl +++ b/apps/emqx_gateway_exproto/src/emqx_exproto_channel.erl @@ -50,15 +50,15 @@ %% Conn info conninfo :: emqx_types:conninfo(), %% Client info from `register` function - clientinfo :: maybe(map()), + clientinfo :: option(map()), %% Connection state conn_state :: conn_state(), %% Subscription subscriptions = #{}, %% Keepalive - keepalive :: maybe(emqx_keepalive:keepalive()), + keepalive :: option(emqx_keepalive:keepalive()), %% Timers - timers :: #{atom() => disabled | maybe(reference())}, + timers :: #{atom() => disabled | option(reference())}, %% Closed reason closed_reason = undefined }). diff --git a/apps/emqx_gateway_gbt32960/src/emqx_gateway_gbt32960.app.src b/apps/emqx_gateway_gbt32960/src/emqx_gateway_gbt32960.app.src index 0ed2dca39..155e4dc25 100644 --- a/apps/emqx_gateway_gbt32960/src/emqx_gateway_gbt32960.app.src +++ b/apps/emqx_gateway_gbt32960/src/emqx_gateway_gbt32960.app.src @@ -1,7 +1,7 @@ %% -*- mode: erlang -*- {application, emqx_gateway_gbt32960, [ {description, "GBT32960 Gateway"}, - {vsn, "0.1.0"}, + {vsn, "0.1.1"}, {registered, []}, {applications, [kernel, stdlib, emqx, emqx_gateway]}, {env, []}, diff --git a/apps/emqx_gateway_gbt32960/src/emqx_gbt32960_channel.erl b/apps/emqx_gateway_gbt32960/src/emqx_gbt32960_channel.erl index 3f71f5a3a..155a2e2f6 100644 --- a/apps/emqx_gateway_gbt32960/src/emqx_gbt32960_channel.erl +++ b/apps/emqx_gateway_gbt32960/src/emqx_gbt32960_channel.erl @@ -42,7 +42,7 @@ %% Session session :: undefined | map(), %% Keepalive - keepalive :: maybe(emqx_keepalive:keepalive()), + keepalive :: option(emqx_keepalive:keepalive()), %% Conn State conn_state :: conn_state(), %% Timers diff --git a/apps/emqx_gateway_jt808/src/emqx_gateway_jt808.app.src b/apps/emqx_gateway_jt808/src/emqx_gateway_jt808.app.src index 3d64366ff..0409f1ed2 100644 --- a/apps/emqx_gateway_jt808/src/emqx_gateway_jt808.app.src +++ b/apps/emqx_gateway_jt808/src/emqx_gateway_jt808.app.src @@ -1,7 +1,7 @@ %% -*- mode: erlang -*- {application, emqx_gateway_jt808, [ {description, "JT/T 808 Gateway"}, - {vsn, "0.0.1"}, + {vsn, "0.0.2"}, {registered, []}, {applications, [kernel, stdlib, emqx, emqx_gateway]}, {env, []}, diff --git a/apps/emqx_gateway_jt808/src/emqx_jt808_channel.erl b/apps/emqx_gateway_jt808/src/emqx_jt808_channel.erl index 12776a261..74882c645 100644 --- a/apps/emqx_gateway_jt808/src/emqx_jt808_channel.erl +++ b/apps/emqx_gateway_jt808/src/emqx_jt808_channel.erl @@ -48,7 +48,7 @@ %% AuthCode authcode :: undefined | anonymous | binary(), %% Keepalive - keepalive :: maybe(emqx_keepalive:keepalive()), + keepalive :: option(emqx_keepalive:keepalive()), %% Msg SN msg_sn, %% Down Topic diff --git a/apps/emqx_gateway_mqttsn/src/emqx_gateway_mqttsn.app.src b/apps/emqx_gateway_mqttsn/src/emqx_gateway_mqttsn.app.src index 246566df1..2d4d144f4 100644 --- a/apps/emqx_gateway_mqttsn/src/emqx_gateway_mqttsn.app.src +++ b/apps/emqx_gateway_mqttsn/src/emqx_gateway_mqttsn.app.src @@ -1,7 +1,7 @@ %% -*- mode: erlang -*- {application, emqx_gateway_mqttsn, [ {description, "MQTT-SN Gateway"}, - {vsn, "0.1.7"}, + {vsn, "0.1.8"}, {registered, []}, {applications, [kernel, stdlib, emqx, emqx_gateway]}, {env, []}, diff --git a/apps/emqx_gateway_mqttsn/src/emqx_mqttsn_channel.erl b/apps/emqx_gateway_mqttsn/src/emqx_mqttsn_channel.erl index d37979ced..1c0cbfb6f 100644 --- a/apps/emqx_gateway_mqttsn/src/emqx_mqttsn_channel.erl +++ b/apps/emqx_gateway_mqttsn/src/emqx_mqttsn_channel.erl @@ -71,7 +71,7 @@ %% Connection State conn_state :: conn_state(), %% Inflight register message queue - register_inflight :: maybe(term()), + register_inflight :: option(term()), %% Topics list for awaiting to register to client register_awaiting_queue :: list(), %% Duration for asleep diff --git a/apps/emqx_gateway_ocpp/src/emqx_ocpp_channel.erl b/apps/emqx_gateway_ocpp/src/emqx_ocpp_channel.erl index 3f5fe8f70..0ccc4c5e9 100644 --- a/apps/emqx_gateway_ocpp/src/emqx_ocpp_channel.erl +++ b/apps/emqx_gateway_ocpp/src/emqx_ocpp_channel.erl @@ -63,15 +63,15 @@ %% ClientInfo clientinfo :: emqx_types:clientinfo(), %% Session - session :: maybe(map()), + session :: option(map()), %% ClientInfo override specs clientinfo_override :: map(), %% Keepalive - keepalive :: maybe(emqx_ocpp_keepalive:keepalive()), + keepalive :: option(emqx_ocpp_keepalive:keepalive()), %% Stores all unsent messages. mqueue :: queue:queue(), %% Timers - timers :: #{atom() => disabled | maybe(reference())}, + timers :: #{atom() => disabled | option(reference())}, %% Conn State conn_state :: conn_state() }). diff --git a/apps/emqx_gateway_ocpp/src/emqx_ocpp_connection.erl b/apps/emqx_gateway_ocpp/src/emqx_ocpp_connection.erl index 3147324f7..64afa63fe 100644 --- a/apps/emqx_gateway_ocpp/src/emqx_ocpp_connection.erl +++ b/apps/emqx_gateway_ocpp/src/emqx_ocpp_connection.erl @@ -72,9 +72,9 @@ %% Piggyback piggyback :: single | multiple, %% Limiter - limiter :: maybe(emqx_htb_limiter:limiter()), + limiter :: option(emqx_htb_limiter:limiter()), %% Limit Timer - limit_timer :: maybe(reference()), + limit_timer :: option(reference()), %% Parse State parse_state :: emqx_ocpp_frame:parse_state(), %% Serialize options @@ -82,17 +82,17 @@ %% Channel channel :: emqx_ocpp_channel:channel(), %% GC State - gc_state :: maybe(emqx_gc:gc_state()), + gc_state :: option(emqx_gc:gc_state()), %% Postponed Packets|Cmds|Events postponed :: list(emqx_types:packet() | ws_cmd() | tuple()), %% Stats Timer - stats_timer :: disabled | maybe(reference()), + stats_timer :: disabled | option(reference()), %% Idle Timeout idle_timeout :: timeout(), %%% Idle Timer - idle_timer :: maybe(reference()), + idle_timer :: option(reference()), %% OOM Policy - oom_policy :: maybe(emqx_types:oom_policy()), + oom_policy :: option(emqx_types:oom_policy()), %% Frame Module frame_mod :: atom(), %% Channel Module diff --git a/apps/emqx_modules/src/emqx_delayed.erl b/apps/emqx_modules/src/emqx_delayed.erl index d2ed12332..c95cca37b 100644 --- a/apps/emqx_modules/src/emqx_delayed.erl +++ b/apps/emqx_modules/src/emqx_delayed.erl @@ -92,10 +92,10 @@ -export_type([with_id_return/0, with_id_return/1]). -type state() :: #{ - publish_timer := maybe(reference()), + publish_timer := option(reference()), publish_at := non_neg_integer(), - stats_timer := maybe(reference()), - stats_fun := maybe(fun((pos_integer()) -> ok)) + stats_timer := option(reference()), + stats_fun := option(fun((pos_integer()) -> ok)) }. %% sync ms with record change diff --git a/apps/emqx_resource/src/emqx_resource_manager.erl b/apps/emqx_resource/src/emqx_resource_manager.erl index ef81f57f7..e9f179b0b 100644 --- a/apps/emqx_resource/src/emqx_resource_manager.erl +++ b/apps/emqx_resource/src/emqx_resource_manager.erl @@ -825,7 +825,7 @@ handle_remove_channel_exists(From, ChannelId, Data) -> handle_not_connected_and_not_connecting_remove_channel(From, ChannelId, Data) -> %% When state is not connected and not connecting the channel will be removed %% from the channels map but nothing else will happen since the channel - %% is not addded/installed in the resource state. + %% is not added/installed in the resource state. Channels = Data#data.added_channels, NewChannels = maps:remove(ChannelId, Channels), NewData = Data#data{added_channels = NewChannels}, @@ -915,7 +915,7 @@ with_health_check(#data{error = PrevError} = Data, Func) -> -spec channels_health_check(resource_status(), data()) -> data(). channels_health_check(?status_connected = _ConnectorStatus, Data0) -> Channels = maps:to_list(Data0#data.added_channels), - %% All channels with a stutus different from connected or connecting are + %% All channels with a status different from connected or connecting are %% not added ChannelsNotAdded = [ ChannelId diff --git a/apps/emqx_rule_engine/include/rule_engine.hrl b/apps/emqx_rule_engine/include/rule_engine.hrl index 7df5d9941..c2346dbcc 100644 --- a/apps/emqx_rule_engine/include/rule_engine.hrl +++ b/apps/emqx_rule_engine/include/rule_engine.hrl @@ -18,7 +18,7 @@ -define(KV_TAB, '@rule_engine_db'). --type maybe(T) :: T | undefined. +-type option(T) :: T | undefined. -type rule_id() :: binary(). -type rule_name() :: binary(). diff --git a/apps/emqx_s3/src/emqx_s3.app.src b/apps/emqx_s3/src/emqx_s3.app.src index ef59859ce..965cb099d 100644 --- a/apps/emqx_s3/src/emqx_s3.app.src +++ b/apps/emqx_s3/src/emqx_s3.app.src @@ -1,6 +1,6 @@ {application, emqx_s3, [ {description, "EMQX S3"}, - {vsn, "5.0.13"}, + {vsn, "5.0.14"}, {modules, []}, {registered, [emqx_s3_sup]}, {applications, [ diff --git a/apps/emqx_s3/src/emqx_s3.erl b/apps/emqx_s3/src/emqx_s3.erl index e5454bfc9..87996e2fc 100644 --- a/apps/emqx_s3/src/emqx_s3.erl +++ b/apps/emqx_s3/src/emqx_s3.erl @@ -103,9 +103,9 @@ with_client(ProfileId, Fun) when is_function(Fun, 1) andalso ?IS_PROFILE_ID(Prof %% -spec pre_config_update( - profile_id(), maybe(emqx_config:raw_config()), maybe(emqx_config:raw_config()) + profile_id(), option(emqx_config:raw_config()), option(emqx_config:raw_config()) ) -> - {ok, maybe(profile_config())} | {error, term()}. + {ok, option(profile_config())} | {error, term()}. pre_config_update(ProfileId, NewConfig = #{<<"transport_options">> := TransportOpts}, _OldConfig) -> case emqx_connector_ssl:convert_certs(mk_certs_dir(ProfileId), TransportOpts) of {ok, TransportOptsConv} -> @@ -118,8 +118,8 @@ pre_config_update(_ProfileId, NewConfig, _OldConfig) -> -spec post_config_update( profile_id(), - maybe(emqx_config:config()), - maybe(emqx_config:config()) + option(emqx_config:config()), + option(emqx_config:config()) ) -> ok. post_config_update(_ProfileId, _NewConfig, _OldConfig) -> diff --git a/apps/emqx_utils/src/emqx_utils.erl b/apps/emqx_utils/src/emqx_utils.erl index 0eeef2e5e..3867eee5e 100644 --- a/apps/emqx_utils/src/emqx_utils.erl +++ b/apps/emqx_utils/src/emqx_utils.erl @@ -89,7 +89,7 @@ -type readable_error_msg(_Error) :: binary(). --type maybe(T) :: undefined | T. +-type option(T) :: undefined | T. -dialyzer({nowarn_function, [nolink_apply/2]}). @@ -128,8 +128,8 @@ merge_opts(Defaults, Options) -> ). %% @doc Apply a function to a maybe argument. --spec maybe_apply(fun((maybe(A)) -> maybe(A)), maybe(A)) -> - maybe(A) +-spec maybe_apply(fun((option(A)) -> option(A)), option(A)) -> + option(A) when A :: any(). maybe_apply(_Fun, undefined) -> @@ -184,17 +184,17 @@ apply_fun(Fun, Input, State) -> {arity, 2} -> Fun(Input, State) end. --spec start_timer(integer() | atom(), term()) -> maybe(reference()). +-spec start_timer(integer() | atom(), term()) -> option(reference()). start_timer(Interval, Msg) -> start_timer(Interval, self(), Msg). --spec start_timer(integer() | atom(), pid() | atom(), term()) -> maybe(reference()). +-spec start_timer(integer() | atom(), pid() | atom(), term()) -> option(reference()). start_timer(Interval, Dest, Msg) when is_number(Interval) -> erlang:start_timer(erlang:ceil(Interval), Dest, Msg); start_timer(_Atom, _Dest, _Msg) -> undefined. --spec cancel_timer(maybe(reference())) -> ok. +-spec cancel_timer(option(reference())) -> ok. cancel_timer(Timer) when is_reference(Timer) -> case erlang:cancel_timer(Timer) of false -> diff --git a/apps/emqx_utils/test/emqx_utils_fs_SUITE.erl b/apps/emqx_utils/test/emqx_utils_fs_SUITE.erl index d74a258d4..0bbf58604 100644 --- a/apps/emqx_utils/test/emqx_utils_fs_SUITE.erl +++ b/apps/emqx_utils/test/emqx_utils_fs_SUITE.erl @@ -66,8 +66,8 @@ t_traverse_dir(Config) -> {"nonempty/d2/deep/down/here", #file_info{type = regular, mode = ORW}}, {"nonempty/d2/deep/mutrec", #file_info{type = symlink, mode = ARWX}} ] when - ((ORW band 8#00600 =:= 8#00600) and - (ARWX band 8#00777 =:= 8#00777)), + (((ORW band 8#00600 =:= 8#00600) and + (ARWX band 8#00777 =:= 8#00777))), [{string:prefix(Filename, Dir), Info} || {Filename, Info} <- Traversal] ). diff --git a/rebar.config b/rebar.config index 4f4b68016..5ebe9da15 100644 --- a/rebar.config +++ b/rebar.config @@ -132,7 +132,7 @@ {eunit_opts, [verbose]}. {project_plugins, [ - erlfmt, + {erlfmt, "1.3.0"}, {rebar3_hex, "7.0.2"}, {rebar3_sbom, {git, "https://github.com/emqx/rebar3_sbom.git", {tag, "v0.6.1-1"}}} ]}. diff --git a/scripts/erlfmt b/scripts/erlfmt index 0c42bdf92..62c5b0697 100755 Binary files a/scripts/erlfmt and b/scripts/erlfmt differ