From 8bcf15f391534a00b6ab64798ba503c92d54769c Mon Sep 17 00:00:00 2001 From: zhanghongtong Date: Thu, 23 Jul 2020 17:17:41 +0800 Subject: [PATCH] fix(emqx_channel): fix some error when properties equal undefined --- src/emqx_channel.erl | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/src/emqx_channel.erl b/src/emqx_channel.erl index 9c295a186..4f9f55d2f 100644 --- a/src/emqx_channel.erl +++ b/src/emqx_channel.erl @@ -1247,9 +1247,13 @@ packing_alias(Packet = #mqtt_packet{ Channel = ?IS_MQTT_V5 = #channel{topic_aliases = TopicAliases, alias_maximum = Limits}) -> case find_alias(outbound, Topic, TopicAliases) of {ok, AliasId} -> + NProp = case Prop of + undefined -> #{'Topic-Alias' => AliasId}; + _ -> maps:merge(Prop, #{'Topic-Alias' => AliasId}) + end, NPublish = Publish#mqtt_packet_publish{ topic_name = <<>>, - properties = maps:merge(Prop, #{'Topic-Alias' => AliasId}) + properties = NProp }, {Packet#mqtt_packet{variable = NPublish}, Channel}; error -> @@ -1260,9 +1264,13 @@ packing_alias(Packet = #mqtt_packet{ true -> NTopicAliases = save_alias(outbound, AliasId, Topic, TopicAliases), NChannel = Channel#channel{topic_aliases = NTopicAliases}, + NProp = case Prop of + undefined -> #{'Topic-Alias' => AliasId}; + _ -> maps:merge(Prop, #{'Topic-Alias' => AliasId}) + end, NPublish = Publish#mqtt_packet_publish{ topic_name = Topic, - properties = maps:merge(Prop, #{'Topic-Alias' => AliasId}) + properties = NProp }, {Packet#mqtt_packet{variable = NPublish}, NChannel}; false -> {Packet, Channel}