diff --git a/apps/emqx/src/bpapi/emqx_bpapi_trans.erl b/apps/emqx/src/bpapi/emqx_bpapi_trans.erl index 48a32a904..b1e9fb5f2 100644 --- a/apps/emqx/src/bpapi/emqx_bpapi_trans.erl +++ b/apps/emqx/src/bpapi/emqx_bpapi_trans.erl @@ -153,6 +153,8 @@ extract_mfa(?BACKEND(emqx_rpc, CallOrCast), [_Node, M, F, A]) -> {call_or_cast(CallOrCast), M, F, A}; extract_mfa(?BACKEND(emqx_rpc, CallOrCast), [_Tag, _Node, M, F, A]) -> {call_or_cast(CallOrCast), M, F, A}; +extract_mfa(?BACKEND(emqx_rpc, call), [_Tag, _Node, M, F, A, _Timeout]) -> + {call_or_cast(call), M, F, A}; %% (e)rpc: extract_mfa(?BACKEND(rpc, multicall), [M, F, A]) -> {call_or_cast(multicall), M, F, A}; diff --git a/apps/emqx/src/emqx_rpc.erl b/apps/emqx/src/emqx_rpc.erl index 590730e66..939b5395d 100644 --- a/apps/emqx/src/emqx_rpc.erl +++ b/apps/emqx/src/emqx_rpc.erl @@ -22,6 +22,7 @@ -export([ call/4, call/5, + call/6, cast/4, cast/5, multicall/4, @@ -78,6 +79,10 @@ call(Node, Mod, Fun, Args) -> call(Key, Node, Mod, Fun, Args) -> filter_result(gen_rpc:call(rpc_node({Key, Node}), Mod, Fun, Args)). +-spec call(term(), node(), module(), atom(), list(), timeout()) -> call_result(). +call(Key, Node, Mod, Fun, Args, Timeout) -> + filter_result(gen_rpc:call(rpc_node({Key, Node}), Mod, Fun, Args, Timeout)). + -spec multicall([node()], module(), atom(), list()) -> multicall_result(). multicall(Nodes, Mod, Fun, Args) -> gen_rpc:multicall(rpc_nodes(Nodes), Mod, Fun, Args).