[network-data] do not process TMF messages if waiting for sync (#8332)
diff --git a/src/core/thread/network_data_leader_ftd.cpp b/src/core/thread/network_data_leader_ftd.cpp
index 27654e3..e8b3afa 100644
--- a/src/core/thread/network_data_leader_ftd.cpp
+++ b/src/core/thread/network_data_leader_ftd.cpp
@@ -133,12 +133,10 @@
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 @@
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 @@
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);