diff --git a/src/emqx_frame.erl b/src/emqx_frame.erl index 3ec935020..ab43fb58c 100644 --- a/src/emqx_frame.erl +++ b/src/emqx_frame.erl @@ -120,19 +120,17 @@ wrap(Header, Rest) -> parse_packet(#mqtt_packet_header{type = ?CONNECT}, FrameBin, _Options) -> {ProtoName, Rest} = parse_utf8_string(FrameBin), <> = Rest, + % Note: Crash when reserved flag doesn't equal to 0, there is no strict compliance with the MQTT5.0. <> = Rest1, - case protocol_approved(ProtoVer, ProtoName) of - true -> ok; - false -> error(protocol_name_unapproved) - end, + {Properties, Rest3} = parse_properties(Rest2, ProtoVer), {ClientId, Rest4} = parse_utf8_string(Rest3), ConnPacket = #mqtt_packet_connect{proto_name = ProtoName,