Improve the rewrite mod using the new hooks
This commit is contained in:
parent
cf9caf3c32
commit
32795321f5
|
@ -22,8 +22,8 @@
|
||||||
-include_lib("emqx_mqtt.hrl").
|
-include_lib("emqx_mqtt.hrl").
|
||||||
|
|
||||||
%% APIs
|
%% APIs
|
||||||
-export([ rewrite_subscribe/3
|
-export([ rewrite_subscribe/4
|
||||||
, rewrite_unsubscribe/3
|
, rewrite_unsubscribe/4
|
||||||
, rewrite_publish/2
|
, rewrite_publish/2
|
||||||
]).
|
]).
|
||||||
|
|
||||||
|
@ -38,23 +38,23 @@
|
||||||
|
|
||||||
load(RawRules) ->
|
load(RawRules) ->
|
||||||
Rules = compile(RawRules),
|
Rules = compile(RawRules),
|
||||||
emqx_hooks:add('client.subscribe', fun ?MODULE:rewrite_subscribe/3, [Rules]),
|
emqx_hooks:add('client.subscribe', {?MODULE, rewrite_subscribe, [Rules]}),
|
||||||
emqx_hooks:add('client.unsubscribe', fun ?MODULE:rewrite_unsubscribe/3, [Rules]),
|
emqx_hooks:add('client.unsubscribe', {?MODULE, rewrite_unsubscribe, [Rules]}),
|
||||||
emqx_hooks:add('message.publish', fun ?MODULE:rewrite_publish/2, [Rules]).
|
emqx_hooks:add('message.publish', {?MODULE, rewrite_publish, [Rules]}).
|
||||||
|
|
||||||
rewrite_subscribe(_Client, TopicTable, Rules) ->
|
rewrite_subscribe(_Client, _Properties, TopicFilters, Rules) ->
|
||||||
{ok, [{match_rule(Topic, Rules), Opts} || {Topic, Opts} <- TopicTable]}.
|
{ok, [{match_rule(Topic, Rules), Opts} || {Topic, Opts} <- TopicFilters]}.
|
||||||
|
|
||||||
rewrite_unsubscribe(_Client, TopicTable, Rules) ->
|
rewrite_unsubscribe(_Client, _Properties, TopicFilters, Rules) ->
|
||||||
{ok, [{match_rule(Topic, Rules), Opts} || {Topic, Opts} <- TopicTable]}.
|
{ok, [{match_rule(Topic, Rules), Opts} || {Topic, Opts} <- TopicFilters]}.
|
||||||
|
|
||||||
rewrite_publish(Message = #message{topic = Topic}, Rules) ->
|
rewrite_publish(Message = #message{topic = Topic}, Rules) ->
|
||||||
{ok, Message#message{topic = match_rule(Topic, Rules)}}.
|
{ok, Message#message{topic = match_rule(Topic, Rules)}}.
|
||||||
|
|
||||||
unload(_) ->
|
unload(_) ->
|
||||||
emqx_hooks:del('client.subscribe', fun ?MODULE:rewrite_subscribe/3),
|
emqx_hooks:del('client.subscribe', {?MODULE, rewrite_subscribe}),
|
||||||
emqx_hooks:del('client.unsubscribe', fun ?MODULE:rewrite_unsubscribe/3),
|
emqx_hooks:del('client.unsubscribe', {?MODULE, rewrite_unsubscribe}),
|
||||||
emqx_hooks:del('message.publish', fun ?MODULE:rewrite_publish/2).
|
emqx_hooks:del('message.publish', {?MODULE, rewrite_publish}).
|
||||||
|
|
||||||
%%--------------------------------------------------------------------
|
%%--------------------------------------------------------------------
|
||||||
%% Internal functions
|
%% Internal functions
|
||||||
|
|
Loading…
Reference in New Issue