From e7837eb104eaeadb719b7f996d0d53cbd9ee4ef6 Mon Sep 17 00:00:00 2001 From: Abtin Keshavarzian Date: Wed, 3 Jul 2024 15:19:03 -0700 Subject: [PATCH] [mesh-forwarder] use `RemoveMessageIfNoPendingTx()` on direct tx fails (#10471) This commit updates `PrepareNextDirectTransmission()` to use `RemoveMessageIfNoPendingTx()` if a message cannot be prepared for direct transmission. This ensures the message is not dequeued and freed if it is also queued for indirect transmission. --- src/core/thread/mesh_forwarder.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/core/thread/mesh_forwarder.cpp b/src/core/thread/mesh_forwarder.cpp index f5b1afe56..2452c94f9 100644 --- a/src/core/thread/mesh_forwarder.cpp +++ b/src/core/thread/mesh_forwarder.cpp @@ -654,7 +654,7 @@ Message *MeshForwarder::PrepareNextDirectTransmission(void) #endif LogMessage(kMessageDrop, *curMessage, error); FinalizeMessageDirectTx(*curMessage, error); - mSendQueue.DequeueAndFree(*curMessage); + RemoveMessageIfNoPendingTx(*curMessage); continue; } }