From 8af7131a499dcfb43cc1d092a6ef5b4b1b63b0a5 Mon Sep 17 00:00:00 2001 From: EMQ-YangM Date: Fri, 11 Mar 2022 14:04:18 +0800 Subject: [PATCH] fix(emqx_autn_api): wo do not need fixpoint --- apps/emqx/src/emqx_map_lib.erl | 1 + apps/emqx_authn/src/emqx_authn_api.erl | 11 ++++------- apps/emqx_authn/src/proto/emqx_authn_proto_v1.erl | 1 + apps/emqx_authn/test/emqx_authn_api_SUITE.erl | 13 +++++-------- 4 files changed, 11 insertions(+), 15 deletions(-) diff --git a/apps/emqx/src/emqx_map_lib.erl b/apps/emqx/src/emqx_map_lib.erl index b46e749eb..11044ef74 100644 --- a/apps/emqx/src/emqx_map_lib.erl +++ b/apps/emqx/src/emqx_map_lib.erl @@ -224,3 +224,4 @@ error_type_two_maps(M1, M2) when is_map(M1) -> {badmap, M2}; error_type_two_maps(M1, _M2) -> {badmap, M1}. + diff --git a/apps/emqx_authn/src/emqx_authn_api.erl b/apps/emqx_authn/src/emqx_authn_api.erl index 9d2f7f55e..37d41e344 100644 --- a/apps/emqx_authn/src/emqx_authn_api.erl +++ b/apps/emqx_authn/src/emqx_authn_api.erl @@ -820,13 +820,10 @@ aggregate_status(AllStatus) -> aggregate_metrics([]) -> error_some_strange_happen; aggregate_metrics([HeadMetrics | AllMetrics]) -> CombinerFun = - %% use fixpoint reference self - fun (FixVal) -> - fun (_, Val1, Val2) -> - case erlang:is_map(Val1) of - true -> emqx_map_lib:merge_with(FixVal(FixVal), Val1, Val2); - false -> Val1 + Val2 - end + fun ComFun(Val1, Val2) -> + case erlang:is_map(Val1) of + true -> emqx_map_lib:merge_with(ComFun, Val1, Val2); + false -> Val1 + Val2 end end, Fun = fun (ElemMap, AccMap) -> diff --git a/apps/emqx_authn/src/proto/emqx_authn_proto_v1.erl b/apps/emqx_authn/src/proto/emqx_authn_proto_v1.erl index a77c5091b..df5d19e94 100644 --- a/apps/emqx_authn/src/proto/emqx_authn_proto_v1.erl +++ b/apps/emqx_authn/src/proto/emqx_authn_proto_v1.erl @@ -35,3 +35,4 @@ introduced_in() -> emqx_rpc:erpc_multicall(). lookup_from_all_nodes(Nodes, ChainName, AuthenticatorID) -> erpc:multicall(Nodes, emqx_authn_api, lookup_from_local_node, [ChainName, AuthenticatorID], ?TIMEOUT). + diff --git a/apps/emqx_authn/test/emqx_authn_api_SUITE.erl b/apps/emqx_authn/test/emqx_authn_api_SUITE.erl index 210ad552a..93dd5d084 100644 --- a/apps/emqx_authn/test/emqx_authn_api_SUITE.erl +++ b/apps/emqx_authn/test/emqx_authn_api_SUITE.erl @@ -169,16 +169,13 @@ test_authenticator(PathPrefix) -> uri(PathPrefix ++ [?CONF_NS, "password-based:http"])), {ok, RList} = emqx_json:safe_decode(Res), Snd = fun ({_, Val}) -> Val end, - LookupVal = - fun(FixVal) -> - fun(List, RestJson) -> - case List of - [Name] -> Snd(lists:keyfind(Name, 1, RestJson)); - [Name | NS] -> (FixVal(FixVal))(NS, Snd(lists:keyfind(Name, 1, RestJson))) - end + LookupVal = fun LookupV(List, RestJson) -> + case List of + [Name] -> Snd(lists:keyfind(Name, 1, RestJson)); + [Name | NS] -> LookupV(NS, Snd(lists:keyfind(Name, 1, RestJson))) end end, - LookFun = fun (List) -> (LookupVal(LookupVal))(List, RList) end, + LookFun = fun (List) -> LookupVal(List, RList) end, MetricsList = [{<<"failed">>, 0}, {<<"matched">>, 0}, {<<"rate">>, 0.0},