[network-data] do not process TMF messages if waiting for sync (#8332)

This commit is contained in:
Jonathan Hui
2022-10-27 02:08:56 -07:00
committed by GitHub
parent 2a5a926952
commit b9b9c19640
+3 -6
View File
@@ -133,12 +133,10 @@ template <> void Leader::HandleTmf<kUriServerData>(Coap::Message &aMessage, cons
ThreadNetworkDataTlv networkDataTlv;
uint16_t rloc16;
VerifyOrExit(Get<Mle::Mle>().IsLeader());
VerifyOrExit(Get<Mle::Mle>().IsLeader() && !mWaitingForNetDataSync);
LogInfo("Received network data registration");
VerifyOrExit(!mWaitingForNetDataSync);
VerifyOrExit(aMessageInfo.GetPeerAddr().GetIid().IsRoutingLocator());
switch (Tlv::Find<ThreadRloc16Tlv>(aMessage, rloc16))
@@ -185,10 +183,9 @@ template <> void Leader::HandleTmf<kUriCommissionerSet>(Coap::Message &aMessage,
MeshCoP::Tlv *cur;
MeshCoP::Tlv *end;
VerifyOrExit(Get<Mle::Mle>().IsLeader());
VerifyOrExit(Get<Mle::Mle>().IsLeader() && !mWaitingForNetDataSync);
VerifyOrExit(length <= sizeof(tlvs));
VerifyOrExit(Get<Mle::MleRouter>().IsLeader());
aMessage.ReadBytes(offset, tlvs, length);
@@ -275,7 +272,7 @@ template <> void Leader::HandleTmf<kUriCommissionerGet>(Coap::Message &aMessage,
uint16_t length = 0;
uint16_t offset;
VerifyOrExit(Get<Mle::Mle>().IsLeader());
VerifyOrExit(Get<Mle::Mle>().IsLeader() && !mWaitingForNetDataSync);
SuccessOrExit(Tlv::FindTlvValueOffset(aMessage, MeshCoP::Tlv::kGet, offset, length));
aMessage.SetOffset(offset);