From 8a269099ad7f51dc8ca39741e2c2e856c46b1749 Mon Sep 17 00:00:00 2001 From: firest Date: Mon, 18 Apr 2022 14:23:22 +0800 Subject: [PATCH 1/3] fix(frame): remove empty topic check, because it checked in emqx_channel --- src/emqx_frame.erl | 11 ----------- test/emqx_frame_SUITE.erl | 17 ----------------- 2 files changed, 28 deletions(-) diff --git a/src/emqx_frame.erl b/src/emqx_frame.erl index a2003621d..5eb971f8a 100644 --- a/src/emqx_frame.erl +++ b/src/emqx_frame.erl @@ -273,7 +273,6 @@ parse_packet(#mqtt_packet_header{type = ?PUBLISH, qos = QoS}, Bin, (PacketId =/= undefined) andalso StrictMode andalso validate_packet_id(PacketId), {Properties, Payload} = parse_properties(Rest1, Ver, StrictMode), - ok = ensure_topic_name_valid(StrictMode, TopicName, Properties), Publish = #mqtt_packet_publish{topic_name = TopicName, packet_id = PacketId, properties = Properties @@ -360,7 +359,6 @@ parse_will_message(Packet = #mqtt_packet_connect{will_flag = true, {Props, Rest} = parse_properties(Bin, Ver, StrictMode), {Topic, Rest1} = parse_utf8_string(Rest, StrictMode), {Payload, Rest2} = parse_binary_data(Rest1), - ok = ensure_topic_name_valid(StrictMode, Topic, Props), {Packet#mqtt_packet_connect{will_props = Props, will_topic = Topic, will_payload = Payload @@ -526,15 +524,6 @@ parse_binary_data(Bin) when 2 > byte_size(Bin) -> error(malformed_binary_data_length). -ensure_topic_name_valid(false, _TopicName, _Properties) -> - ok; -ensure_topic_name_valid(true, TopicName, _Properties) when TopicName =/= <<>> -> - ok; -ensure_topic_name_valid(true, <<>>, #{'Topic-Alias' := _}) -> - ok; -ensure_topic_name_valid(true, <<>>, _) -> - error(empty_topic_name). - %%-------------------------------------------------------------------- %% Serialize MQTT Packet %%-------------------------------------------------------------------- diff --git a/test/emqx_frame_SUITE.erl b/test/emqx_frame_SUITE.erl index 866feed76..f8c0ac7ba 100644 --- a/test/emqx_frame_SUITE.erl +++ b/test/emqx_frame_SUITE.erl @@ -46,8 +46,6 @@ groups() -> t_parse_frame_malformed_variable_byte_integer, t_parse_frame_variable_byte_integer, t_parse_malformed_utf8_string, - t_parse_empty_topic_name, - t_parse_empty_topic_name_with_alias, t_parse_frame_proxy_protocol %% proxy_protocol_config_disabled packet. ]}, {connect, [parallel], @@ -164,21 +162,6 @@ t_parse_malformed_utf8_string(_) -> ParseState = emqx_frame:initial_parse_state(#{strict_mode => true}), ?catch_error(utf8_string_invalid, emqx_frame:parse(MalformedPacket, ParseState)). -t_parse_empty_topic_name(_) -> - Packet = ?PUBLISH_PACKET(?QOS_1, <<>>, 1, #{}, <<>>), - ?assertEqual(Packet, parse_serialize(Packet, #{strict_mode => false})), - ?catch_error(empty_topic_name, parse_serialize(Packet, #{strict_mode => true})). - -t_parse_empty_topic_name_with_alias(_) -> - Props = #{'Topic-Alias' => 16#AB}, - Packet = ?PUBLISH_PACKET(?QOS_1, <<>>, 1, Props, <<>>), - ?assertEqual( - Packet, parse_serialize(Packet, #{strict_mode => false, version => ?MQTT_PROTO_V5}) - ), - ?assertEqual( - Packet, parse_serialize(Packet, #{strict_mode => true, version => ?MQTT_PROTO_V5}) - ). - t_parse_frame_proxy_protocol(_) -> BinList = [ <<"PROXY TCP4 ">>, <<"PROXY TCP6 ">>, <<"PROXY UNKNOWN">> , <<"\r\n\r\n\0\r\nQUIT\n">>], From 03cdcab6f66a3c4cd37dc114f49546c1afc9b413 Mon Sep 17 00:00:00 2001 From: firest Date: Mon, 18 Apr 2022 18:27:19 +0800 Subject: [PATCH 2/3] chore: bump emqx version --- src/emqx.app.src | 4 ++-- src/emqx.appup.src | 6 ++++-- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/src/emqx.app.src b/src/emqx.app.src index cfa03c2d4..671cc9fbb 100644 --- a/src/emqx.app.src +++ b/src/emqx.app.src @@ -6,7 +6,7 @@ %% the emqx `release' version, which in turn is comprised of several %% apps, one of which is this. See `emqx_release.hrl' for more %% info. - {vsn, "4.3.15"}, % strict semver, bump manually! + {vsn, "4.3.16"}, % strict semver, bump manually! {modules, []}, {registered, []}, {applications, [ kernel @@ -25,4 +25,4 @@ {links, [{"Homepage", "https://emqx.io/"}, {"Github", "https://github.com/emqx/emqx"} ]} -]}. + ]}. diff --git a/src/emqx.appup.src b/src/emqx.appup.src index 1ef499276..6622607c5 100644 --- a/src/emqx.appup.src +++ b/src/emqx.appup.src @@ -1,7 +1,8 @@ %% -*- mode: erlang -*- %% Unless you know what you are doing, DO NOT edit manually!! {VSN, - [{"4.3.14", + [{"4.3.15",[{load_module,emqx_frame,brutal_purge,soft_purge,[]}]}, + {"4.3.14", [{load_module,emqx,brutal_purge,soft_purge,[]}, {load_module,emqx_sys,brutal_purge,soft_purge,[]}, {load_module,emqx_plugins,brutal_purge,soft_purge,[]}, @@ -443,7 +444,8 @@ {load_module,emqx_message,brutal_purge,soft_purge,[]}, {load_module,emqx_limiter,brutal_purge,soft_purge,[]}]}, {<<".*">>,[]}], - [{"4.3.14", + [{"4.3.15",[{load_module,emqx_frame,brutal_purge,soft_purge,[]}]}, + {"4.3.14", [{load_module,emqx,brutal_purge,soft_purge,[]}, {load_module,emqx_sys,brutal_purge,soft_purge,[]}, {load_module,emqx_plugins,brutal_purge,soft_purge,[]}, From 8fcff16bff96e0845eace73677a7b879173ca6dc Mon Sep 17 00:00:00 2001 From: firest Date: Thu, 21 Apr 2022 15:11:28 +0800 Subject: [PATCH 3/3] fix: fix bad indent --- src/emqx.app.src | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/emqx.app.src b/src/emqx.app.src index 671cc9fbb..c57bd635d 100644 --- a/src/emqx.app.src +++ b/src/emqx.app.src @@ -25,4 +25,4 @@ {links, [{"Homepage", "https://emqx.io/"}, {"Github", "https://github.com/emqx/emqx"} ]} - ]}. +]}.