Increment the Commissioner Session ID when the Leader resigns an active Commissioner (#1010)

This commit is contained in:
Shu Chen
2016-11-24 07:40:44 -08:00
committed by Jonathan Hui
parent 5e61cc2344
commit 1dfa50876f
2 changed files with 17 additions and 4 deletions
+15 -4
View File
@@ -181,8 +181,7 @@ void Leader::HandleKeepAlive(Coap::Header &aHeader, Message &aMessage, const Ip6
{
responseState = StateTlv::kReject;
mTimer.Stop();
mNetworkData.SetCommissioningData(NULL, 0);
otLogInfoMeshCoP("commissioner inactive");
ResignCommissioner();
}
else
{
@@ -267,12 +266,24 @@ void Leader::HandleTimer(void)
{
VerifyOrExit(mNetif.GetMle().GetDeviceState() == Mle::kDeviceStateLeader, ;);
otLogInfoMeshCoP("commissioner inactive");
mNetworkData.SetCommissioningData(NULL, 0);
ResignCommissioner();
exit:
return;
}
void Leader::ResignCommissioner(void)
{
CommissionerSessionIdTlv mCommissionerSessionId;
mCommissionerSessionId.Init();
mCommissionerSessionId.SetCommissionerSessionId(++mSessionId);
mNetworkData.SetCommissioningData(reinterpret_cast<uint8_t *>(&mCommissionerSessionId),
sizeof(Tlv) + mCommissionerSessionId.GetLength());
otLogInfoMeshCoP("commissioner inactive");
}
} // namespace MeshCoP
} // namespace Thread
+2
View File
@@ -104,6 +104,8 @@ private:
static void HandleUdpReceive(void *aContext, otMessage aMessage, const otMessageInfo *aMessageInfo);
void ResignCommissioner(void);
Coap::Resource mPetition;
Coap::Resource mKeepAlive;
Coap::Server &mCoapServer;