Просмотр исходного кода

Merge pull request #13875 from qzhuyan/dev/william/quic-conn-scope-keep-alive

fix(mgmt_api_clients):  remove conn_shared_state from conninfo
William Yang 1 год назад
Родитель
Сommit
b55b40c0fe

+ 7 - 5
apps/emqx_management/src/emqx_mgmt_api_clients.erl

@@ -1766,15 +1766,17 @@ format_channel_info(WhichNode, ChanInfo) ->
 
 format_channel_info(WhichNode, {_, ClientInfo0, ClientStats}, Opts) ->
     Node = maps:get(node, ClientInfo0, WhichNode),
-    ClientInfo1 = emqx_utils_maps:deep_remove([conninfo, clientid], ClientInfo0),
-    ClientInfo2 = emqx_utils_maps:deep_remove([conninfo, username], ClientInfo1),
-    ClientInfo3 = emqx_utils_maps:deep_remove([conninfo, sock], ClientInfo2),
+    ConnInfo = maps:without(
+        [clientid, username, sock, conn_shared_state],
+        maps:get(conninfo, ClientInfo0)
+    ),
+    ClientInfo1 = ClientInfo0#{conninfo := ConnInfo},
     StatsMap = maps:without(
         [memory, next_pkt_id, total_heap_size],
         maps:from_list(ClientStats)
     ),
-    ClientInfo4 = maps:remove(will_msg, ClientInfo3),
-    ClientInfoMap0 = maps:fold(fun take_maps_from_inner/3, #{}, ClientInfo4),
+    ClientInfo2 = maps:remove(will_msg, ClientInfo1),
+    ClientInfoMap0 = maps:fold(fun take_maps_from_inner/3, #{}, ClientInfo2),
     {IpAddress, Port} = peername_dispart(maps:get(peername, ClientInfoMap0)),
     Connected = maps:get(conn_state, ClientInfoMap0) =:= connected,
     ClientInfoMap1 = maps:merge(StatsMap, ClientInfoMap0),

+ 2 - 3
apps/emqx_management/test/emqx_mgmt_api_clients_SUITE.erl

@@ -91,8 +91,7 @@ end_per_suite(_Config) ->
 init_per_group(general, Config) ->
     Apps = emqx_cth_suite:start(
         [
-            emqx,
-            emqx_conf,
+            {emqx_conf, "listeners.quic.test { enable = true, bind = 1883, mountpoint = \"a\"}"},
             emqx_management,
             emqx_mgmt_api_test_util:emqx_dashboard()
         ],
@@ -221,7 +220,7 @@ t_clients(Config) ->
     }),
     {ok, _} = emqtt:connect(C1),
     {ok, C2} = emqtt:start_link(#{username => Username2, clientid => ClientId2}),
-    {ok, _} = emqtt:connect(C2),
+    {ok, _} = emqtt:quic_connect(C2),
 
     timer:sleep(300),