[meshcop] print TLV State after receiving responses (#9350)

This commit is contained in:
Karol Witusik
2023-08-29 09:51:08 -07:00
committed by GitHub
parent 98292673fb
commit e4d953c9bf
4 changed files with 38 additions and 18 deletions
+10 -3
View File
@@ -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)
+4 -15
View File
@@ -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;
+14
View File
@@ -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();
+10
View File
@@ -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);
};
/**