From 177ae6a71b751c55b93dac06b4f5d1f9dec31cb4 Mon Sep 17 00:00:00 2001 From: Ali Farhadi Date: Sat, 3 Sep 2016 11:56:28 +0430 Subject: [PATCH 1/2] Fix unmatching args in mod_rewrite unsubscribe hook --- src/emqttd_mod_rewrite.erl | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/emqttd_mod_rewrite.erl b/src/emqttd_mod_rewrite.erl index edd6ac41a..653fb49c7 100644 --- a/src/emqttd_mod_rewrite.erl +++ b/src/emqttd_mod_rewrite.erl @@ -44,9 +44,9 @@ rewrite_subscribe({_ClientId, _Username}, {Topic, Opts}, Sections) -> lager:info("Rewrite subscribe: ~p", [{Topic, Opts}]), {ok, {match_topic(Topic, Sections), Opts}}. -rewrite_unsubscribe({_ClientId, _Username}, {Topic, Opts}, Sections) -> - lager:info("Rewrite unsubscribe: ~p", [{Topic, Opts}]), - {ok, {match_topic(Topic, Sections), Opts}}. +rewrite_unsubscribe({_ClientId, _Username}, Topic, Sections) -> + lager:info("Rewrite unsubscribe: ~p", [Topic]), + {ok, match_topic(Topic, Sections)}. rewrite_publish(Message=#mqtt_message{topic = Topic}, Sections) -> %%TODO: this will not work if the client is always online. From 7a295f614f0a8bc6ac4dae45d1cd27515c371a5d Mon Sep 17 00:00:00 2001 From: Ali Farhadi Date: Sat, 3 Sep 2016 11:56:42 +0430 Subject: [PATCH 2/2] Send ClientId, Username as a Tuple in unsubscribe hook --- src/emqttd_session.erl | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/emqttd_session.erl b/src/emqttd_session.erl index bf475e4f6..be2ac3611 100644 --- a/src/emqttd_session.erl +++ b/src/emqttd_session.erl @@ -336,7 +336,7 @@ handle_cast({unsubscribe, Topics}, Session = #session{client_id = ClientId, Subscriptions1 = lists:foldl(fun(RawTopic, SubDict) -> {Topic0, _Opts} = emqttd_topic:strip(RawTopic), - case emqttd:run_hooks('client.unsubscribe', [ClientId, Username], Topic0) of + case emqttd:run_hooks('client.unsubscribe', [{ClientId, Username}], Topic0) of {ok, Topic1} -> case dict:find(Topic1, SubDict) of {ok, _Qos} ->