Return the '{enter, connected}' event first

This commit is contained in:
Feng Lee 2019-10-14 12:38:57 +08:00
parent 6233aa7d46
commit a1877f3f42
2 changed files with 4 additions and 6 deletions

View File

@ -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,

View File

@ -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)