mirror of
https://github.com/espressif/openthread.git
synced 2026-09-18 07:00:08 +00:00
Only handle Network Data TLV when Leader Data TLV is also included. (#1016)
This commit is contained in:
@@ -2575,7 +2575,7 @@ ThreadError Mle::HandleChildUpdateRequest(const Message &aMessage, const Ip6::Me
|
|||||||
ChallengeTlv challenge;
|
ChallengeTlv challenge;
|
||||||
TlvRequestTlv tlvRequest;
|
TlvRequestTlv tlvRequest;
|
||||||
uint8_t dataRequestTlvs[] = {Tlv::kNetworkData};
|
uint8_t dataRequestTlvs[] = {Tlv::kNetworkData};
|
||||||
uint8_t tlvs[kMaxResponseTlvs];
|
uint8_t tlvs[kMaxResponseTlvs] = {};
|
||||||
uint8_t numTlvs = 0;
|
uint8_t numTlvs = 0;
|
||||||
|
|
||||||
otLogInfoMle("Received Child Update Request from parent");
|
otLogInfoMle("Received Child Update Request from parent");
|
||||||
@@ -2597,15 +2597,15 @@ ThreadError Mle::HandleChildUpdateRequest(const Message &aMessage, const Ip6::Me
|
|||||||
{
|
{
|
||||||
mRetrieveNewNetworkData = true;
|
mRetrieveNewNetworkData = true;
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
// Network Data
|
// Network Data
|
||||||
if (Tlv::GetTlv(aMessage, Tlv::kNetworkData, sizeof(networkData), networkData) == kThreadError_None)
|
if (Tlv::GetTlv(aMessage, Tlv::kNetworkData, sizeof(networkData), networkData) == kThreadError_None)
|
||||||
{
|
{
|
||||||
VerifyOrExit(networkData.IsValid(), error = kThreadError_Parse);
|
VerifyOrExit(networkData.IsValid(), error = kThreadError_Parse);
|
||||||
mNetworkData.SetNetworkData(leaderData.GetDataVersion(), leaderData.GetStableDataVersion(),
|
mNetworkData.SetNetworkData(leaderData.GetDataVersion(), leaderData.GetStableDataVersion(),
|
||||||
(mDeviceMode & ModeTlv::kModeFullNetworkData) == 0,
|
(mDeviceMode & ModeTlv::kModeFullNetworkData) == 0,
|
||||||
networkData.GetNetworkData(), networkData.GetLength());
|
networkData.GetNetworkData(), networkData.GetLength());
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// TLV Request
|
// TLV Request
|
||||||
|
|||||||
Reference in New Issue
Block a user