From 53383991d9a065b20c0331f1e7168c89ae7a0326 Mon Sep 17 00:00:00 2001 From: JimMoen Date: Wed, 25 Oct 2023 17:25:23 +0800 Subject: [PATCH] fix: rewrite #share{} and return #share{}, not formated $share/group/topic --- apps/emqx_modules/src/emqx_rewrite.erl | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/apps/emqx_modules/src/emqx_rewrite.erl b/apps/emqx_modules/src/emqx_rewrite.erl index 619b53be4..485c41f29 100644 --- a/apps/emqx_modules/src/emqx_rewrite.erl +++ b/apps/emqx_modules/src/emqx_rewrite.erl @@ -150,15 +150,16 @@ compile(Rules) -> Rules ). -%% FIXME: rewrite #share{} and return #share{}, not formated $share/group/topic match_and_rewrite(Topic, [], _) -> Topic; match_and_rewrite(Topic, [{Filter, MP, Dest} | Rules], Binds) -> case emqx_topic:match(Topic, Filter) of - true -> rewrite(emqx_topic:get_shared_real_topic(Topic), MP, Dest, Binds); + true -> rewrite(Topic, MP, Dest, Binds); false -> match_and_rewrite(Topic, Rules, Binds) end. +rewrite(SharedRecord = #share{topic = Topic}, MP, Dest, Binds) -> + SharedRecord#share{topic = rewrite(Topic, MP, Dest, Binds)}; rewrite(Topic, MP, Dest, Binds) -> case re:run(Topic, MP, [{capture, all_but_first, list}]) of {match, Captured} ->