10BC0 chore(frame): avoid using 0 to signal "some more" bytes expected · emqx/emqx@566e73a · GitHub
[go: up one dir, main page]

Skip to content

Commit 566e73a

Browse files
committed
chore(frame): avoid using 0 to signal "some more" bytes expected
1 parent b072f42 commit 566e73a

File tree

3 files changed

+8
-6
lines changed

3 files changed

+8
-6
lines changed

apps/emqx/src/emqx_frame.erl

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -56,8 +56,8 @@
5656
-type parse_state_initial() :: #options{}.
5757

5858
-type parse_result() ::
59-
%% Need more bytes out of stream, `0` means it's unclear how much more.
60-
{_NeedMore :: non_neg_integer(), parse_state()}
59+
%% Need more bytes out of stream.
60+
{some_more | _NBytesMore :: pos_integer(), parse_state()}
6161
%% There's a full packet.
6262
| {emqx_types:packet(), binary(), parse_state_initial()}.
6363

@@ -144,7 +144,7 @@ parse(
144144
) ->
145145
parse_body_frame(Bin, Header, Need, Body, Options);
146146
parse(<<>>, State) ->
147-
{0, State}.
147+
{some_more, State}.
148148

149149
%% @doc Parses _complete_ binary frame into a single `#mqtt_packet{}`.
150150
-spec parse_complete(iodata(), parse_state_initial()) ->
@@ -170,7 +170,7 @@ parse_complete(
170170
end.
171171

172172
parse_remaining_len(<<>>, Header, Mult, Length, Options) ->
173-
{_NeedMore = 0, #remlen{hdr = Header, len = Length, mult = Mult, opts = Options}};
173+
{some_more, #remlen{hdr = Header, len = Length, mult = Mult, opts = Options}};
174174
parse_remaining_len(<<0:8, Rest/binary>>, Header, 1, 0, Options) ->
175175
Packet = parse_bodyless_packet(Header),
176176
{Packet, Rest, Options};

apps/emqx/src/emqx_socket_connection.erl

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -428,6 +428,8 @@ wakeup_from_hib(Parent, State) ->
428428

429429
-compile({inline, [sock_async_recv/2]}).
430430

431+
sock_async_recv(Socket, some_more) ->
432+
socket:recv(Socket, 0, [], nowait);
431433
sock_async_recv(Socket, Len) ->
432434
socket:recv(Socket, Len, [], nowait).
433435

apps/emqx/test/emqx_frame_SUITE.erl

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -125,8 +125,8 @@ t_parse_cont(_) ->
125125
Packet = ?CONNECT_PACKET(#mqtt_packet_connect{}),
126126
ParseState = emqx_frame:initial_parse_state(),
127127
<<HdrBin:1/binary, LenBin:1/binary, RestBin/binary>> = serialize_to_binary(Packet),
128-
{0, ContParse} = emqx_frame:parse(<<>>, ParseState),
129-
{0, ContParse1} = emqx_frame:parse(HdrBin, ContParse),
128+
{some_more, ContParse} = emqx_frame:parse(<<>>, ParseState),
129+
{some_more, ContParse1} = emqx_frame:parse(HdrBin, ContParse),
130130
{12, ContParse2} = emqx_frame:parse(LenBin, ContParse1),
131131
{12, ContParse3} = emqx_frame:parse(<<>>, ContParse2),
132132
{Packet, <<>>, _} = emqx_frame:parse(RestBin, ContParse3).

0 commit comments

Comments
 (0)
0