diff --git a/apps/emqx/src/bpapi/emqx_bpapi.erl b/apps/emqx/src/bpapi/emqx_bpapi.erl index 07f12a2db..ce6ad5cb1 100644 --- a/apps/emqx/src/bpapi/emqx_bpapi.erl +++ b/apps/emqx/src/bpapi/emqx_bpapi.erl @@ -69,9 +69,12 @@ start() -> announce(emqx). %% @doc Get maximum version of the backplane API supported by the node --spec supported_version(node(), api()) -> api_version(). +-spec supported_version(node(), api()) -> api_version() | undefined. supported_version(Node, API) -> - ets:lookup_element(?TAB, {Node, API}, #?TAB.version). + case ets:lookup(?TAB, {Node, API}) of + [#?TAB{version = V}] -> V; + [] -> undefined + end. %% @doc Get maximum version of the backplane API supported by the %% entire cluster diff --git a/apps/emqx/test/emqx_bpapi_SUITE.erl b/apps/emqx/test/emqx_bpapi_SUITE.erl index b48d8ff2e..c1af0046c 100644 --- a/apps/emqx/test/emqx_bpapi_SUITE.erl +++ b/apps/emqx/test/emqx_bpapi_SUITE.erl @@ -40,7 +40,7 @@ end_per_suite(_Config) -> t_max_supported_version(_Config) -> ?assertMatch(3, emqx_bpapi:supported_version('fake-node2@localhost', api2)), ?assertMatch(2, emqx_bpapi:supported_version(api2)), - ?assertError(_, emqx_bpapi:supported_version('fake-node2@localhost', nonexistent_api)), + ?assertMatch(undefined, emqx_bpapi:supported_version('fake-node2@localhost', nonexistent_api)), ?assertError(_, emqx_bpapi:supported_version(nonexistent_api)). t_announce(Config) ->