From 5eda6c9dd2b324a255710b2d821d776487a6b648 Mon Sep 17 00:00:00 2001 From: Feng Lee Date: Fri, 9 Sep 2016 17:37:25 +0800 Subject: [PATCH] rewrite_subscribe/4, rewrite_unsubscribe/4 --- src/emqttd_mod_rewrite.erl | 23 +++++++++++------------ 1 file changed, 11 insertions(+), 12 deletions(-) diff --git a/src/emqttd_mod_rewrite.erl b/src/emqttd_mod_rewrite.erl index 653fb49c7..df44ab96f 100644 --- a/src/emqttd_mod_rewrite.erl +++ b/src/emqttd_mod_rewrite.erl @@ -14,7 +14,6 @@ %% limitations under the License. %%-------------------------------------------------------------------- -%% @doc emqttd rewrite module -module(emqttd_mod_rewrite). -behaviour(emqttd_gen_mod). @@ -23,7 +22,7 @@ -export([load/1, reload/1, unload/1]). --export([rewrite_subscribe/3, rewrite_unsubscribe/3, rewrite_publish/2]). +-export([rewrite_subscribe/4, rewrite_unsubscribe/4, rewrite_publish/2]). %%-------------------------------------------------------------------- %% API @@ -35,18 +34,18 @@ load(Opts) -> ok; File -> {ok, Terms} = file:consult(File), Sections = compile(Terms), - emqttd:hook('client.subscribe', fun ?MODULE:rewrite_subscribe/3, [Sections]), - emqttd:hook('client.unsubscribe', fun ?MODULE:rewrite_unsubscribe/3, [Sections]), + emqttd:hook('client.subscribe', fun ?MODULE:rewrite_subscribe/4, [Sections]), + emqttd:hook('client.unsubscribe', fun ?MODULE:rewrite_unsubscribe/4, [Sections]), emqttd:hook('message.publish', fun ?MODULE:rewrite_publish/2, [Sections]) end. -rewrite_subscribe({_ClientId, _Username}, {Topic, Opts}, Sections) -> - lager:info("Rewrite subscribe: ~p", [{Topic, Opts}]), - {ok, {match_topic(Topic, Sections), Opts}}. +rewrite_subscribe(_ClientId, _Username, TopicTable, Sections) -> + lager:info("Rewrite subscribe: ~p", [TopicTable]), + {ok, [{match_topic(Topic, Sections), Opts} || {Topic, Opts} <- TopicTable]}. -rewrite_unsubscribe({_ClientId, _Username}, Topic, Sections) -> - lager:info("Rewrite unsubscribe: ~p", [Topic]), - {ok, match_topic(Topic, Sections)}. +rewrite_unsubscribe(_ClientId, _Username, TopicTable, Sections) -> + lager:info("Rewrite unsubscribe: ~p", [TopicTable]), + {ok, [{match_topic(Topic, Sections), Opts} || {Topic, Opts} <- TopicTable]}. rewrite_publish(Message=#mqtt_message{topic = Topic}, Sections) -> %%TODO: this will not work if the client is always online. @@ -71,8 +70,8 @@ reload(File) -> end. unload(_) -> - emqttd:unhook('client.subscribe', fun ?MODULE:rewrite_subscribe/3), - emqttd:unhook('client.unsubscribe',fun ?MODULE:rewrite_unsubscribe/3), + emqttd:unhook('client.subscribe', fun ?MODULE:rewrite_subscribe/4), + emqttd:unhook('client.unsubscribe',fun ?MODULE:rewrite_unsubscribe/4), emqttd:unhook('message.publish', fun ?MODULE:rewrite_publish/2). %%--------------------------------------------------------------------