From fd5b66230202b883d126afb66f339759ea2b3fc9 Mon Sep 17 00:00:00 2001 From: JianBo He Date: Thu, 28 Apr 2022 22:47:42 +0800 Subject: [PATCH] fix(stomp): sync clientid from clientinfo to conninfo --- apps/emqx_gateway/src/stomp/emqx_stomp_channel.erl | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/apps/emqx_gateway/src/stomp/emqx_stomp_channel.erl b/apps/emqx_gateway/src/stomp/emqx_stomp_channel.erl index d137d7eab..4ef48d264 100644 --- a/apps/emqx_gateway/src/stomp/emqx_stomp_channel.erl +++ b/apps/emqx_gateway/src/stomp/emqx_stomp_channel.erl @@ -262,6 +262,17 @@ enrich_clientinfo( ), {ok, NPacket, Channel#channel{clientinfo = NClientInfo}}. +assign_clientid_to_conninfo( + Packet, + Channel = #channel{ + conninfo = ConnInfo, + clientinfo = ClientInfo + } +) -> + ClientId = maps:get(clientid, ClientInfo), + NConnInfo = maps:put(clientid, ClientId, ConnInfo), + {ok, Packet, Channel#channel{conninfo = NConnInfo}}. + feedvar(Override, Packet, ConnInfo, ClientInfo) -> Envs = #{ 'ConnInfo' => ConnInfo, @@ -409,6 +420,7 @@ handle_in(Packet = ?PACKET(?CMD_CONNECT), Channel) -> fun run_conn_hooks/2, fun negotiate_version/2, fun enrich_clientinfo/2, + fun assign_clientid_to_conninfo/2, fun set_log_meta/2, %% TODO: How to implement the banned in the gateway instance? %, fun check_banned/2