mirror of
https://github.com/espressif/openthread.git
synced 2026-10-01 13:27:42 +00:00
[meshcop] print TLV State after receiving responses (#9350)
This commit is contained in:
@@ -767,11 +767,18 @@ void Commissioner::HandleMgmtCommissionerSetResponse(Coap::Message *aMe
|
|||||||
{
|
{
|
||||||
OT_UNUSED_VARIABLE(aMessageInfo);
|
OT_UNUSED_VARIABLE(aMessageInfo);
|
||||||
|
|
||||||
VerifyOrExit(aResult == kErrorNone && aMessage->GetCode() == Coap::kCodeChanged);
|
Error error;
|
||||||
LogInfo("Received %s response", UriToString<kUriCommissionerSet>());
|
uint8_t state;
|
||||||
|
|
||||||
|
SuccessOrExit(error = aResult);
|
||||||
|
VerifyOrExit(aMessage->GetCode() == Coap::kCodeChanged && Tlv::Find<StateTlv>(*aMessage, state) == kErrorNone &&
|
||||||
|
state != StateTlv::kPending,
|
||||||
|
error = kErrorParse);
|
||||||
|
|
||||||
|
OT_UNUSED_VARIABLE(error);
|
||||||
exit:
|
exit:
|
||||||
return;
|
LogInfo("Received %s response: %s", UriToString<kUriCommissionerSet>(),
|
||||||
|
error == kErrorNone ? StateTlv::StateToString(static_cast<StateTlv::State>(state)) : ErrorToString(error));
|
||||||
}
|
}
|
||||||
|
|
||||||
Error Commissioner::SendPetition(void)
|
Error Commissioner::SendPetition(void)
|
||||||
|
|||||||
@@ -315,23 +315,12 @@ void DatasetManager::HandleMgmtSetResponse(Coap::Message *aMessage, const Ip6::M
|
|||||||
uint8_t state;
|
uint8_t state;
|
||||||
|
|
||||||
SuccessOrExit(error = aError);
|
SuccessOrExit(error = aError);
|
||||||
VerifyOrExit(Tlv::Find<StateTlv>(*aMessage, state) == kErrorNone, error = kErrorParse);
|
VerifyOrExit(Tlv::Find<StateTlv>(*aMessage, state) == kErrorNone && state != StateTlv::kPending,
|
||||||
|
error = kErrorParse);
|
||||||
switch (state)
|
|
||||||
{
|
|
||||||
case StateTlv::kReject:
|
|
||||||
error = kErrorRejected;
|
|
||||||
break;
|
|
||||||
case StateTlv::kAccept:
|
|
||||||
error = kErrorNone;
|
|
||||||
break;
|
|
||||||
default:
|
|
||||||
error = kErrorParse;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
exit:
|
exit:
|
||||||
LogInfo("MGMT_SET finished: %s", ErrorToString(error));
|
LogInfo("MGMT_SET finished: %s",
|
||||||
|
error == kErrorNone ? StateTlv::StateToString(static_cast<StateTlv::State>(state)) : ErrorToString(error));
|
||||||
|
|
||||||
mMgmtPending = false;
|
mMgmtPending = false;
|
||||||
|
|
||||||
|
|||||||
@@ -211,6 +211,20 @@ void ChannelTlv::SetChannel(uint16_t aChannel)
|
|||||||
mChannel = HostSwap16(aChannel);
|
mChannel = HostSwap16(aChannel);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
const char *StateTlv::StateToString(State aState)
|
||||||
|
{
|
||||||
|
static const char *const kStateStrings[] = {
|
||||||
|
"Pending", // (0) kPending,
|
||||||
|
"Accept", // (1) kAccept
|
||||||
|
"Reject", // (2) kReject,
|
||||||
|
};
|
||||||
|
|
||||||
|
static_assert(0 == kPending, "kPending value is incorrect");
|
||||||
|
static_assert(1 == kAccept, "kAccept value is incorrect");
|
||||||
|
|
||||||
|
return aState == kReject ? kStateStrings[2] : kStateStrings[aState];
|
||||||
|
}
|
||||||
|
|
||||||
bool ChannelMaskBaseTlv::IsValid(void) const
|
bool ChannelMaskBaseTlv::IsValid(void) const
|
||||||
{
|
{
|
||||||
const ChannelMaskEntryBase *cur = GetFirstEntry();
|
const ChannelMaskEntryBase *cur = GetFirstEntry();
|
||||||
|
|||||||
@@ -1087,6 +1087,16 @@ public:
|
|||||||
kPending = 0, ///< Pending
|
kPending = 0, ///< Pending
|
||||||
kAccept = 1, ///< Accept
|
kAccept = 1, ///< Accept
|
||||||
};
|
};
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Converts a `State` to a string.
|
||||||
|
*
|
||||||
|
* @param[in] aState An item state.
|
||||||
|
*
|
||||||
|
* @returns A string representation of @p aState.
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
static const char *StateToString(State aState);
|
||||||
};
|
};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
Reference in New Issue
Block a user