diff --git a/apps/emqx_stomp/src/emqx_stomp_frame.erl b/apps/emqx_stomp/src/emqx_stomp_frame.erl index fa9cb63a8..c4d19ae3a 100644 --- a/apps/emqx_stomp/src/emqx_stomp_frame.erl +++ b/apps/emqx_stomp/src/emqx_stomp_frame.erl @@ -126,6 +126,13 @@ parse(Bytes, #{phase := body, len := Len, state := State}) -> parse(Bytes, Parser = #{pre := Pre}) -> parse(<
>, maps:without([pre], Parser)); +parse(<>, Parser = #{phase := none}) -> + parse(Rest, Parser); +parse(<>, Parser = #{phase := none}) -> + case byte_size(Rest) of + 0 -> {more, Parser}; + _ -> parse(Rest, Parser) + end; parse(<>, #{phase := Phase, state := State}) -> parse(Phase, <>, State); parse(<>, Parser) ->