fix that FFD device could not succeed to act as REED (#114)

This commit is contained in:
rongli
2016-06-08 09:20:25 -07:00
committed by Jonathan Hui
parent c1d425b918
commit fba6f03d7e
2 changed files with 4 additions and 4 deletions
+3 -1
View File
@@ -1684,9 +1684,11 @@ ThreadError Mle::HandleChildIdResponse(const Message &aMessage, const Ip6::Messa
SuccessOrExit(error = SetStateChild(shortAddress.GetRloc16()));
// Route
if (Tlv::GetTlv(aMessage, Tlv::kRoute, sizeof(route), route) == kThreadError_None)
if ((Tlv::GetTlv(aMessage, Tlv::kRoute, sizeof(route), route) == kThreadError_None) &&
(mDeviceMode & ModeTlv::kModeFFD))
{
numRouters = 0;
SuccessOrExit(error = mMleRouter.ProcessRouteTlv(route));
for (int i = 0; i < kMaxRouterId; i++)
{
+1 -3
View File
@@ -1112,9 +1112,7 @@ ThreadError MleRouter::HandleAdvertisement(const Message &aMessage, const Ip6::M
SuccessOrExit(error = Tlv::GetTlv(aMessage, Tlv::kRoute, sizeof(route), route));
VerifyOrExit(route.IsValid(), error = kThreadError_Parse);
if ((GetDeviceState() == kDeviceStateChild &&
memcmp(&mParent.mMacAddr, &macAddr, sizeof(mParent.mMacAddr)) == 0) ||
GetDeviceState() == kDeviceStateRouter || GetDeviceState() == kDeviceStateLeader)
if (mDeviceMode & ModeTlv::kModeFFD)
{
SuccessOrExit(error = ProcessRouteTlv(route));
}