Fix unexpected packet before connect packet
This commit is contained in:
parent
4290cdf6f0
commit
c536757e1f
|
@ -217,6 +217,9 @@ handle_in(?CONNECT_PACKET(ConnPkt), Channel) ->
|
|||
handle_out(connack, {ReasonCode, ConnPkt}, NChannel)
|
||||
end;
|
||||
|
||||
handle_in(?PACKET(_), Channel = #channel{conn_state = ConnState}) when ConnState =/= connected ->
|
||||
handle_out(disconnect, ?RC_PROTOCOL_ERROR, Channel);
|
||||
|
||||
handle_in(Packet = ?PUBLISH_PACKET(_QoS), Channel) ->
|
||||
case emqx_packet:check(Packet) of
|
||||
ok -> process_publish(Packet, Channel);
|
||||
|
|
|
@ -112,6 +112,12 @@ t_handle_in_unexpected_connect_packet(_) ->
|
|||
{ok, [{outgoing, Packet}, {close, protocol_error}], Channel} =
|
||||
emqx_channel:handle_in(?CONNECT_PACKET(connpkt()), Channel).
|
||||
|
||||
t_handle_in_unexpected_packet(_) ->
|
||||
Channel = channel(),
|
||||
Packet = ?DISCONNECT_PACKET(?RC_PROTOCOL_ERROR),
|
||||
{ok, [{outgoing, Packet}, {close, protocol_error}], Channel} =
|
||||
emqx_channel:handle_in(?PUBLISH_PACKET(?QOS_0), Channel).
|
||||
|
||||
t_handle_in_qos0_publish(_) ->
|
||||
ok = meck:expect(emqx_broker, publish, fun(_) -> [] end),
|
||||
Channel = channel(#{conn_state => connected}),
|
||||
|
|
Loading…
Reference in New Issue