Browse Source

Merge pull request #1802 from Gilbert-Wong/emqx30

Add pattern match for topic alias
Shawn 7 năm trước cách đây
mục cha
commit
e199e29b67
1 tập tin đã thay đổi với 8 bổ sung2 xóa
  1. 8 2
      src/emqx_protocol.erl

+ 8 - 2
src/emqx_protocol.erl

@@ -647,11 +647,17 @@ check_publish(Packet, PState) ->
     run_check_steps([fun check_pub_caps/2,
                      fun check_pub_acl/2], Packet, PState).
 
+check_pub_caps(#mqtt_packet{header = #mqtt_packet_header{qos = QoS, retain = Retain},
+                            variable = #mqtt_packet_publish{
+                                          properties = #{'Topic-Alias' := TopicAlias}
+                                         }},
+               #pstate{zone = Zone}) ->
+    emqx_mqtt_caps:check_pub(Zone, #{qos => QoS, retain => Retain, topic_alias => TopicAlias});
 check_pub_caps(#mqtt_packet{header = #mqtt_packet_header{qos = QoS, retain = Retain},
                             variable = #mqtt_packet_publish{ properties = Properties}},
                #pstate{zone = Zone}) ->
-    #{'Topic-Alias' := TopicAlias} = Properties,
-    emqx_mqtt_caps:check_pub(Zone, #{qos => QoS, retain => Retain, topic_alias => TopicAlias}).
+    emqx_mqtt_caps:check_pub(Zone, #{qos => QoS, retain => Retain}).
+
 
 check_pub_acl(_Packet, #pstate{is_super = IsSuper, enable_acl = EnableAcl})
     when IsSuper orelse (not EnableAcl) ->