From be6cd5705f8ffc212f65a1963c256b8e532e4407 Mon Sep 17 00:00:00 2001 From: William Yang Date: Tue, 2 May 2023 12:36:34 +0200 Subject: [PATCH] fix(mqtt-cap): use global config as defaults Don't use default values in module, use global mqtt config as default --- apps/emqx/src/emqx_mqtt_caps.erl | 28 +++++++++++++-------------- apps/emqx/test/emqx_channel_SUITE.erl | 2 ++ 2 files changed, 16 insertions(+), 14 deletions(-) diff --git a/apps/emqx/src/emqx_mqtt_caps.erl b/apps/emqx/src/emqx_mqtt_caps.erl index 1ead953a6..ec550bac5 100644 --- a/apps/emqx/src/emqx_mqtt_caps.erl +++ b/apps/emqx/src/emqx_mqtt_caps.erl @@ -58,18 +58,18 @@ exclusive_subscription ]). --define(DEFAULT_CAPS, #{ - max_packet_size => ?MAX_PACKET_SIZE, - max_clientid_len => ?MAX_CLIENTID_LEN, - max_topic_alias => ?MAX_TOPIC_AlIAS, - max_topic_levels => ?MAX_TOPIC_LEVELS, - max_qos_allowed => ?QOS_2, - retain_available => true, - wildcard_subscription => true, - subscription_identifiers => true, - shared_subscription => true, - exclusive_subscription => false -}). +-define(DEFAULT_CAPS_KEYS, [ + max_packet_size, + max_clientid_len, + max_topic_alias, + max_topic_levels, + max_qos_allowed, + retain_available, + wildcard_subscription, + subscription_identifiers, + shared_subscription, + exclusive_subscription +]). -spec check_pub( emqx_types:zone(), @@ -152,12 +152,12 @@ do_check_sub(_Flags, _Caps, _, _) -> ok. get_caps(Zone) -> - get_caps(maps:keys(?DEFAULT_CAPS), Zone). + get_caps(?DEFAULT_CAPS_KEYS, Zone). get_caps(Keys, Zone) -> maps:with( Keys, maps:merge( - ?DEFAULT_CAPS, + emqx_config:get([mqtt]), emqx_config:get_zone_conf(Zone, [mqtt]) ) ). diff --git a/apps/emqx/test/emqx_channel_SUITE.erl b/apps/emqx/test/emqx_channel_SUITE.erl index eccb5c865..d5265c1dd 100644 --- a/apps/emqx/test/emqx_channel_SUITE.erl +++ b/apps/emqx/test/emqx_channel_SUITE.erl @@ -267,6 +267,8 @@ t_chan_info(_) -> t_chan_caps(_) -> ?assertMatch( #{ + exclusive_subscription := false, + max_packet_size := 1048576, max_clientid_len := 65535, max_qos_allowed := 2, max_topic_alias := 65535,