From 8b4be236e5946ad63ae25bfdb73174d56d586698 Mon Sep 17 00:00:00 2001 From: Gilbert Wong Date: Sat, 25 Aug 2018 17:10:51 +0800 Subject: [PATCH 1/2] fix list_to_subid error --- src/emqx.erl | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/src/emqx.erl b/src/emqx.erl index 475428fd4..d6437b3f5 100644 --- a/src/emqx.erl +++ b/src/emqx.erl @@ -124,10 +124,8 @@ list_to_subid(SubId) when is_list(SubId) -> iolist_to_binary(SubId); list_to_subid(SubPid) when is_pid(SubPid) -> SubPid; -list_to_subid({SubId, SubPid}) when is_binary(SubId), is_pid(SubPid) -> - {SubId, SubPid}; -list_to_subid({SubId, SubPid}) when is_list(SubId), is_pid(SubPid) -> - {iolist_to_binary(SubId), SubPid}. +list_to_subid({SubPid, SubId}) when is_pid(SubPid), is_binary(SubId) -> + {SubPid, SubId}. %%-------------------------------------------------------------------- %% Hooks API From ee11627828e713fb62776b353b14fde643037c62 Mon Sep 17 00:00:00 2001 From: Gilbert Wong Date: Sat, 25 Aug 2018 18:36:17 +0800 Subject: [PATCH 2/2] delete duplicated subscribe function --- src/emqx.erl | 18 +++++++++++------- src/emqx_broker.erl | 2 -- 2 files changed, 11 insertions(+), 9 deletions(-) diff --git a/src/emqx.erl b/src/emqx.erl index d6437b3f5..c39dde931 100644 --- a/src/emqx.erl +++ b/src/emqx.erl @@ -71,12 +71,18 @@ subscribe(Topic) -> emqx_broker:subscribe(iolist_to_binary(Topic)). -spec(subscribe(topic() | string(), subscriber() | string()) -> ok | {error, term()}). -subscribe(Topic, Subscriber) -> - emqx_broker:subscribe(iolist_to_binary(Topic), list_to_subid(Subscriber)). +subscribe(Topic, Sub) when is_list(Sub)-> + emqx_broker:subscribe(iolist_to_binary(Topic), list_to_subid(Sub)); +subscribe(Topic, Subscriber) when is_tuple(Subscriber) -> + {SubPid, SubId} = Subscriber, + emqx_broker:subscribe(iolist_to_binary(Topic), SubPid, SubId). -spec(subscribe(topic() | string(), subscriber() | string(), subopts()) -> ok | {error, term()}). -subscribe(Topic, Subscriber, Options) -> - emqx_broker:subscribe(iolist_to_binary(Topic), list_to_subid(Subscriber), Options). +subscribe(Topic, Sub, Options) when is_list(Sub)-> + emqx_broker:subscribe(iolist_to_binary(Topic), list_to_subid(Sub), Options); +subscribe(Topic, Subscriber, Options) when is_tuple(Subscriber)-> + {SubPid, SubId} = Subscriber, + emqx_broker:subscribe(iolist_to_binary(Topic), SubPid, SubId, Options). %% @doc Publish Message -spec(publish(message()) -> {ok, delivery()} | {error, term()}). @@ -123,9 +129,7 @@ list_to_subid(SubId) when is_binary(SubId) -> list_to_subid(SubId) when is_list(SubId) -> iolist_to_binary(SubId); list_to_subid(SubPid) when is_pid(SubPid) -> - SubPid; -list_to_subid({SubPid, SubId}) when is_pid(SubPid), is_binary(SubId) -> - {SubPid, SubId}. + SubPid. %%-------------------------------------------------------------------- %% Hooks API diff --git a/src/emqx_broker.erl b/src/emqx_broker.erl index 7015590d8..24cd27ab8 100644 --- a/src/emqx_broker.erl +++ b/src/emqx_broker.erl @@ -68,8 +68,6 @@ subscribe(Topic, SubId) when is_binary(Topic), ?is_subid(SubId) -> subscribe(Topic, self(), SubId). -spec(subscribe(topic(), pid() | subid(), subid() | subopts()) -> ok). -subscribe(Topic, SubPid, SubId) when is_binary(Topic), is_pid(SubPid), ?is_subid(SubId) -> - subscribe(Topic, SubPid, SubId, #{}); subscribe(Topic, SubPid, SubId) when is_binary(Topic), is_pid(SubPid), ?is_subid(SubId) -> subscribe(Topic, SubPid, SubId, #{}); subscribe(Topic, SubPid, SubOpts) when is_binary(Topic), is_pid(SubPid), is_map(SubOpts) ->