fix(stomp): unmount topic prefix in delivering proccess

This commit is contained in:
JianBo He 2023-06-12 17:59:34 +08:00
parent e3d208f678
commit 4212d90672
1 changed files with 5 additions and 6 deletions

View File

@ -994,7 +994,7 @@ handle_deliver(
Delivers, Delivers,
Channel = #channel{ Channel = #channel{
ctx = Ctx, ctx = Ctx,
clientinfo = ClientInfo, clientinfo = ClientInfo = #{mountpoint := Mountpoint},
subscriptions = Subs subscriptions = Subs
} }
) -> ) ->
@ -1005,22 +1005,21 @@ handle_deliver(
fun({_, _, Message}, Acc) -> fun({_, _, Message}, Acc) ->
Topic0 = emqx_message:topic(Message), Topic0 = emqx_message:topic(Message),
case lists:keyfind(Topic0, 2, Subs) of case lists:keyfind(Topic0, 2, Subs) of
{Id, Topic, Ack, _SubOpts} -> {Id, _Topic, Ack, _SubOpts} ->
%% XXX: refactor later Message1 = emqx_mountpoint:unmount(Mountpoint, Message),
metrics_inc('messages.delivered', Channel), metrics_inc('messages.delivered', Channel),
NMessage = run_hooks_without_metrics( NMessage = run_hooks_without_metrics(
Ctx, Ctx,
'message.delivered', 'message.delivered',
[ClientInfo], [ClientInfo],
Message Message1
), ),
Topic = emqx_message:topic(NMessage),
Headers = emqx_message:get_headers(NMessage), Headers = emqx_message:get_headers(NMessage),
Payload = emqx_message:payload(NMessage), Payload = emqx_message:payload(NMessage),
Headers0 = [ Headers0 = [
{<<"subscription">>, Id}, {<<"subscription">>, Id},
{<<"message-id">>, next_msgid()}, {<<"message-id">>, next_msgid()},
{<<"destination">>, Topic}, {<<"destination">>, emqx_message:topic(NMessage)},
{<<"content-type">>, <<"text/plain">>} {<<"content-type">>, <<"text/plain">>}
], ],
Headers1 = Headers1 =