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

Return the '{enter, connected}' event first

Feng Lee 6 лет назад
Родитель
Сommit
a1877f3f42
2 измененных файлов с 4 добавлено и 6 удалено
  1. 2 4
      src/emqx_channel.erl
  2. 2 2
      test/emqx_channel_SUITE.erl

+ 2 - 4
src/emqx_channel.erl

@@ -572,15 +572,13 @@ handle_out({connack, ?RC_SUCCESS, SP, ConnPkt},
     AckPacket = ?CONNACK_PACKET(?RC_SUCCESS, SP, AckProps),
     case maybe_resume_session(Channel2) of
         ignore ->
-            Output = [{outgoing, AckPacket}, {enter, connected}],
-            {ok, Output, Channel2};
+            {ok, [{enter, connected}, {outgoing, AckPacket}], Channel2};
         {ok, Publishes, NSession} ->
             Channel3 = Channel2#channel{session  = NSession,
                                         resuming = false,
                                         pendings = []},
             {ok, {outgoing, Packets}, _} = handle_out({publish, Publishes}, Channel3),
-            Output = [{outgoing, [AckPacket|Packets]}, {enter, connected}],
-            {ok, Output, Channel3}
+            {ok, [{enter, connected}, {outgoing, [AckPacket|Packets]}], Channel3}
     end;
 
 handle_out({connack, ReasonCode, _ConnPkt}, Channel = #channel{conninfo = ConnInfo,

+ 2 - 2
test/emqx_channel_SUITE.erl

@@ -72,7 +72,7 @@ t_handle_connect(_) ->
     with_channel(
       fun(Channel) ->
               ConnAck = ?CONNACK_PACKET(?RC_SUCCESS, 0, #{}),
-              ExpectedOutput = [{outgoing, ConnAck},{enter, connected}],
+              ExpectedOutput = [{enter, connected},{outgoing, ConnAck}],
               {ok, Output, Channel1} = handle_in(?CONNECT_PACKET(ConnPkt), Channel),
               ?assertEqual(ExpectedOutput, Output),
               #{clientid := ClientId, username := Username} = emqx_channel:info(clientinfo, Channel1),
@@ -207,7 +207,7 @@ t_handle_out_connack(_) ->
                 },
     with_channel(
       fun(Channel) ->
-              {ok, [{outgoing, ?CONNACK_PACKET(?RC_SUCCESS, SP, _)}, {enter, connected}], _Chan}
+              {ok, [{enter, connected},{outgoing, ?CONNACK_PACKET(?RC_SUCCESS, SP, _)}], _Chan}
                 = handle_out({connack, ?RC_SUCCESS, 0, ConnPkt}, Channel),
               {stop, {shutdown, not_authorized}, ?CONNACK_PACKET(?RC_NOT_AUTHORIZED), _}
                 = handle_out({connack, ?RC_NOT_AUTHORIZED, ConnPkt}, Channel)