From b155324b98a855cce128c463314447d9f9dcb407 Mon Sep 17 00:00:00 2001 From: JimMoen Date: Sun, 24 Apr 2022 15:06:47 +0800 Subject: [PATCH] fix(channel): update conninfo when start keepaliver timer --- src/emqx_channel.erl | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/src/emqx_channel.erl b/src/emqx_channel.erl index 6c03a1a04..d2e0ed336 100644 --- a/src/emqx_channel.erl +++ b/src/emqx_channel.erl @@ -1509,8 +1509,11 @@ init_alias_maximum(_ConnPkt, _ClientInfo) -> undefined. %%-------------------------------------------------------------------- %% Ensure Keepalive -ensure_keepalive(#{'Server-Keep-Alive' := Interval}, Channel) -> - ensure_keepalive_timer(Interval, Channel); +%% MQTT 5 +ensure_keepalive(#{'Server-Keep-Alive' := Interval}, Channel = #channel{conninfo = ConnInfo}) -> + ensure_keepalive_timer(Interval, Channel#channel{conninfo = ConnInfo#{keepalive => Interval}}); + +%% MQTT 3,4 ensure_keepalive(_AckProps, Channel = #channel{conninfo = ConnInfo}) -> ensure_keepalive_timer(maps:get(keepalive, ConnInfo), Channel).