Преглед изворни кода

Merge pull request #499 from callbay/master

matches for the remaining length field in the variable header
Feng Lee пре 10 година
родитељ
комит
fa67becc3b
1 измењених фајлова са 4 додато и 0 уклоњено
  1. 4 0
      src/emqttd_parser.erl

+ 4 - 0
src/emqttd_parser.erl

@@ -61,6 +61,10 @@ parse_remaining_len(_Bin, _Header, _Multiplier, Length, #mqtt_packet_limit{max_p
     {error, invalid_mqtt_frame_len};
 parse_remaining_len(<<>>, Header, Multiplier, Length, Limit) ->
     {more, fun(Bin) -> parse_remaining_len(Bin, Header, Multiplier, Length, Limit) end};
+parse_remaining_len(<<0:1, 2:7, Rest/binary>>, Header, 1, 0, _Limit) ->
+    parse_frame(Rest, Header, 2);
+parse_remaining_len(<<0:8, Rest/binary>>, Header, 1, 0, _Limit) ->
+    parse_frame(Rest, Header, 0);
 parse_remaining_len(<<1:1, Len:7, Rest/binary>>, Header, Multiplier, Value, Limit) ->
     parse_remaining_len(Rest, Header, Multiplier * ?HIGHBIT, Value + Len * Multiplier, Limit);
 parse_remaining_len(<<0:1, Len:7, Rest/binary>>, Header,  Multiplier, Value, #mqtt_packet_limit{max_packet_size = MaxLen}) ->