From 2eb633d12ed96b90babda1e3ade76941f33375d5 Mon Sep 17 00:00:00 2001 From: Robert Lubos Date: Wed, 1 Jul 2020 14:28:32 +0200 Subject: [PATCH] net: lwm2m: Reset only messages owned by lwm2m context The context should only clear messages it owns, not all of them. Since both context (LwM2M and FOTA) share common message pool, they might interrupt their operation otherwise (i. e. cancel retransmissions). Signed-off-by: Robert Lubos --- subsys/net/lib/lwm2m/lwm2m_engine.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/subsys/net/lib/lwm2m/lwm2m_engine.c b/subsys/net/lib/lwm2m/lwm2m_engine.c index db5ac1af381..0126604d5aa 100644 --- a/subsys/net/lib/lwm2m/lwm2m_engine.c +++ b/subsys/net/lib/lwm2m/lwm2m_engine.c @@ -4032,9 +4032,10 @@ int lwm2m_engine_context_close(struct lwm2m_ctx *client_ctx) } } - for (i = 0, msg = messages; i < CONFIG_LWM2M_ENGINE_MAX_MESSAGES; - i++, msg++) { - memset(msg, 0, sizeof(struct lwm2m_message)); + for (i = 0, msg = messages; i < ARRAY_SIZE(messages); i++, msg++) { + if (msg->ctx == client_ctx) { + lwm2m_reset_message(msg, true); + } } coap_pendings_clear(client_ctx->pendings,