From a1877f3f42be8020b56bf67bcac7fd3c697c67d8 Mon Sep 17 00:00:00 2001 From: Feng Lee Date: Mon, 14 Oct 2019 12:38:57 +0800 Subject: [PATCH] Return the '{enter, connected}' event first --- src/emqx_channel.erl | 6 ++---- test/emqx_channel_SUITE.erl | 4 ++-- 2 files changed, 4 insertions(+), 6 deletions(-) diff --git a/src/emqx_channel.erl b/src/emqx_channel.erl index 2a92ba755..1160c460d 100644 --- a/src/emqx_channel.erl +++ b/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, diff --git a/test/emqx_channel_SUITE.erl b/test/emqx_channel_SUITE.erl index 8e169d597..6e73d0703 100644 --- a/test/emqx_channel_SUITE.erl +++ b/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)