From f01deec9507bec43310359464cf3994c97b2db40 Mon Sep 17 00:00:00 2001 From: Feng Lee Date: Sat, 18 Nov 2017 13:23:51 +0800 Subject: [PATCH] Update the 'api/v2/subscriptions' API --- src/emqttd_mgmt.erl | 3 +-- src/emqttd_rest_api.erl | 12 ++++++++---- 2 files changed, 9 insertions(+), 6 deletions(-) diff --git a/src/emqttd_mgmt.erl b/src/emqttd_mgmt.erl index 2c671f3bd..6d9ce7ecd 100644 --- a/src/emqttd_mgmt.erl +++ b/src/emqttd_mgmt.erl @@ -458,8 +458,7 @@ subscription_list(Key, PageNo, PageSize) -> Keys = ets:lookup(mqtt_subscription, Key), Fun = case length(Keys) == 0 of true -> - MP = {{Key, '_'}, '_'}, - fun() -> ets:match_object(mqtt_subproperty, MP) end; + fun() -> ets:match_object(mqtt_subproperty, {{Key, '_'}, '_'}) end; false -> fun() -> lists:map(fun({S, T}) ->[R] = ets:lookup(mqtt_subproperty, {T, S}), R end, Keys) diff --git a/src/emqttd_rest_api.erl b/src/emqttd_rest_api.erl index 85981ea45..0eb6adc11 100644 --- a/src/emqttd_rest_api.erl +++ b/src/emqttd_rest_api.erl @@ -241,10 +241,14 @@ subscription_list('GET', Params, Node, Key) -> Data = emqttd_mgmt:subscription_list(l2a(Node), l2b(Key), PageNo, PageSize), {ok, [{objects, [subscription_row(Row) || Row <- Data]}]}. -subscription_row({{Topic, ClientId}, Option}) when is_pid(ClientId) -> - subscription_row({{Topic, l2b(pid_to_list(ClientId))}, Option}); -subscription_row({{Topic, ClientId}, Option}) -> - Qos = get_value(qos, Option), +subscription_row({{Topic, SubPid}, Options}) when is_pid(SubPid) -> + subscription_row({{Topic, {undefined, SubPid}}, Options}); +subscription_row({{Topic, {SubId, SubPid}}, Options}) -> + Qos = proplists:get_value(qos, Options), + ClientId = case SubId of + undefined -> list_to_binary(pid_to_list(SubPid)); + SubId -> SubId + end, [{client_id, ClientId}, {topic, Topic}, {qos, Qos}]. %%--------------------------------------------------------------------------