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

fix: persent session connack flag

JimMoen 1 год назад
Родитель
Сommit
3201cff51d
1 измененных файлов с 10 добавлено и 2 удалено
  1. 10 2
      apps/emqx/src/emqx_channel.erl

+ 10 - 2
apps/emqx/src/emqx_channel.erl

@@ -1301,9 +1301,13 @@ handle_out(Type, Data, Channel) ->
 %% Return ConnAck
 %%--------------------------------------------------------------------
 
-return_connack(?CONNACK_PACKET(RC) = AckPacket, Channel) ->
+return_connack(?CONNACK_PACKET(RC, SessPresent) = AckPacket, Channel) ->
     ?ext_trace_add_attrs(#{'client.connack.reason_code' => RC}),
-    ?ext_trace_add_event('client.connack', #{reason_code => RC, msg => connack_in_queue}),
+    ?ext_trace_add_event('client.connack', #{
+        reason_code => RC,
+        msg => connack_in_queue,
+        session_present => bool(SessPresent)
+    }),
     do_return_connack(AckPacket, Channel).
 
 do_return_connack(AckPacket, Channel) ->
@@ -1326,6 +1330,10 @@ do_return_connack(AckPacket, Channel) ->
             {ok, Replies ++ Outgoing, NChannel2}
     end.
 
+-compile({inline, [bool/1]}).
+bool(0) -> false;
+bool(1) -> true.
+
 %%--------------------------------------------------------------------
 %% Deliver publish: broker -> client
 %%--------------------------------------------------------------------