mirror of
https://github.com/espressif/openthread.git
synced 2026-08-08 19:57:46 +00:00
[border-agent] process Keep Alive messages only for active commissioner (#10750)
This commit updates how Keep Alive messages are handled by the Border Agent. After establishing a secure session, a device has `TIMEOUT_COMM_PET` (50 seconds) to take any action, including sending a petition to become an Active Commissioner. This change ensures that Keep Alive messages are ignored before a device becomes an Active Commissioner, preventing candidates from extending their sessions. Keep Alive messages are now processed only for Active Commissioners (BA in `kStateAccepted` state), aligning the implementation with the Thread specification.
This commit is contained in:
@@ -493,7 +493,7 @@ template <> void BorderAgent::HandleTmf<kUriPendingGet>(Coap::Message &aMessage,
|
||||
template <>
|
||||
void BorderAgent::HandleTmf<kUriCommissionerKeepAlive>(Coap::Message &aMessage, const Ip6::MessageInfo &aMessageInfo)
|
||||
{
|
||||
VerifyOrExit(mState != kStateStopped);
|
||||
VerifyOrExit(mState == kStateAccepted);
|
||||
|
||||
SuccessOrExit(ForwardToLeader(aMessage, aMessageInfo, kUriLeaderKeepAlive));
|
||||
mTimer.Start(kKeepAliveTimeout);
|
||||
@@ -747,7 +747,7 @@ void BorderAgent::HandleTimeout(void)
|
||||
if (Get<Tmf::SecureAgent>().IsConnected())
|
||||
{
|
||||
Get<Tmf::SecureAgent>().Disconnect();
|
||||
LogWarn("Reset commissioner session");
|
||||
LogWarn("Reset secure session");
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user