From d88ae3cfd89f60a57af139de696f5f4f33e899fa Mon Sep 17 00:00:00 2001 From: rongli Date: Thu, 4 Aug 2016 09:23:51 +0800 Subject: [PATCH] fix sed issue - unable to reattach when the parent is removed (#326) --- src/core/thread/mesh_forwarder.cpp | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/src/core/thread/mesh_forwarder.cpp b/src/core/thread/mesh_forwarder.cpp index c9a57a130..94ee8b029 100644 --- a/src/core/thread/mesh_forwarder.cpp +++ b/src/core/thread/mesh_forwarder.cpp @@ -957,6 +957,7 @@ void MeshForwarder::HandleSentFrame(Mac::Frame &aFrame) { Mac::Address macDest; Child *child; + Neighbor *neighbor; mSendBusy = false; @@ -1004,6 +1005,17 @@ void MeshForwarder::HandleSentFrame(Mac::Frame &aFrame) } } + if (mSendMessage->GetType() == Message::kTypeMacDataPoll) + { + neighbor = mMle.GetParent(); + + if (neighbor->mState == Neighbor::kStateInvalid) + { + mPollTimer.Stop(); + mMle.BecomeDetached(); + } + } + if (mSendMessage->GetDirectTransmission() == false && mSendMessage->IsChildPending() == false) { mSendQueue.Dequeue(*mSendMessage);