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