Add 'next_events/1' and fix the 'process_incoming/3' function
This commit is contained in:
parent
3e15ac0bbb
commit
5ccaaed34c
|
@ -1326,19 +1326,15 @@ run_sock(State = #state{socket = Sock}) ->
|
||||||
%%------------------------------------------------------------------------------
|
%%------------------------------------------------------------------------------
|
||||||
%% Process incomming
|
%% Process incomming
|
||||||
|
|
||||||
process_incoming(<<>>, [Packet], State) ->
|
|
||||||
{keep_state, State, {next_event, cast, Packet}};
|
|
||||||
|
|
||||||
process_incoming(<<>>, Packets, State) ->
|
process_incoming(<<>>, Packets, State) ->
|
||||||
NextEvts = [{next_event, cast, Packet} || Packet <- lists:reverse(Packets)],
|
{keep_state, State, next_events(Packets)};
|
||||||
{keep_state, State, NextEvts};
|
|
||||||
|
|
||||||
process_incoming(Bytes, Packets, State = #state{parse_state = ParseState}) ->
|
process_incoming(Bytes, Packets, State = #state{parse_state = ParseState}) ->
|
||||||
try emqx_frame:parse(Bytes, ParseState) of
|
try emqx_frame:parse(Bytes, ParseState) of
|
||||||
{ok, Packet, Rest} ->
|
{ok, Packet, Rest} ->
|
||||||
process_incoming(Rest, [Packet|Packets], init_parse_state(State));
|
process_incoming(Rest, [Packet|Packets], init_parse_state(State));
|
||||||
{more, NewParseState} ->
|
{more, NewParseState} ->
|
||||||
{keep_state, State#state{parse_state = NewParseState}};
|
{keep_state, State#state{parse_state = NewParseState}, next_events(Packets)};
|
||||||
{error, Reason} ->
|
{error, Reason} ->
|
||||||
{stop, Reason}
|
{stop, Reason}
|
||||||
catch
|
catch
|
||||||
|
@ -1346,6 +1342,13 @@ process_incoming(Bytes, Packets, State = #state{parse_state = ParseState}) ->
|
||||||
{stop, Error}
|
{stop, Error}
|
||||||
end.
|
end.
|
||||||
|
|
||||||
|
next_events([]) ->
|
||||||
|
[];
|
||||||
|
next_events([Packet]) ->
|
||||||
|
{next_event, cast, Packet};
|
||||||
|
next_events(Packets) ->
|
||||||
|
[{next_event, cast, Packet} || Packet <- lists:reverse(Packets)].
|
||||||
|
|
||||||
%%------------------------------------------------------------------------------
|
%%------------------------------------------------------------------------------
|
||||||
%% Next packet id
|
%% Next packet id
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue