Merge pull request #7087 from emqx/fix-server-keepalive/e4.2.11

fix(frame): server_keepalive only for MQTT v5.0
This commit is contained in:
JianBo He 2022-02-22 09:22:54 +08:00 committed by GitHub
commit b04160e09d
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 79 additions and 74 deletions

View File

@ -22,11 +22,11 @@
{load_module, emqx_router, soft_purge, soft_purge, [emqx_trie]},
{load_module, emqx_cm, brutal_purge, soft_purge, []},
{load_module, emqx_access_rule, brutal_purge, soft_purge, []},
{load_module,emqx_pqueue,brutal_purge,soft_purge,[]},
{load_module,emqx_mqueue,brutal_purge,soft_purge,[]},
{load_module,emqx_alarm_handler,brutal_purge,soft_purge,[]},
{load_module, emqx_pqueue,brutal_purge,soft_purge,[]},
{load_module, emqx_mqueue,brutal_purge,soft_purge,[]},
{load_module, emqx_alarm_handler,brutal_purge,soft_purge,[]},
{load_module, emqx_app, brutal_purge, soft_purge, []},
{load_module,emqx_misc,brutal_purge,soft_purge,[]}
{load_module, emqx_misc,brutal_purge,soft_purge,[]}
]},
{"4.2.1", [
{add_module, emqx_congestion},
@ -47,11 +47,11 @@
{load_module, emqx_router, soft_purge, soft_purge, [emqx_trie]},
{load_module, emqx_cm, brutal_purge, soft_purge, []},
{load_module, emqx_access_rule, brutal_purge, soft_purge, []},
{load_module,emqx_pqueue,brutal_purge,soft_purge,[]},
{load_module,emqx_mqueue,brutal_purge,soft_purge,[]},
{load_module,emqx_alarm_handler,brutal_purge,soft_purge,[]},
{load_module, emqx_pqueue,brutal_purge,soft_purge,[]},
{load_module, emqx_mqueue,brutal_purge,soft_purge,[]},
{load_module, emqx_alarm_handler,brutal_purge,soft_purge,[]},
{load_module, emqx_app, brutal_purge, soft_purge, []},
{load_module,emqx_misc,brutal_purge,soft_purge,[]}
{load_module, emqx_misc,brutal_purge,soft_purge,[]}
]},
{<<"4.2.[23]">>, [
{add_module, emqx_congestion},
@ -69,10 +69,10 @@
{load_module, emqx_router, soft_purge, soft_purge, [emqx_trie]},
{load_module, emqx_cm, brutal_purge, soft_purge, []},
{load_module, emqx_access_rule, brutal_purge, soft_purge, []},
{load_module,emqx_pqueue,brutal_purge,soft_purge,[]},
{load_module,emqx_mqueue,brutal_purge,soft_purge,[]},
{load_module,emqx_alarm_handler,brutal_purge,soft_purge,[]},
{load_module,emqx_misc,brutal_purge,soft_purge,[]},
{load_module, emqx_pqueue,brutal_purge,soft_purge,[]},
{load_module, emqx_mqueue,brutal_purge,soft_purge,[]},
{load_module, emqx_alarm_handler,brutal_purge,soft_purge,[]},
{load_module, emqx_misc,brutal_purge,soft_purge,[]},
{load_module, emqx_app, brutal_purge, soft_purge, []},
{load_module, emqx_limiter, brutal_purge, soft_purge, []}
]},
@ -91,10 +91,10 @@
{load_module, emqx_router, soft_purge, soft_purge, [emqx_trie]},
{load_module, emqx_cm, brutal_purge, soft_purge, []},
{load_module, emqx_access_rule, brutal_purge, soft_purge, []},
{load_module,emqx_pqueue,brutal_purge,soft_purge,[]},
{load_module,emqx_mqueue,brutal_purge,soft_purge,[]},
{load_module,emqx_alarm_handler,brutal_purge,soft_purge,[]},
{load_module,emqx_misc,brutal_purge,soft_purge,[]},
{load_module, emqx_pqueue,brutal_purge,soft_purge,[]},
{load_module, emqx_mqueue,brutal_purge,soft_purge,[]},
{load_module, emqx_alarm_handler,brutal_purge,soft_purge,[]},
{load_module, emqx_misc,brutal_purge,soft_purge,[]},
{load_module, emqx_app, brutal_purge, soft_purge, []},
{load_module, emqx_limiter, brutal_purge, soft_purge, []}
]},
@ -113,10 +113,10 @@
{load_module, emqx_router, soft_purge, soft_purge, [emqx_trie]},
{load_module, emqx_cm, brutal_purge, soft_purge, []},
{load_module, emqx_access_rule, brutal_purge, soft_purge, []},
{load_module,emqx_pqueue,brutal_purge,soft_purge,[]},
{load_module,emqx_mqueue,brutal_purge,soft_purge,[]},
{load_module,emqx_alarm_handler,brutal_purge,soft_purge,[]},
{load_module,emqx_misc,brutal_purge,soft_purge,[]},
{load_module, emqx_pqueue,brutal_purge,soft_purge,[]},
{load_module, emqx_mqueue,brutal_purge,soft_purge,[]},
{load_module, emqx_alarm_handler,brutal_purge,soft_purge,[]},
{load_module, emqx_misc,brutal_purge,soft_purge,[]},
{load_module, emqx_app, brutal_purge, soft_purge, []},
{load_module, emqx_limiter, brutal_purge, soft_purge, []}
]},
@ -127,10 +127,10 @@
{load_module, emqx_ws_connection, brutal_purge, soft_purge, []},
{load_module, emqx_cm, brutal_purge, soft_purge, []},
{load_module, emqx_access_rule, brutal_purge, soft_purge, []},
{load_module,emqx_pqueue,brutal_purge,soft_purge,[]},
{load_module,emqx_mqueue,brutal_purge,soft_purge,[]},
{load_module,emqx_alarm_handler,brutal_purge,soft_purge,[]},
{load_module,emqx_misc,brutal_purge,soft_purge,[]},
{load_module, emqx_pqueue,brutal_purge,soft_purge,[]},
{load_module, emqx_mqueue,brutal_purge,soft_purge,[]},
{load_module, emqx_alarm_handler,brutal_purge,soft_purge,[]},
{load_module, emqx_misc,brutal_purge,soft_purge,[]},
{load_module, emqx_app, brutal_purge, soft_purge, []},
{load_module, emqx_alarm, brutal_purge, soft_purge, []},
{load_module, emqx_os_mon, brutal_purge, soft_purge, []},
@ -149,6 +149,7 @@
]},
{<<"4.2.9">>, [
{load_module, emqx_frame, brutal_purge, soft_purge, []},
{load_module, emqx_channel, brutal_purge, soft_purge, []},
{load_module, emqx_connection, brutal_purge, soft_purge, []},
{load_module, emqx_ws_connection, brutal_purge, soft_purge, []},
{load_module, emqx_limiter, brutal_purge, soft_purge, []},
@ -157,9 +158,10 @@
{load_module, emqx_os_mon, brutal_purge, soft_purge, []}
]},
{<<"4.2.10">>, [
{load_module,emqx_app, brutal_purge, soft_purge, []},
{load_module,emqx_os_mon, brutal_purge, soft_purge, []},
{load_module,emqx_alarm, brutal_purge, soft_purge, []}
{load_module, emqx_channel, brutal_purge, soft_purge, []},
{load_module, emqx_app, brutal_purge, soft_purge, []},
{load_module, emqx_os_mon, brutal_purge, soft_purge, []},
{load_module, emqx_alarm, brutal_purge, soft_purge, []}
]},
{<<".*">>, []}
],
@ -184,11 +186,11 @@
{load_module, emqx_router, soft_purge, soft_purge, []},
{load_module, emqx_cm, brutal_purge, soft_purge, []},
{load_module, emqx_access_rule, brutal_purge, soft_purge, []},
{load_module,emqx_pqueue,brutal_purge,soft_purge,[]},
{load_module,emqx_mqueue,brutal_purge,soft_purge,[]},
{load_module,emqx_alarm_handler,brutal_purge,soft_purge,[]},
{load_module,emqx_app, brutal_purge, soft_purge, []},
{load_module,emqx_misc,brutal_purge,soft_purge,[]}
{load_module, emqx_pqueue,brutal_purge,soft_purge,[]},
{load_module, emqx_mqueue,brutal_purge,soft_purge,[]},
{load_module, emqx_alarm_handler,brutal_purge,soft_purge,[]},
{load_module, emqx_app, brutal_purge, soft_purge, []},
{load_module, emqx_misc,brutal_purge,soft_purge,[]}
]},
{"4.2.1", [
{load_module, emqx_shared_sub, brutal_purge, soft_purge, []},
@ -209,11 +211,11 @@
{load_module, emqx_router, soft_purge, soft_purge, []},
{load_module, emqx_cm, brutal_purge, soft_purge, []},
{load_module, emqx_access_rule, brutal_purge, soft_purge, []},
{load_module,emqx_pqueue,brutal_purge,soft_purge,[]},
{load_module,emqx_mqueue,brutal_purge,soft_purge,[]},
{load_module,emqx_alarm_handler,brutal_purge,soft_purge,[]},
{load_module,emqx_app, brutal_purge, soft_purge, []},
{load_module,emqx_misc,brutal_purge,soft_purge,[]}
{load_module, emqx_pqueue,brutal_purge,soft_purge,[]},
{load_module, emqx_mqueue,brutal_purge,soft_purge,[]},
{load_module, emqx_alarm_handler,brutal_purge,soft_purge,[]},
{load_module, emqx_app, brutal_purge, soft_purge, []},
{load_module, emqx_misc,brutal_purge,soft_purge,[]}
]},
{<<"4.2.[23]">>, [
{load_module, emqx_shared_sub, brutal_purge, soft_purge, []},
@ -231,11 +233,11 @@
{load_module, emqx_router, soft_purge, soft_purge, []},
{load_module, emqx_cm, brutal_purge, soft_purge, []},
{load_module, emqx_access_rule, brutal_purge, soft_purge, []},
{load_module,emqx_pqueue,brutal_purge,soft_purge,[]},
{load_module,emqx_mqueue,brutal_purge,soft_purge,[]},
{load_module,emqx_alarm_handler,brutal_purge,soft_purge,[]},
{load_module,emqx_misc,brutal_purge,soft_purge,[]},
{load_module,emqx_app, brutal_purge, soft_purge, []},
{load_module, emqx_pqueue,brutal_purge,soft_purge,[]},
{load_module, emqx_mqueue,brutal_purge,soft_purge,[]},
{load_module, emqx_alarm_handler,brutal_purge,soft_purge,[]},
{load_module, emqx_misc,brutal_purge,soft_purge,[]},
{load_module, emqx_app, brutal_purge, soft_purge, []},
{load_module, emqx_limiter, brutal_purge, soft_purge, []}
]},
{<<"4.2.4">>, [
@ -252,12 +254,12 @@
{load_module, emqx_router, soft_purge, soft_purge, []},
{load_module, emqx_cm, brutal_purge, soft_purge, []},
{load_module, emqx_access_rule, brutal_purge, soft_purge, []},
{load_module,emqx_pqueue,brutal_purge,soft_purge,[]},
{load_module,emqx_mqueue,brutal_purge,soft_purge,[]},
{load_module,emqx_alarm_handler,brutal_purge,soft_purge,[]},
{load_module,emqx_app, brutal_purge, soft_purge, []},
{load_module,emqx_os_mon, brutal_purge, soft_purge, []},
{load_module,emqx_misc,brutal_purge,soft_purge,[]},
{load_module, emqx_pqueue,brutal_purge,soft_purge,[]},
{load_module, emqx_mqueue,brutal_purge,soft_purge,[]},
{load_module, emqx_alarm_handler,brutal_purge,soft_purge,[]},
{load_module, emqx_app, brutal_purge, soft_purge, []},
{load_module, emqx_os_mon, brutal_purge, soft_purge, []},
{load_module, emqx_misc,brutal_purge,soft_purge,[]},
{load_module, emqx_limiter, brutal_purge, soft_purge, []}
]},
{<<"4.2.5">>, [
@ -274,12 +276,12 @@
{load_module, emqx_router, soft_purge, soft_purge, []},
{load_module, emqx_cm, brutal_purge, soft_purge, []},
{load_module, emqx_access_rule, brutal_purge, soft_purge, []},
{load_module,emqx_pqueue,brutal_purge,soft_purge,[]},
{load_module,emqx_mqueue,brutal_purge,soft_purge,[]},
{load_module,emqx_alarm_handler,brutal_purge,soft_purge,[]},
{load_module,emqx_app, brutal_purge, soft_purge, []},
{load_module,emqx_os_mon, brutal_purge, soft_purge, []},
{load_module,emqx_misc,brutal_purge,soft_purge,[]},
{load_module, emqx_pqueue,brutal_purge,soft_purge,[]},
{load_module, emqx_mqueue,brutal_purge,soft_purge,[]},
{load_module, emqx_alarm_handler,brutal_purge,soft_purge,[]},
{load_module, emqx_app, brutal_purge, soft_purge, []},
{load_module, emqx_os_mon, brutal_purge, soft_purge, []},
{load_module, emqx_misc,brutal_purge,soft_purge,[]},
{load_module, emqx_limiter, brutal_purge, soft_purge, []}
]},
{<<"4.2.[6-7]">>, [
@ -289,13 +291,13 @@
{load_module, emqx_ws_connection, brutal_purge, soft_purge, []},
{load_module, emqx_cm, brutal_purge, soft_purge, []},
{load_module, emqx_access_rule, brutal_purge, soft_purge, []},
{load_module,emqx_pqueue,brutal_purge,soft_purge,[]},
{load_module,emqx_mqueue,brutal_purge,soft_purge,[]},
{load_module,emqx_alarm_handler,brutal_purge,soft_purge,[]},
{load_module,emqx_app, brutal_purge, soft_purge, []},
{load_module,emqx_os_mon, brutal_purge, soft_purge, []},
{load_module,emqx_alarm, brutal_purge, soft_purge, []},
{load_module,emqx_misc,brutal_purge,soft_purge,[]},
{load_module, emqx_pqueue,brutal_purge,soft_purge,[]},
{load_module, emqx_mqueue,brutal_purge,soft_purge,[]},
{load_module, emqx_alarm_handler,brutal_purge,soft_purge,[]},
{load_module, emqx_app, brutal_purge, soft_purge, []},
{load_module, emqx_os_mon, brutal_purge, soft_purge, []},
{load_module, emqx_alarm, brutal_purge, soft_purge, []},
{load_module, emqx_misc,brutal_purge,soft_purge,[]},
{load_module, emqx_limiter, brutal_purge, soft_purge, []}
]},
{<<"4.2.8">>, [
@ -304,24 +306,26 @@
{load_module, emqx_connection, brutal_purge, soft_purge, []},
{load_module, emqx_ws_connection, brutal_purge, soft_purge, []},
{load_module, emqx_cm, brutal_purge, soft_purge, []},
{load_module,emqx_app, brutal_purge, soft_purge, []},
{load_module,emqx_os_mon, brutal_purge, soft_purge, []},
{load_module,emqx_alarm, brutal_purge, soft_purge, []},
{load_module, emqx_app, brutal_purge, soft_purge, []},
{load_module, emqx_os_mon, brutal_purge, soft_purge, []},
{load_module, emqx_alarm, brutal_purge, soft_purge, []},
{load_module, emqx_limiter, brutal_purge, soft_purge, []}
]},
{<<"4.2.9">>, [
{load_module, emqx_frame, brutal_purge, soft_purge, []},
{load_module, emqx_channel, brutal_purge, soft_purge, []},
{load_module, emqx_connection, brutal_purge, soft_purge, []},
{load_module, emqx_ws_connection, brutal_purge, soft_purge, []},
{load_module, emqx_limiter, brutal_purge, soft_purge, []},
{load_module,emqx_app, brutal_purge, soft_purge, []},
{load_module,emqx_os_mon, brutal_purge, soft_purge, []},
{load_module,emqx_alarm, brutal_purge, soft_purge, []}
{load_module, emqx_app, brutal_purge, soft_purge, []},
{load_module, emqx_os_mon, brutal_purge, soft_purge, []},
{load_module, emqx_alarm, brutal_purge, soft_purge, []}
]},
{<<"4.2.10">>, [
{load_module,emqx_app, brutal_purge, soft_purge, []},
{load_module,emqx_os_mon, brutal_purge, soft_purge, []},
{load_module,emqx_alarm, brutal_purge, soft_purge, []}
{load_module, emqx_channel, brutal_purge, soft_purge, []},
{load_module, emqx_app, brutal_purge, soft_purge, []},
{load_module, emqx_os_mon, brutal_purge, soft_purge, []},
{load_module, emqx_alarm, brutal_purge, soft_purge, []}
]},
{<<".*">>, []}
]

