From d0dd1fbf5ceebd45d868d3556c762289f9df0010 Mon Sep 17 00:00:00 2001 From: Pieterjan Camerlynck Date: Sun, 28 Jul 2019 16:01:34 +0200 Subject: [PATCH] net: lwm2m: cancel pending retransmit work when closing context Currently the retransmit_work is not cancelled when closing a context, making it operate on an invalid context. LwM2M RD client also closes the context and initializes it again when registration with the server fails, overwriting the active timeout and breaking the timeout dlist. Signed-off-by: Pieterjan Camerlynck --- subsys/net/lib/lwm2m/lwm2m_engine.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/subsys/net/lib/lwm2m/lwm2m_engine.c b/subsys/net/lib/lwm2m/lwm2m_engine.c index b56bf37a4af..66ac22057e5 100644 --- a/subsys/net/lib/lwm2m/lwm2m_engine.c +++ b/subsys/net/lib/lwm2m/lwm2m_engine.c @@ -3821,6 +3821,9 @@ int lwm2m_engine_context_close(struct lwm2m_ctx *client_ctx) sys_snode_t *prev_node = NULL; int sock_fd = client_ctx->sock_fd; + /* Cancel pending retransmit work */ + k_delayed_work_cancel(&client_ctx->retransmit_work); + /* Remove observes for this context */ SYS_SLIST_FOR_EACH_CONTAINER_SAFE(&engine_observer_list, obs, tmp, node) {