From 92a5c333af08cdde3ae2da42a89de13cdd9c09bc Mon Sep 17 00:00:00 2001 From: JianBo He Date: Sat, 9 Oct 2021 11:50:33 +0800 Subject: [PATCH] chore(gw-lwm2m): store lifetime in clientinfo --- apps/emqx_gateway/src/lwm2m/emqx_lwm2m_channel.erl | 9 +++++---- apps/emqx_gateway/src/lwm2m/emqx_lwm2m_session.erl | 2 +- 2 files changed, 6 insertions(+), 5 deletions(-) diff --git a/apps/emqx_gateway/src/lwm2m/emqx_lwm2m_channel.erl b/apps/emqx_gateway/src/lwm2m/emqx_lwm2m_channel.erl index 1dbf27474..f78f9a908 100644 --- a/apps/emqx_gateway/src/lwm2m/emqx_lwm2m_channel.erl +++ b/apps/emqx_gateway/src/lwm2m/emqx_lwm2m_channel.erl @@ -57,7 +57,7 @@ %% TODO: -define(DEFAULT_OVERRIDE, #{ clientid => <<"">> %% Generate clientid by default - , username => <<"${Packet.querystring.epn}">> + , username => <<"${Packet.uri_query.ep}">> , password => <<"">> }). @@ -300,13 +300,14 @@ enrich_clientinfo(#coap_message{options = Options} = Msg, Channel = #channel{clientinfo = ClientInfo0}) -> Query = maps:get(uri_query, Options, #{}), case Query of - #{<<"ep">> := Epn} -> - %% TODO: put endpoint-name, lifetime into clientinfo ??? + #{<<"ep">> := Epn, <<"lt">> := Lifetime} -> Username = maps:get(<<"imei">>, Query, Epn), Password = maps:get(<<"password">>, Query, undefined), ClientId = maps:get(<<"device_id">>, Query, Epn), ClientInfo = - ClientInfo0#{username => Username, + ClientInfo0#{endpoint_name => Epn, + lifetime => binary_to_integer(Lifetime), + username => Username, password => Password, clientid => ClientId}, {ok, NClientInfo} = fix_mountpoint(Msg, ClientInfo), diff --git a/apps/emqx_gateway/src/lwm2m/emqx_lwm2m_session.erl b/apps/emqx_gateway/src/lwm2m/emqx_lwm2m_session.erl index 38f1b59e3..40dc34ba6 100644 --- a/apps/emqx_gateway/src/lwm2m/emqx_lwm2m_session.erl +++ b/apps/emqx_gateway/src/lwm2m/emqx_lwm2m_session.erl @@ -345,7 +345,7 @@ update(#coap_message{options = Opts, payload = Payload} = Msg, WithContext, CmdType, #session{reg_info = OldRegInfo} = Session) -> - Query = maps:get(uri_query, Opts), + Query = maps:get(uri_query, Opts, #{}), RegInfo = append_object_list(Query, Payload), UpdateRegInfo = maps:merge(OldRegInfo, RegInfo), LifeTime = get_lifetime(UpdateRegInfo, OldRegInfo),