mirror of
https://github.com/espressif/openthread.git
synced 2026-10-01 21:37:39 +00:00
[network-data] do not process TMF messages if waiting for sync (#8332)
This commit is contained in:
@@ -133,12 +133,10 @@ template <> void Leader::HandleTmf<kUriServerData>(Coap::Message &aMessage, cons
|
|||||||
ThreadNetworkDataTlv networkDataTlv;
|
ThreadNetworkDataTlv networkDataTlv;
|
||||||
uint16_t rloc16;
|
uint16_t rloc16;
|
||||||
|
|
||||||
VerifyOrExit(Get<Mle::Mle>().IsLeader());
|
VerifyOrExit(Get<Mle::Mle>().IsLeader() && !mWaitingForNetDataSync);
|
||||||
|
|
||||||
LogInfo("Received network data registration");
|
LogInfo("Received network data registration");
|
||||||
|
|
||||||
VerifyOrExit(!mWaitingForNetDataSync);
|
|
||||||
|
|
||||||
VerifyOrExit(aMessageInfo.GetPeerAddr().GetIid().IsRoutingLocator());
|
VerifyOrExit(aMessageInfo.GetPeerAddr().GetIid().IsRoutingLocator());
|
||||||
|
|
||||||
switch (Tlv::Find<ThreadRloc16Tlv>(aMessage, rloc16))
|
switch (Tlv::Find<ThreadRloc16Tlv>(aMessage, rloc16))
|
||||||
@@ -185,10 +183,9 @@ template <> void Leader::HandleTmf<kUriCommissionerSet>(Coap::Message &aMessage,
|
|||||||
MeshCoP::Tlv *cur;
|
MeshCoP::Tlv *cur;
|
||||||
MeshCoP::Tlv *end;
|
MeshCoP::Tlv *end;
|
||||||
|
|
||||||
VerifyOrExit(Get<Mle::Mle>().IsLeader());
|
VerifyOrExit(Get<Mle::Mle>().IsLeader() && !mWaitingForNetDataSync);
|
||||||
|
|
||||||
VerifyOrExit(length <= sizeof(tlvs));
|
VerifyOrExit(length <= sizeof(tlvs));
|
||||||
VerifyOrExit(Get<Mle::MleRouter>().IsLeader());
|
|
||||||
|
|
||||||
aMessage.ReadBytes(offset, tlvs, length);
|
aMessage.ReadBytes(offset, tlvs, length);
|
||||||
|
|
||||||
@@ -275,7 +272,7 @@ template <> void Leader::HandleTmf<kUriCommissionerGet>(Coap::Message &aMessage,
|
|||||||
uint16_t length = 0;
|
uint16_t length = 0;
|
||||||
uint16_t offset;
|
uint16_t offset;
|
||||||
|
|
||||||
VerifyOrExit(Get<Mle::Mle>().IsLeader());
|
VerifyOrExit(Get<Mle::Mle>().IsLeader() && !mWaitingForNetDataSync);
|
||||||
|
|
||||||
SuccessOrExit(Tlv::FindTlvValueOffset(aMessage, MeshCoP::Tlv::kGet, offset, length));
|
SuccessOrExit(Tlv::FindTlvValueOffset(aMessage, MeshCoP::Tlv::kGet, offset, length));
|
||||||
aMessage.SetOffset(offset);
|
aMessage.SetOffset(offset);
|
||||||
|
|||||||
Reference in New Issue
Block a user