Skip to content

Commit 7cee4cf

Browse files
Juha Heiskanencarlescufi
authored andcommitted
net: lwm2m: LwM2M RD client message allocate update
Updated message handler that it free possible old allocated message. Added message free also to RD stop and idle state. Signed-off-by: Juha Heiskanen <[email protected]>
1 parent 8279489 commit 7cee4cf

File tree

1 file changed

+11
-2
lines changed

1 file changed

+11
-2
lines changed

subsys/net/lib/lwm2m/lwm2m_rd_client.c

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -137,14 +137,21 @@ static enum sm_engine_state suspended_client_state;
137137
static struct lwm2m_message *rd_get_message(void)
138138
{
139139
if (client.rd_message.ctx) {
140-
return NULL;
140+
/* Free old message */
141+
lwm2m_reset_message(&client.rd_message, true);
141142
}
142143

143144
client.rd_message.ctx = client.ctx;
144145
return &client.rd_message;
145146

146147
}
147148

149+
static void rd_client_message_free(void)
150+
{
151+
lwm2m_reset_message(lwm2m_get_ongoing_rd_msg(), true);
152+
}
153+
154+
148155
struct lwm2m_message *lwm2m_get_ongoing_rd_msg(void)
149156
{
150157
if (!client.ctx || !client.rd_message.ctx) {
@@ -1200,6 +1207,7 @@ static void lwm2m_rd_client_service(struct k_work *work)
12001207
if (client.ctx->sock_fd > -1) {
12011208
lwm2m_engine_stop(client.ctx);
12021209
}
1210+
rd_client_message_free();
12031211
break;
12041212

12051213
case ENGINE_INIT:
@@ -1332,6 +1340,7 @@ int lwm2m_rd_client_stop(struct lwm2m_ctx *client_ctx,
13321340
}
13331341

13341342
client.ctx->event_cb = event_cb;
1343+
rd_client_message_free();
13351344

13361345
if (sm_is_registered() && deregister) {
13371346
set_sm_state(ENGINE_DEREGISTER);
@@ -1403,7 +1412,7 @@ int lwm2m_rd_client_resume(void)
14031412
suspended_client_state = ENGINE_REGISTRATION_DONE;
14041413
}
14051414
/* Clear Possible pending RD Client message */
1406-
lwm2m_reset_message(lwm2m_get_ongoing_rd_msg(), true);
1415+
rd_client_message_free();
14071416

14081417
client.engine_state = suspended_client_state;
14091418

0 commit comments

Comments
 (0)