From f8fd4d15be055e94acb74528c16dfa2f077a65b8 Mon Sep 17 00:00:00 2001 From: JimMoen Date: Fri, 10 May 2024 22:20:27 +0800 Subject: [PATCH] fix(gw): process jt808 client deregister packet --- apps/emqx_gateway_jt808/src/emqx_jt808_channel.erl | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/apps/emqx_gateway_jt808/src/emqx_jt808_channel.erl b/apps/emqx_gateway_jt808/src/emqx_jt808_channel.erl index a6c2a4425..876f623e9 100644 --- a/apps/emqx_gateway_jt808/src/emqx_jt808_channel.erl +++ b/apps/emqx_gateway_jt808/src/emqx_jt808_channel.erl @@ -230,9 +230,14 @@ handle_in(Frame = ?MSG(MType), Channel = #channel{conn_state = ConnState}) when handle_in(Frame, Channel = #channel{conn_state = connected}) -> ?SLOG(debug, #{msg => "recv_frame", frame => Frame}), do_handle_in(Frame, Channel); +handle_in(Frame = ?MSG(MType), Channel) when + MType =:= ?MC_DEREGISTER +-> + ?SLOG(debug, #{msg => "recv_frame", frame => Frame, info => "jt808_client_deregister"}), + do_handle_in(Frame, Channel#channel{conn_state = disconnected}); handle_in(Frame, Channel) -> ?SLOG(error, #{msg => "unexpected_frame", frame => Frame}), - {stop, unexpected_frame, Channel}. + {shutdown, unexpected_frame, Channel}. %% @private do_handle_in(Frame = ?MSG(?MC_GENERAL_RESPONSE), Channel = #channel{inflight = Inflight}) -> @@ -316,7 +321,7 @@ do_handle_in( {ok, Channel#channel{inflight = ack_msg(?MC_DRIVER_ID_REPORT, none, Inflight)}} end; do_handle_in(?MSG(?MC_DEREGISTER), Channel) -> - {stop, normal, Channel}; + {shutdown, normal, Channel}; do_handle_in(Frame = #{}, Channel = #channel{up_topic = Topic, inflight = Inflight}) -> {MsgId, MsgSn} = msgidsn(Frame), _ = do_publish(Topic, Frame),