From 23cff065cc4c3075768461de0824b28df0a0c370 Mon Sep 17 00:00:00 2001 From: Jonathan Hui Date: Thu, 28 Jul 2016 15:38:06 -0700 Subject: [PATCH] Set network data after setting the child state. (#299) This fixes a bug that prevents an MLE Child Update message from being sent immediately after attaching as a child. --- src/core/thread/mle.cpp | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/src/core/thread/mle.cpp b/src/core/thread/mle.cpp index 6d9958f7f..7b5649a35 100644 --- a/src/core/thread/mle.cpp +++ b/src/core/thread/mle.cpp @@ -1723,9 +1723,6 @@ ThreadError Mle::HandleChildIdResponse(const Message &aMessage, const Ip6::Messa // Network Data SuccessOrExit(error = Tlv::GetTlv(aMessage, Tlv::kNetworkData, sizeof(networkData), networkData)); - mNetworkData.SetNetworkData(leaderData.GetDataVersion(), leaderData.GetStableDataVersion(), - (mDeviceMode & ModeTlv::kModeFullNetworkData) == 0, - networkData.GetNetworkData(), networkData.GetLength()); // Parent Attach Success mParentRequestTimer.Stop(); @@ -1745,6 +1742,10 @@ ThreadError Mle::HandleChildIdResponse(const Message &aMessage, const Ip6::Messa mParent.mValid.mRloc16 = sourceAddress.GetRloc16(); SuccessOrExit(error = SetStateChild(shortAddress.GetRloc16())); + mNetworkData.SetNetworkData(leaderData.GetDataVersion(), leaderData.GetStableDataVersion(), + (mDeviceMode & ModeTlv::kModeFullNetworkData) == 0, + networkData.GetNetworkData(), networkData.GetLength()); + // Route if ((Tlv::GetTlv(aMessage, Tlv::kRoute, sizeof(route), route) == kThreadError_None) && (mDeviceMode & ModeTlv::kModeFFD))