From 0ab6bc6626f0dc80dd6a6e6ea632a18b61efd9a6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marin=20Jurjevi=C4=87?= Date: Tue, 15 Mar 2022 15:32:41 +0100 Subject: [PATCH] net: lwm2m: update client tx timestamp before sending message MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Update client tx timestamp right after message is added to list of outgoing messages. Delay between when message is generated and sent is negligible. This will prevents bugs that appear when using queue mode, where internal engine logic depends on timestamp being updated when message is generated. Signed-off-by: Marin Jurjević --- subsys/net/lib/lwm2m/lwm2m_engine.c | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/subsys/net/lib/lwm2m/lwm2m_engine.c b/subsys/net/lib/lwm2m/lwm2m_engine.c index 45f789a6cb9..a62533694f5 100644 --- a/subsys/net/lib/lwm2m/lwm2m_engine.c +++ b/subsys/net/lib/lwm2m/lwm2m_engine.c @@ -1421,6 +1421,12 @@ cleanup: int lwm2m_send_message_async(struct lwm2m_message *msg) { sys_slist_append(&msg->ctx->pending_sends, &msg->node); + + if (IS_ENABLED(CONFIG_LWM2M_RD_CLIENT_SUPPORT) && + IS_ENABLED(CONFIG_LWM2M_QUEUE_MODE_ENABLED)) { + engine_update_tx_time(); + } + return 0; } @@ -1452,11 +1458,6 @@ static int lwm2m_send_message(struct lwm2m_message *msg) lwm2m_reset_message(msg, true); } - if (IS_ENABLED(CONFIG_LWM2M_RD_CLIENT_SUPPORT) && - IS_ENABLED(CONFIG_LWM2M_QUEUE_MODE_ENABLED)) { - engine_update_tx_time(); - } - return 0; }