From 3b43cca5bf61a2011e3c4c3b13042a9c0b77101f Mon Sep 17 00:00:00 2001 From: EMQ-YangM Date: Tue, 29 Mar 2022 18:51:10 +0800 Subject: [PATCH] fix: use masp:get/3 to avoid crash after match failure --- apps/emqx_rule_engine/src/emqx_rule_events.erl | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/apps/emqx_rule_engine/src/emqx_rule_events.erl b/apps/emqx_rule_engine/src/emqx_rule_events.erl index b0c27cf6a..1a4562c3e 100644 --- a/apps/emqx_rule_engine/src/emqx_rule_events.erl +++ b/apps/emqx_rule_engine/src/emqx_rule_events.erl @@ -251,7 +251,7 @@ eventmsg_disconnected(_ClientInfo = #{ disconnected_at => DisconnectedAt }). -eventmsg_connack(_ConnInfo = #{ +eventmsg_connack(ConnInfo = #{ clientid := ClientId, clean_start := CleanStart, username := Username, @@ -259,11 +259,11 @@ eventmsg_connack(_ConnInfo = #{ sockname := SockName, proto_name := ProtoName, proto_ver := ProtoVer, - keepalive := Keepalive, - connected_at := ConnectedAt, - conn_props := ConnProps, - expiry_interval := ExpiryInterval + connected_at := ConnectedAt }, Reason) -> + Keepalive = maps:get(keepalive, ConnInfo, 0), + ConnProps = maps:get(conn_props, ConnInfo, #{}), + ExpiryInterval = maps:get(expiry_interval, ConnInfo, 0), with_basic_columns('client.connack', #{reason_code => reason(Reason), clientid => ClientId,