mirror of
https://github.com/espressif/openthread.git
synced 2026-07-27 06:17:47 +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);
|
||||
|
||||
VerifyOrExit(aResult == kErrorNone && aMessage->GetCode() == Coap::kCodeChanged);
|
||||
LogInfo("Received %s response", UriToString<kUriCommissionerSet>());
|
||||
Error error;
|
||||
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:
|
||||
return;
|
||||
LogInfo("Received %s response: %s", UriToString<kUriCommissionerSet>(),
|
||||
error == kErrorNone ? StateTlv::StateToString(static_cast<StateTlv::State>(state)) : ErrorToString(error));
|
||||
}
|
||||
|
||||
Error Commissioner::SendPetition(void)
|
||||
|
||||
@@ -315,23 +315,12 @@ void DatasetManager::HandleMgmtSetResponse(Coap::Message *aMessage, const Ip6::M
|
||||
uint8_t state;
|
||||
|
||||
SuccessOrExit(error = aError);
|
||||
VerifyOrExit(Tlv::Find<StateTlv>(*aMessage, state) == kErrorNone, error = kErrorParse);
|
||||
|
||||
switch (state)
|
||||
{
|
||||
case StateTlv::kReject:
|
||||
error = kErrorRejected;
|
||||
break;
|
||||
case StateTlv::kAccept:
|
||||
error = kErrorNone;
|
||||
break;
|
||||
default:
|
||||
error = kErrorParse;
|
||||
break;
|
||||
}
|
||||
VerifyOrExit(Tlv::Find<StateTlv>(*aMessage, state) == kErrorNone && state != StateTlv::kPending,
|
||||
error = kErrorParse);
|
||||
|
||||
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;
|
||||
|
||||
|
||||
@@ -211,6 +211,20 @@ void ChannelTlv::SetChannel(uint16_t 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
|
||||
{
|
||||
const ChannelMaskEntryBase *cur = GetFirstEntry();
|
||||
|
||||
@@ -1087,6 +1087,16 @@ public:
|
||||
kPending = 0, ///< Pending
|
||||
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