From 205f52fe24ea531579f1f09492e87b1644bc3590 Mon Sep 17 00:00:00 2001 From: Jon Shallow Date: Fri, 14 Mar 2025 10:44:21 +0000 Subject: [PATCH] Separate Responses: Fix missing con_active decrement New function coap_remove_from_queue_token() in #1600 was missing doing con_active decrements. --- src/coap_net.c | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/src/coap_net.c b/src/coap_net.c index 52568df8..f46c226f 100644 --- a/src/coap_net.c +++ b/src/coap_net.c @@ -2789,6 +2789,12 @@ coap_remove_from_queue_token(coap_queue_t **queue, coap_session_t *session, (*node)->next = NULL; coap_log_debug("** %s: mid=0x%04x: removed (7)\n", coap_session_str(session), (*node)->id); + if ((*node)->pdu->type == COAP_MESSAGE_CON && session->con_active) { + session->con_active--; + if (session->state == COAP_SESSION_STATE_ESTABLISHED) + /* Flush out any entries on session->delayqueue */ + coap_session_connected(session); + } return 1; } @@ -2809,6 +2815,12 @@ coap_remove_from_queue_token(coap_queue_t **queue, coap_session_t *session, *node = q; coap_log_debug("** %s: mid=0x%04x: removed (8)\n", coap_session_str(session), (*node)->id); + if (q->pdu->type == COAP_MESSAGE_CON && session->con_active) { + session->con_active--; + if (session->state == COAP_SESSION_STATE_ESTABLISHED) + /* Flush out any entries on session->delayqueue */ + coap_session_connected(session); + } return 1; }