mirror of
https://github.com/espressif/openthread.git
synced 2026-08-19 17:09:51 +00:00
[meshcop] add commissioner aloc (#3123)
This commit is contained in:
@@ -60,7 +60,6 @@ namespace MeshCoP {
|
||||
|
||||
Commissioner::Commissioner(Instance &aInstance)
|
||||
: InstanceLocator(aInstance)
|
||||
, mState(OT_COMMISSIONER_STATE_DISABLED)
|
||||
, mJoinerPort(0)
|
||||
, mJoinerRloc(0)
|
||||
, mJoinerExpirationTimer(aInstance, HandleJoinerExpirationTimer, this)
|
||||
@@ -73,6 +72,7 @@ Commissioner::Commissioner(Instance &aInstance)
|
||||
, mAnnounceBegin(aInstance)
|
||||
, mEnergyScan(aInstance)
|
||||
, mPanIdQuery(aInstance)
|
||||
, mState(OT_COMMISSIONER_STATE_DISABLED)
|
||||
{
|
||||
memset(mJoiners, 0, sizeof(mJoiners));
|
||||
}
|
||||
@@ -121,6 +121,7 @@ otError Commissioner::Stop(void)
|
||||
GetNetif().GetCoapSecure().Stop();
|
||||
|
||||
mState = OT_COMMISSIONER_STATE_DISABLED;
|
||||
GetNetif().RemoveUnicastAddress(mCommissionerAloc);
|
||||
GetNotifier().Signal(OT_CHANGED_COMMISSIONER_STATE);
|
||||
RemoveCoapResources();
|
||||
ClearJoiners();
|
||||
@@ -649,12 +650,13 @@ void Commissioner::HandleLeaderPetitionResponse(Coap::Header * aHeader,
|
||||
const Ip6::MessageInfo *aMessageInfo,
|
||||
otError aResult)
|
||||
{
|
||||
(void)aMessageInfo;
|
||||
|
||||
ThreadNetif & netif = GetNetif();
|
||||
StateTlv state;
|
||||
CommissionerSessionIdTlv sessionId;
|
||||
bool retransmit = false;
|
||||
|
||||
OT_UNUSED_VARIABLE(aMessageInfo);
|
||||
|
||||
VerifyOrExit(mState == OT_COMMISSIONER_STATE_PETITION, mState = OT_COMMISSIONER_STATE_DISABLED);
|
||||
VerifyOrExit(aResult == OT_ERROR_NONE && aHeader->GetCode() == OT_COAP_CODE_CHANGED, retransmit = true);
|
||||
|
||||
@@ -669,6 +671,9 @@ void Commissioner::HandleLeaderPetitionResponse(Coap::Header * aHeader,
|
||||
VerifyOrExit(sessionId.IsValid());
|
||||
mSessionId = sessionId.GetCommissionerSessionId();
|
||||
|
||||
netif.GetMle().GetCommissionerAloc(mCommissionerAloc.GetAddress(), mSessionId);
|
||||
netif.AddUnicastAddress(mCommissionerAloc);
|
||||
|
||||
AddCoapResources();
|
||||
mState = OT_COMMISSIONER_STATE_ACTIVE;
|
||||
|
||||
@@ -772,6 +777,7 @@ exit:
|
||||
|
||||
if (mState != OT_COMMISSIONER_STATE_ACTIVE)
|
||||
{
|
||||
GetNetif().RemoveUnicastAddress(mCommissionerAloc);
|
||||
RemoveCoapResources();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -324,8 +324,6 @@ private:
|
||||
otError SendPetition(void);
|
||||
otError SendKeepAlive(void);
|
||||
|
||||
otCommissionerState mState;
|
||||
|
||||
struct Joiner
|
||||
{
|
||||
Mac::ExtAddress mEui64;
|
||||
@@ -352,6 +350,10 @@ private:
|
||||
AnnounceBeginClient mAnnounceBegin;
|
||||
EnergyScanClient mEnergyScan;
|
||||
PanIdQueryClient mPanIdQuery;
|
||||
|
||||
Ip6::NetifUnicastAddress mCommissionerAloc;
|
||||
|
||||
otCommissionerState mState;
|
||||
};
|
||||
|
||||
} // namespace MeshCoP
|
||||
|
||||
Reference in New Issue
Block a user