mirror of
https://github.com/espressif/openthread.git
synced 2026-08-19 00:49:53 +00:00
[ip6] enqueue reassembly buffer immediately (#6177)
So that `mReassemblyList.Dequeue()` is always valid on any error.
This commit is contained in:
@@ -726,7 +726,9 @@ otError Ip6::HandleFragment(Message &aMessage, Netif *aNetif, MessageInfo &aMess
|
||||
|
||||
if (message == nullptr)
|
||||
{
|
||||
otLogDebgIp6("start reassembly");
|
||||
VerifyOrExit((message = NewMessage(0)) != nullptr, error = OT_ERROR_NO_BUFS);
|
||||
mReassemblyList.Enqueue(*message);
|
||||
SuccessOrExit(error = message->SetLength(aMessage.GetOffset()));
|
||||
|
||||
message->SetTimeout(kIp6ReassemblyTimeout);
|
||||
@@ -738,10 +740,6 @@ otError Ip6::HandleFragment(Message &aMessage, Netif *aNetif, MessageInfo &aMess
|
||||
OT_ASSERT(assertValue == aMessage.GetOffset());
|
||||
|
||||
Get<TimeTicker>().RegisterReceiver(TimeTicker::kIp6FragmentReassembler);
|
||||
|
||||
mReassemblyList.Enqueue(*message);
|
||||
|
||||
otLogDebgIp6("start reassembly.");
|
||||
}
|
||||
|
||||
// increase message buffer if necessary
|
||||
|
||||
Reference in New Issue
Block a user