From 2b2104851afcdaf03a5fea68256c6014a6618473 Mon Sep 17 00:00:00 2001 From: lafirest Date: Thu, 10 Mar 2022 16:31:44 +0800 Subject: [PATCH] fix(rewrite): fix config update maybe not work --- apps/emqx_modules/src/emqx_rewrite.erl | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/apps/emqx_modules/src/emqx_rewrite.erl b/apps/emqx_modules/src/emqx_rewrite.erl index 6345fea1c..5f8dd1ad0 100644 --- a/apps/emqx_modules/src/emqx_rewrite.erl +++ b/apps/emqx_modules/src/emqx_rewrite.erl @@ -52,9 +52,7 @@ enable() -> disable() -> emqx_conf:remove_handler([rewrite]), - emqx_hooks:del('client.subscribe', {?MODULE, rewrite_subscribe}), - emqx_hooks:del('client.unsubscribe', {?MODULE, rewrite_unsubscribe}), - emqx_hooks:del('message.publish', {?MODULE, rewrite_publish}), + unregister_hook(), ok. list() -> @@ -67,7 +65,7 @@ update(Rules0) -> post_config_update(_KeyPath, _Config, Rules, _OldConf, _AppEnvs) -> register_hook(Rules). -register_hook([]) -> disable(); +register_hook([]) -> unregister_hook(); register_hook(Rules) -> {PubRules, SubRules, ErrRules} = compile(Rules), emqx_hooks:put('client.subscribe', {?MODULE, rewrite_subscribe, [SubRules]}), @@ -80,6 +78,11 @@ register_hook(Rules) -> {error, ErrRules} end. +unregister_hook() -> + emqx_hooks:del('client.subscribe', {?MODULE, rewrite_subscribe}), + emqx_hooks:del('client.unsubscribe', {?MODULE, rewrite_unsubscribe}), + emqx_hooks:del('message.publish', {?MODULE, rewrite_publish}). + rewrite_subscribe(_ClientInfo, _Properties, TopicFilters, Rules) -> {ok, [{match_and_rewrite(Topic, Rules), Opts} || {Topic, Opts} <- TopicFilters]}.