View File

@ -1455,11 +1455,13 @@ enrich_connack_caps(AckProps, _Channel) -> AckProps.
%%--------------------------------------------------------------------
%% Enrich server keepalive
enrich_server_keepalive(AckProps, #channel{clientinfo = #{zone := Zone}}) ->
enrich_server_keepalive(AckProps, ?IS_MQTT_V5 = #channel{clientinfo = #{zone := Zone}}) ->
case emqx_zone:server_keepalive(Zone) of
undefined -> AckProps;
Keepalive -> AckProps#{'Server-Keep-Alive' => Keepalive}
end.
end;
enrich_server_keepalive(AckProps, _Channel) -> AckProps.
%%--------------------------------------------------------------------
%% Enrich response information
@ -1505,7 +1507,7 @@ init_alias_maximum(#mqtt_packet_connect{proto_ver = ?MQTT_PROTO_V5,
init_alias_maximum(_ConnPkt, _ClientInfo) -> undefined.
%%--------------------------------------------------------------------
%% Enrich Keepalive
%% Ensure Keepalive
ensure_keepalive(#{'Server-Keep-Alive' := Interval}, Channel) ->
ensure_keepalive_timer(Interval, Channel);
@ -1671,4 +1673,3 @@ flag(false) -> 0.
set_field(Name, Value, Channel) ->
Pos = emqx_misc:index_of(Name, record_info(fields, channel)),
setelement(Pos+1, Channel, Value).