From 211c800e24c3e0658cb78da331cb866cb4928bc6 Mon Sep 17 00:00:00 2001 From: terry-xiaoyu <506895667@qq.com> Date: Sun, 21 Jun 2020 11:23:46 +0800 Subject: [PATCH] fix(properties): downlink will msg contains non-publish properties The paho test failed because the client received a will message that has an `Will-Delay-Interval` property. All the 7 allowed PUBLISH properties are listed as follows: ``` 'Payload-Format-Indicator', 'Message-Expiry-Interval', 'Response-Topic', 'Correlation-Data', 'User-Property', 'Subscription-Identifier', 'Content-Type' ``` --- src/emqx_message.erl | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/src/emqx_message.erl b/src/emqx_message.erl index 45e751193..decbb0c18 100644 --- a/src/emqx_message.erl +++ b/src/emqx_message.erl @@ -250,11 +250,21 @@ to_packet(PacketId, Msg = #message{qos = QoS, headers = Headers, }, variable = #mqtt_packet_publish{topic_name = Topic, packet_id = PacketId, - properties = maps:get(properties, Headers, #{}) + properties = filter_pub_props(maps:get(properties, Headers, #{})) }, payload = Payload }. +filter_pub_props(Props) -> + maps:with(['Payload-Format-Indicator', + 'Message-Expiry-Interval', + 'Response-Topic', + 'Correlation-Data', + 'User-Property', + 'Subscription-Identifier', + 'Content-Type' + ], Props). + %% @doc Message to map -spec(to_map(emqx_types:message()) -> map()). to_map(#message{