[meshcop] update Border Agent Locator TLV on keep alives (#2596)

This commit is contained in:
Jonathan Hui
2018-03-07 17:45:42 +00:00
committed by GitHub
parent 63245f67f0
commit 3e4ed6cc98
+16
View File
@@ -201,6 +201,22 @@ void Leader::HandleKeepAlive(Coap::Header &aHeader, Message &aMessage, const Ip6
}
else
{
NetworkData::Leader & netdata = GetNetif().GetNetworkDataLeader();
BorderAgentLocatorTlv *borderAgentLocator;
uint16_t rloc;
borderAgentLocator =
static_cast<BorderAgentLocatorTlv *>(netdata.GetCommissioningDataSubTlv(Tlv::kBorderAgentLocator));
assert(borderAgentLocator != NULL);
rloc = HostSwap16(aMessageInfo.GetPeerAddr().mFields.m16[7]);
if (borderAgentLocator->GetBorderAgentLocator() != rloc)
{
borderAgentLocator->SetBorderAgentLocator(HostSwap16(aMessageInfo.GetPeerAddr().mFields.m16[7]));
netdata.IncrementVersion();
}
responseState = StateTlv::kAccept;
mTimer.Start(TimerMilli::SecToMsec(kTimeoutLeaderPetition));
}