mirror of
https://github.com/espressif/openthread.git
synced 2026-08-09 20:27:47 +00:00
[coap] add checks for OT_ERROR_NO_BUFS (#3904)
- Update Coap::Message::SetToken() to return error. - Update Coap::Message::SetDefaultResponseHeader() to return error. - Add error checking around calls to the above.
This commit is contained in:
@@ -350,8 +350,11 @@ void otCoapMessageInit(otMessage *aMessage, otCoapType aType, otCoapCode aCode);
|
||||
* @param[in] aToken A pointer to the Token value.
|
||||
* @param[in] aTokenLength The Length of @p aToken.
|
||||
*
|
||||
* @retval OT_ERROR_NONE Successfully set the Token value.
|
||||
* @retval OT_ERROR_NO_BUFS Insufficient buffers to set the Token value.
|
||||
*
|
||||
*/
|
||||
void otCoapMessageSetToken(otMessage *aMessage, const uint8_t *aToken, uint8_t aTokenLength);
|
||||
otError otCoapMessageSetToken(otMessage *aMessage, const uint8_t *aToken, uint8_t aTokenLength);
|
||||
|
||||
/**
|
||||
* This function sets the Token length and randomizes its value.
|
||||
|
||||
@@ -217,7 +217,7 @@ otError Coap::ProcessRequest(int argc, char *argv[])
|
||||
|
||||
if (payloadLength > 0)
|
||||
{
|
||||
otCoapMessageSetPayloadMarker(message);
|
||||
SuccessOrExit(error = otCoapMessageSetPayloadMarker(message));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -333,11 +333,12 @@ void Coap::HandleRequest(otMessage *aMessage, const otMessageInfo *aMessageInfo)
|
||||
|
||||
otCoapMessageInit(responseMessage, OT_COAP_TYPE_ACKNOWLEDGMENT, responseCode);
|
||||
otCoapMessageSetMessageId(responseMessage, otCoapMessageGetMessageId(aMessage));
|
||||
otCoapMessageSetToken(responseMessage, otCoapMessageGetToken(aMessage), otCoapMessageGetTokenLength(aMessage));
|
||||
SuccessOrExit(error = otCoapMessageSetToken(responseMessage, otCoapMessageGetToken(aMessage),
|
||||
otCoapMessageGetTokenLength(aMessage)));
|
||||
|
||||
if (otCoapMessageGetCode(aMessage) == OT_COAP_CODE_GET)
|
||||
{
|
||||
otCoapMessageSetPayloadMarker(responseMessage);
|
||||
SuccessOrExit(error = otCoapMessageSetPayloadMarker(responseMessage));
|
||||
SuccessOrExit(error = otMessageAppend(responseMessage, &responseContent, sizeof(responseContent)));
|
||||
}
|
||||
|
||||
|
||||
@@ -267,7 +267,7 @@ otError CoapSecure::ProcessRequest(int argc, char *argv[])
|
||||
|
||||
if (payloadLength > 0)
|
||||
{
|
||||
otCoapMessageSetPayloadMarker(message);
|
||||
SuccessOrExit(error = otCoapMessageSetPayloadMarker(message));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -499,11 +499,12 @@ void CoapSecure::HandleRequest(otMessage *aMessage, const otMessageInfo *aMessag
|
||||
|
||||
otCoapMessageInit(responseMessage, OT_COAP_TYPE_ACKNOWLEDGMENT, responseCode);
|
||||
otCoapMessageSetMessageId(responseMessage, otCoapMessageGetMessageId(aMessage));
|
||||
otCoapMessageSetToken(responseMessage, otCoapMessageGetToken(aMessage), otCoapMessageGetTokenLength(aMessage));
|
||||
SuccessOrExit(error = otCoapMessageSetToken(responseMessage, otCoapMessageGetToken(aMessage),
|
||||
otCoapMessageGetTokenLength(aMessage)));
|
||||
|
||||
if (otCoapMessageGetCode(aMessage) == OT_COAP_CODE_GET)
|
||||
{
|
||||
otCoapMessageSetPayloadMarker(responseMessage);
|
||||
SuccessOrExit(error = otCoapMessageSetPayloadMarker(responseMessage));
|
||||
}
|
||||
|
||||
if (otCoapMessageGetCode(aMessage) == OT_COAP_CODE_GET)
|
||||
@@ -573,7 +574,8 @@ void CoapSecure::DefaultHandler(otMessage *aMessage, const otMessageInfo *aMessa
|
||||
|
||||
otCoapMessageInit(responseMessage, OT_COAP_TYPE_NON_CONFIRMABLE, OT_COAP_CODE_NOT_FOUND);
|
||||
otCoapMessageSetMessageId(responseMessage, otCoapMessageGetMessageId(aMessage));
|
||||
otCoapMessageSetToken(responseMessage, otCoapMessageGetToken(aMessage), otCoapMessageGetTokenLength(aMessage));
|
||||
SuccessOrExit(error = otCoapMessageSetToken(responseMessage, otCoapMessageGetToken(aMessage),
|
||||
otCoapMessageGetTokenLength(aMessage)));
|
||||
|
||||
SuccessOrExit(error = otCoapSecureSendResponse(mInterpreter.mInstance, responseMessage, aMessageInfo));
|
||||
}
|
||||
|
||||
@@ -64,9 +64,9 @@ void otCoapMessageInit(otMessage *aMessage, otCoapType aType, otCoapCode aCode)
|
||||
static_cast<Coap::Message *>(aMessage)->Init(aType, aCode);
|
||||
}
|
||||
|
||||
void otCoapMessageSetToken(otMessage *aMessage, const uint8_t *aToken, uint8_t aTokenLength)
|
||||
otError otCoapMessageSetToken(otMessage *aMessage, const uint8_t *aToken, uint8_t aTokenLength)
|
||||
{
|
||||
static_cast<Coap::Message *>(aMessage)->SetToken(aToken, aTokenLength);
|
||||
return static_cast<Coap::Message *>(aMessage)->SetToken(aToken, aTokenLength);
|
||||
}
|
||||
|
||||
void otCoapMessageGenerateToken(otMessage *aMessage, uint8_t aTokenLength)
|
||||
|
||||
@@ -239,7 +239,7 @@ otError CoapBase::SendHeaderResponse(Message::Code aCode, const Message &aReques
|
||||
break;
|
||||
}
|
||||
|
||||
message->SetToken(aRequest.GetToken(), aRequest.GetTokenLength());
|
||||
SuccessOrExit(error = message->SetToken(aRequest.GetToken(), aRequest.GetTokenLength()));
|
||||
|
||||
SuccessOrExit(error = SendMessage(*message, aMessageInfo));
|
||||
|
||||
|
||||
@@ -49,6 +49,7 @@ void Message::Init(void)
|
||||
SetVersion(kVersion1);
|
||||
SetOffset(0);
|
||||
GetHelpData().mHeaderLength = kMinHeaderLength;
|
||||
|
||||
SetLength(GetHelpData().mHeaderLength);
|
||||
}
|
||||
|
||||
@@ -59,6 +60,18 @@ void Message::Init(Type aType, Code aCode)
|
||||
SetCode(aCode);
|
||||
}
|
||||
|
||||
otError Message::Init(Type aType, Code aCode, const char *aUriPath)
|
||||
{
|
||||
otError error;
|
||||
|
||||
Init(aType, aCode);
|
||||
SuccessOrExit(error = SetToken(kDefaultTokenLength));
|
||||
SuccessOrExit(error = AppendUriPathOptions(aUriPath));
|
||||
|
||||
exit:
|
||||
return error;
|
||||
}
|
||||
|
||||
void Message::Finish(void)
|
||||
{
|
||||
Write(0, GetOptionStart(), &GetHelpData().mHeader);
|
||||
@@ -117,8 +130,8 @@ otError Message::AppendOption(uint16_t aNumber, uint16_t aLength, const void *aV
|
||||
*cur++ = optionLength & 0xff;
|
||||
}
|
||||
|
||||
Append(buf, static_cast<uint16_t>(cur - buf));
|
||||
Append(aValue, aLength);
|
||||
SuccessOrExit(error = Append(buf, static_cast<uint16_t>(cur - buf)));
|
||||
SuccessOrExit(error = Append(aValue, aLength));
|
||||
|
||||
GetHelpData().mOptionLast = aNumber;
|
||||
|
||||
@@ -308,7 +321,7 @@ otError Message::SetPayloadMarker(void)
|
||||
uint8_t marker = 0xff;
|
||||
|
||||
VerifyOrExit(GetLength() < kMaxHeaderLength, error = OT_ERROR_NO_BUFS);
|
||||
Append(&marker, sizeof(marker));
|
||||
SuccessOrExit(error = Append(&marker, sizeof(marker)));
|
||||
GetHelpData().mHeaderLength = GetLength();
|
||||
|
||||
exit:
|
||||
@@ -340,16 +353,17 @@ exit:
|
||||
return error;
|
||||
}
|
||||
|
||||
void Message::SetToken(const uint8_t *aToken, uint8_t aTokenLength)
|
||||
otError Message::SetToken(const uint8_t *aToken, uint8_t aTokenLength)
|
||||
{
|
||||
GetHelpData().mHeader.mVersionTypeToken = (GetHelpData().mHeader.mVersionTypeToken & ~kTokenLengthMask) |
|
||||
((aTokenLength << kTokenLengthOffset) & kTokenLengthMask);
|
||||
memcpy(GetHelpData().mHeader.mToken, aToken, aTokenLength);
|
||||
GetHelpData().mHeaderLength += aTokenLength;
|
||||
SetLength(GetHelpData().mHeaderLength);
|
||||
|
||||
return SetLength(GetHelpData().mHeaderLength);
|
||||
}
|
||||
|
||||
void Message::SetToken(uint8_t aTokenLength)
|
||||
otError Message::SetToken(uint8_t aTokenLength)
|
||||
{
|
||||
uint8_t token[kMaxTokenLength] = {0};
|
||||
|
||||
@@ -357,14 +371,16 @@ void Message::SetToken(uint8_t aTokenLength)
|
||||
|
||||
Random::NonCrypto::FillBuffer(token, aTokenLength);
|
||||
|
||||
SetToken(token, aTokenLength);
|
||||
return SetToken(token, aTokenLength);
|
||||
}
|
||||
|
||||
void Message::SetDefaultResponseHeader(const Message &aRequest)
|
||||
otError Message::SetDefaultResponseHeader(const Message &aRequest)
|
||||
{
|
||||
Init(OT_COAP_TYPE_ACKNOWLEDGMENT, OT_COAP_CODE_CHANGED);
|
||||
|
||||
SetMessageId(aRequest.GetMessageId());
|
||||
SetToken(aRequest.GetToken(), aRequest.GetTokenLength());
|
||||
|
||||
return SetToken(aRequest.GetToken(), aRequest.GetTokenLength());
|
||||
}
|
||||
|
||||
Message *Message::Clone(uint16_t aLength) const
|
||||
|
||||
@@ -110,6 +110,19 @@ public:
|
||||
*/
|
||||
void Init(Type aType, Code aCode);
|
||||
|
||||
/**
|
||||
* This method initializes the CoAP header with specific Type and Code.
|
||||
*
|
||||
* @param[in] aType The Type value.
|
||||
* @param[in] aCode The Code value.
|
||||
* @param[in] aUriPath A pointer to a NULL-terminated string.
|
||||
*
|
||||
* @retval OT_ERROR_NONE Successfully appended the option.
|
||||
* @retval OT_ERROR_NO_BUFS The option length exceeds the buffer size.
|
||||
*
|
||||
*/
|
||||
otError Init(Type aType, Code aCode, const char *aUriPath);
|
||||
|
||||
/**
|
||||
* This method writes header to the message. This must be called before sending the message.
|
||||
*
|
||||
@@ -226,16 +239,22 @@ public:
|
||||
* @param[in] aToken A pointer to the Token value.
|
||||
* @param[in] aTokenLength The Length of @p aToken.
|
||||
*
|
||||
* @retval OT_ERROR_NONE Successfully set the token value.
|
||||
* @retval OT_ERROR_NO_BUFS Insufficient message buffers available to set the token value.
|
||||
*
|
||||
*/
|
||||
void SetToken(const uint8_t *aToken, uint8_t aTokenLength);
|
||||
otError SetToken(const uint8_t *aToken, uint8_t aTokenLength);
|
||||
|
||||
/**
|
||||
* This method sets the Token length and randomizes its value.
|
||||
*
|
||||
* @param[in] aTokenLength The Length of a Token to set.
|
||||
*
|
||||
* @retval OT_ERROR_NONE Successfully set the token value.
|
||||
* @retval OT_ERROR_NO_BUFS Insufficient message buffers available to set the token value.
|
||||
*
|
||||
*/
|
||||
void SetToken(uint8_t aTokenLength);
|
||||
otError SetToken(uint8_t aTokenLength);
|
||||
|
||||
/**
|
||||
* This method checks if Tokens in two CoAP headers are equal.
|
||||
@@ -414,8 +433,11 @@ public:
|
||||
*
|
||||
* @param[in] aRequest The request message.
|
||||
*
|
||||
* @retval OT_ERROR_NONE Successfully set the default response header.
|
||||
* @retval OT_ERROR_NO_BUFS Insufficient message buffers available to set the default response header.
|
||||
*
|
||||
*/
|
||||
void SetDefaultResponseHeader(const Message &aRequest);
|
||||
otError SetDefaultResponseHeader(const Message &aRequest);
|
||||
|
||||
/**
|
||||
* This method checks if a header is an empty message header.
|
||||
|
||||
@@ -70,10 +70,10 @@ otError AnnounceBeginClient::SendRequest(uint32_t aChannelMask,
|
||||
VerifyOrExit(Get<MeshCoP::Commissioner>().IsActive(), error = OT_ERROR_INVALID_STATE);
|
||||
VerifyOrExit((message = MeshCoP::NewMeshCoPMessage(Get<Coap::Coap>())) != NULL, error = OT_ERROR_NO_BUFS);
|
||||
|
||||
message->Init(aAddress.IsMulticast() ? OT_COAP_TYPE_NON_CONFIRMABLE : OT_COAP_TYPE_CONFIRMABLE, OT_COAP_CODE_POST);
|
||||
message->SetToken(Coap::Message::kDefaultTokenLength);
|
||||
message->AppendUriPathOptions(OT_URI_PATH_ANNOUNCE_BEGIN);
|
||||
message->SetPayloadMarker();
|
||||
SuccessOrExit(error =
|
||||
message->Init(aAddress.IsMulticast() ? OT_COAP_TYPE_NON_CONFIRMABLE : OT_COAP_TYPE_CONFIRMABLE,
|
||||
OT_COAP_CODE_POST, OT_URI_PATH_ANNOUNCE_BEGIN));
|
||||
SuccessOrExit(error = message->SetPayloadMarker());
|
||||
|
||||
sessionId.Init();
|
||||
sessionId.SetCommissionerSessionId(Get<MeshCoP::Commissioner>().GetSessionId());
|
||||
|
||||
@@ -103,8 +103,11 @@ public:
|
||||
* @param[out] aHeader A refernce to the response header.
|
||||
* @param[in] aCode The response code to fill in the response header.
|
||||
*
|
||||
* @retval OT_ERROR_NONE Successfully generated the response header.
|
||||
* @retval OT_ERROR_NO_BUFS Insufficient message buffers available to generate the response header.
|
||||
*
|
||||
*/
|
||||
void ToHeader(Coap::Message &aMessage, Coap::Message::Code aCode)
|
||||
otError ToHeader(Coap::Message &aMessage, Coap::Message::Code aCode)
|
||||
{
|
||||
if (mType == (OT_COAP_TYPE_NON_CONFIRMABLE >> Coap::Message::kTypeOffset) || mSeparate)
|
||||
{
|
||||
@@ -116,7 +119,8 @@ public:
|
||||
}
|
||||
|
||||
aMessage.SetMessageId(mSeparate ? 0 : mMessageId);
|
||||
aMessage.SetToken(mToken, mTokenLength);
|
||||
|
||||
return aMessage.SetToken(mToken, mTokenLength);
|
||||
}
|
||||
|
||||
private:
|
||||
@@ -161,7 +165,7 @@ static void SendErrorMessage(Coap::CoapSecure &aCoapSecure, ForwardContext &aFor
|
||||
Coap::Message *message = NULL;
|
||||
|
||||
VerifyOrExit((message = NewMeshCoPMessage(aCoapSecure)) != NULL, error = OT_ERROR_NO_BUFS);
|
||||
aForwardContext.ToHeader(*message, CoapCodeFromError(error));
|
||||
SuccessOrExit(error = aForwardContext.ToHeader(*message, CoapCodeFromError(error)));
|
||||
SuccessOrExit(error = aCoapSecure.SendMessage(*message, aCoapSecure.GetPeerAddress()));
|
||||
|
||||
exit:
|
||||
@@ -193,7 +197,7 @@ static void SendErrorMessage(Coap::CoapSecure &aCoapSecure, const Coap::Message
|
||||
}
|
||||
|
||||
message->SetMessageId(aSeparate ? 0 : aRequest.GetMessageId());
|
||||
message->SetToken(aRequest.GetToken(), aRequest.GetTokenLength());
|
||||
SuccessOrExit(error = message->SetToken(aRequest.GetToken(), aRequest.GetTokenLength()));
|
||||
|
||||
SuccessOrExit(error = aCoapSecure.SendMessage(*message, aCoapSecure.GetPeerAddress()));
|
||||
|
||||
@@ -248,11 +252,11 @@ void BorderAgent::HandleCoapResponse(void * aContext,
|
||||
}
|
||||
}
|
||||
|
||||
forwardContext.ToHeader(*message, response->GetCode());
|
||||
SuccessOrExit(error = forwardContext.ToHeader(*message, response->GetCode()));
|
||||
|
||||
if (response->GetLength() - response->GetOffset() > 0)
|
||||
{
|
||||
message->SetPayloadMarker();
|
||||
SuccessOrExit(error = message->SetPayloadMarker());
|
||||
}
|
||||
|
||||
SuccessOrExit(error = borderAgent.ForwardToCommissioner(*message, *response));
|
||||
@@ -405,8 +409,8 @@ bool BorderAgent::HandleUdpReceive(const Message &aMessage, const Ip6::MessageIn
|
||||
VerifyOrExit((message = NewMeshCoPMessage(Get<Coap::CoapSecure>())) != NULL, error = OT_ERROR_NO_BUFS);
|
||||
|
||||
message->Init(OT_COAP_TYPE_NON_CONFIRMABLE, OT_COAP_CODE_POST);
|
||||
message->AppendUriPathOptions(OT_URI_PATH_PROXY_RX);
|
||||
message->SetPayloadMarker();
|
||||
SuccessOrExit(error = message->AppendUriPathOptions(OT_URI_PATH_PROXY_RX));
|
||||
SuccessOrExit(error = message->SetPayloadMarker());
|
||||
|
||||
{
|
||||
UdpEncapsulationTlv tlv;
|
||||
@@ -456,11 +460,11 @@ void BorderAgent::HandleRelayReceive(const Coap::Message &aMessage)
|
||||
VerifyOrExit((message = NewMeshCoPMessage(Get<Coap::CoapSecure>())) != NULL, error = OT_ERROR_NO_BUFS);
|
||||
|
||||
message->Init(OT_COAP_TYPE_NON_CONFIRMABLE, OT_COAP_CODE_POST);
|
||||
message->AppendUriPathOptions(OT_URI_PATH_RELAY_RX);
|
||||
SuccessOrExit(error = message->AppendUriPathOptions(OT_URI_PATH_RELAY_RX));
|
||||
|
||||
if (aMessage.GetLength() > aMessage.GetOffset())
|
||||
{
|
||||
message->SetPayloadMarker();
|
||||
SuccessOrExit(error = message->SetPayloadMarker());
|
||||
}
|
||||
|
||||
SuccessOrExit(error = ForwardToCommissioner(*message, aMessage));
|
||||
@@ -523,10 +527,8 @@ void BorderAgent::HandleRelayTransmit(const Coap::Message &aMessage)
|
||||
|
||||
VerifyOrExit((message = NewMeshCoPMessage(Get<Coap::Coap>())) != NULL, error = OT_ERROR_NO_BUFS);
|
||||
|
||||
message->Init(OT_COAP_TYPE_NON_CONFIRMABLE, OT_COAP_CODE_POST);
|
||||
message->SetToken(Coap::Message::kDefaultTokenLength);
|
||||
message->AppendUriPathOptions(OT_URI_PATH_RELAY_TX);
|
||||
message->SetPayloadMarker();
|
||||
SuccessOrExit(error = message->Init(OT_COAP_TYPE_NON_CONFIRMABLE, OT_COAP_CODE_POST, OT_URI_PATH_RELAY_TX));
|
||||
SuccessOrExit(error = message->SetPayloadMarker());
|
||||
|
||||
offset = message->GetLength();
|
||||
SuccessOrExit(error = message->SetLength(offset + aMessage.GetLength() - aMessage.GetOffset()));
|
||||
@@ -578,14 +580,12 @@ otError BorderAgent::ForwardToLeader(const Coap::Message & aMessage,
|
||||
|
||||
forwardContext = new (forwardContext) ForwardContext(*this, aMessage, aPetition, aSeparate);
|
||||
|
||||
message->Init(OT_COAP_TYPE_CONFIRMABLE, OT_COAP_CODE_POST);
|
||||
message->SetToken(Coap::Message::kDefaultTokenLength);
|
||||
message->AppendUriPathOptions(aPath);
|
||||
SuccessOrExit(error = message->Init(OT_COAP_TYPE_CONFIRMABLE, OT_COAP_CODE_POST, aPath));
|
||||
|
||||
// Payload of c/cg may be empty
|
||||
if (aMessage.GetLength() - aMessage.GetOffset() > 0)
|
||||
{
|
||||
message->SetPayloadMarker();
|
||||
SuccessOrExit(error = message->SetPayloadMarker());
|
||||
}
|
||||
|
||||
offset = message->GetLength();
|
||||
|
||||
@@ -491,13 +491,11 @@ otError Commissioner::SendMgmtCommissionerGetRequest(const uint8_t *aTlvs, uint8
|
||||
|
||||
VerifyOrExit((message = NewMeshCoPMessage(Get<Coap::Coap>())) != NULL, error = OT_ERROR_NO_BUFS);
|
||||
|
||||
message->Init(OT_COAP_TYPE_CONFIRMABLE, OT_COAP_CODE_POST);
|
||||
message->SetToken(Coap::Message::kDefaultTokenLength);
|
||||
message->AppendUriPathOptions(OT_URI_PATH_COMMISSIONER_GET);
|
||||
SuccessOrExit(error = message->Init(OT_COAP_TYPE_CONFIRMABLE, OT_COAP_CODE_POST, OT_URI_PATH_COMMISSIONER_GET));
|
||||
|
||||
if (aLength > 0)
|
||||
{
|
||||
message->SetPayloadMarker();
|
||||
SuccessOrExit(error = message->SetPayloadMarker());
|
||||
}
|
||||
|
||||
if (aLength > 0)
|
||||
@@ -558,10 +556,8 @@ otError Commissioner::SendMgmtCommissionerSetRequest(const otCommissioningDatase
|
||||
|
||||
VerifyOrExit((message = NewMeshCoPMessage(Get<Coap::Coap>())) != NULL, error = OT_ERROR_NO_BUFS);
|
||||
|
||||
message->Init(OT_COAP_TYPE_CONFIRMABLE, OT_COAP_CODE_POST);
|
||||
message->SetToken(Coap::Message::kDefaultTokenLength);
|
||||
message->AppendUriPathOptions(OT_URI_PATH_COMMISSIONER_SET);
|
||||
message->SetPayloadMarker();
|
||||
SuccessOrExit(error = message->Init(OT_COAP_TYPE_CONFIRMABLE, OT_COAP_CODE_POST, OT_URI_PATH_COMMISSIONER_SET));
|
||||
SuccessOrExit(error = message->SetPayloadMarker());
|
||||
|
||||
if (aDataset.mIsLocatorSet)
|
||||
{
|
||||
@@ -658,10 +654,8 @@ otError Commissioner::SendPetition(void)
|
||||
|
||||
VerifyOrExit((message = NewMeshCoPMessage(Get<Coap::Coap>())) != NULL, error = OT_ERROR_NO_BUFS);
|
||||
|
||||
message->Init(OT_COAP_TYPE_CONFIRMABLE, OT_COAP_CODE_POST);
|
||||
message->SetToken(Coap::Message::kDefaultTokenLength);
|
||||
message->AppendUriPathOptions(OT_URI_PATH_LEADER_PETITION);
|
||||
message->SetPayloadMarker();
|
||||
SuccessOrExit(error = message->Init(OT_COAP_TYPE_CONFIRMABLE, OT_COAP_CODE_POST, OT_URI_PATH_LEADER_PETITION));
|
||||
SuccessOrExit(error = message->SetPayloadMarker());
|
||||
|
||||
commissionerId.Init();
|
||||
commissionerId.SetCommissionerId("OpenThread Commissioner");
|
||||
@@ -753,10 +747,8 @@ otError Commissioner::SendKeepAlive(void)
|
||||
|
||||
VerifyOrExit((message = NewMeshCoPMessage(Get<Coap::Coap>())) != NULL, error = OT_ERROR_NO_BUFS);
|
||||
|
||||
message->Init(OT_COAP_TYPE_CONFIRMABLE, OT_COAP_CODE_POST);
|
||||
message->SetToken(Coap::Message::kDefaultTokenLength);
|
||||
message->AppendUriPathOptions(OT_URI_PATH_LEADER_KEEP_ALIVE);
|
||||
message->SetPayloadMarker();
|
||||
SuccessOrExit(error = message->Init(OT_COAP_TYPE_CONFIRMABLE, OT_COAP_CODE_POST, OT_URI_PATH_LEADER_KEEP_ALIVE));
|
||||
SuccessOrExit(error = message->SetPayloadMarker());
|
||||
|
||||
state.Init();
|
||||
state.SetState(mState == OT_COMMISSIONER_STATE_ACTIVE ? StateTlv::kAccept : StateTlv::kReject);
|
||||
@@ -986,8 +978,8 @@ void Commissioner::SendJoinFinalizeResponse(const Coap::Message &aRequest, State
|
||||
|
||||
VerifyOrExit((message = NewMeshCoPMessage(Get<Coap::CoapSecure>())) != NULL, error = OT_ERROR_NO_BUFS);
|
||||
|
||||
message->SetDefaultResponseHeader(aRequest);
|
||||
message->SetPayloadMarker();
|
||||
SuccessOrExit(error = message->SetDefaultResponseHeader(aRequest));
|
||||
SuccessOrExit(error = message->SetPayloadMarker());
|
||||
message->SetOffset(message->GetLength());
|
||||
message->SetSubType(Message::kSubTypeJoinerFinalizeResponse);
|
||||
|
||||
@@ -1050,8 +1042,8 @@ otError Commissioner::SendRelayTransmit(Message &aMessage, const Ip6::MessageInf
|
||||
VerifyOrExit((message = NewMeshCoPMessage(Get<Coap::Coap>())) != NULL, error = OT_ERROR_NO_BUFS);
|
||||
|
||||
message->Init(OT_COAP_TYPE_NON_CONFIRMABLE, OT_COAP_CODE_POST);
|
||||
message->AppendUriPathOptions(OT_URI_PATH_RELAY_TX);
|
||||
message->SetPayloadMarker();
|
||||
SuccessOrExit(error = message->AppendUriPathOptions(OT_URI_PATH_RELAY_TX));
|
||||
SuccessOrExit(error = message->SetPayloadMarker());
|
||||
|
||||
udpPort.Init();
|
||||
udpPort.SetUdpPort(mJoinerPort);
|
||||
|
||||
@@ -272,10 +272,8 @@ otError DatasetManager::Register(void)
|
||||
|
||||
VerifyOrExit((message = NewMeshCoPMessage(Get<Coap::Coap>())) != NULL, error = OT_ERROR_NO_BUFS);
|
||||
|
||||
message->Init(OT_COAP_TYPE_CONFIRMABLE, OT_COAP_CODE_POST);
|
||||
message->SetToken(Coap::Message::kDefaultTokenLength);
|
||||
message->AppendUriPathOptions(mUriSet);
|
||||
message->SetPayloadMarker();
|
||||
SuccessOrExit(error = message->Init(OT_COAP_TYPE_CONFIRMABLE, OT_COAP_CODE_POST, mUriSet));
|
||||
SuccessOrExit(error = message->SetPayloadMarker());
|
||||
|
||||
mLocal.Read(dataset);
|
||||
SuccessOrExit(error = message->Append(dataset.GetBytes(), dataset.GetSize()));
|
||||
@@ -353,8 +351,8 @@ void DatasetManager::SendGetResponse(const Coap::Message & aRequest,
|
||||
|
||||
VerifyOrExit((message = NewMeshCoPMessage(Get<Coap::Coap>())) != NULL, error = OT_ERROR_NO_BUFS);
|
||||
|
||||
message->SetDefaultResponseHeader(aRequest);
|
||||
message->SetPayloadMarker();
|
||||
SuccessOrExit(error = message->SetDefaultResponseHeader(aRequest));
|
||||
SuccessOrExit(error = message->SetPayloadMarker());
|
||||
|
||||
if (aLength == 0)
|
||||
{
|
||||
@@ -417,10 +415,8 @@ otError DatasetManager::SendSetRequest(const otOperationalDataset &aDataset, con
|
||||
|
||||
VerifyOrExit((message = NewMeshCoPMessage(Get<Coap::Coap>())) != NULL, error = OT_ERROR_NO_BUFS);
|
||||
|
||||
message->Init(OT_COAP_TYPE_CONFIRMABLE, OT_COAP_CODE_POST);
|
||||
message->SetToken(Coap::Message::kDefaultTokenLength);
|
||||
message->AppendUriPathOptions(mUriSet);
|
||||
message->SetPayloadMarker();
|
||||
SuccessOrExit(error = message->Init(OT_COAP_TYPE_CONFIRMABLE, OT_COAP_CODE_POST, mUriSet));
|
||||
SuccessOrExit(error = message->SetPayloadMarker());
|
||||
|
||||
#if OPENTHREAD_ENABLE_COMMISSIONER && OPENTHREAD_FTD
|
||||
|
||||
@@ -638,13 +634,11 @@ otError DatasetManager::SendGetRequest(const otOperationalDatasetComponents &aDa
|
||||
|
||||
VerifyOrExit((message = NewMeshCoPMessage(Get<Coap::Coap>())) != NULL, error = OT_ERROR_NO_BUFS);
|
||||
|
||||
message->Init(OT_COAP_TYPE_CONFIRMABLE, OT_COAP_CODE_POST);
|
||||
message->SetToken(Coap::Message::kDefaultTokenLength);
|
||||
message->AppendUriPathOptions(mUriGet);
|
||||
SuccessOrExit(error = message->Init(OT_COAP_TYPE_CONFIRMABLE, OT_COAP_CODE_POST, mUriGet));
|
||||
|
||||
if (aLength + length > 0)
|
||||
{
|
||||
message->SetPayloadMarker();
|
||||
SuccessOrExit(error = message->SetPayloadMarker());
|
||||
}
|
||||
|
||||
if (aLength + length > 0)
|
||||
|
||||
@@ -296,8 +296,8 @@ void DatasetManager::SendSetResponse(const Coap::Message & aRequest,
|
||||
|
||||
VerifyOrExit((message = NewMeshCoPMessage(Get<Coap::Coap>())) != NULL, error = OT_ERROR_NO_BUFS);
|
||||
|
||||
message->SetDefaultResponseHeader(aRequest);
|
||||
message->SetPayloadMarker();
|
||||
SuccessOrExit(error = message->SetDefaultResponseHeader(aRequest));
|
||||
SuccessOrExit(error = message->SetPayloadMarker());
|
||||
|
||||
state.Init();
|
||||
state.SetState(aState);
|
||||
|
||||
@@ -78,10 +78,10 @@ otError EnergyScanClient::SendQuery(uint32_t aChannelM
|
||||
VerifyOrExit(Get<MeshCoP::Commissioner>().IsActive(), error = OT_ERROR_INVALID_STATE);
|
||||
VerifyOrExit((message = MeshCoP::NewMeshCoPMessage(Get<Coap::Coap>())) != NULL, error = OT_ERROR_NO_BUFS);
|
||||
|
||||
message->Init(aAddress.IsMulticast() ? OT_COAP_TYPE_NON_CONFIRMABLE : OT_COAP_TYPE_CONFIRMABLE, OT_COAP_CODE_POST);
|
||||
message->SetToken(Coap::Message::kDefaultTokenLength);
|
||||
message->AppendUriPathOptions(OT_URI_PATH_ENERGY_SCAN);
|
||||
message->SetPayloadMarker();
|
||||
SuccessOrExit(error =
|
||||
message->Init(aAddress.IsMulticast() ? OT_COAP_TYPE_NON_CONFIRMABLE : OT_COAP_TYPE_CONFIRMABLE,
|
||||
OT_COAP_CODE_POST, OT_URI_PATH_ENERGY_SCAN));
|
||||
SuccessOrExit(error = message->SetPayloadMarker());
|
||||
|
||||
sessionId.Init();
|
||||
sessionId.SetCommissionerSessionId(Get<MeshCoP::Commissioner>().GetSessionId());
|
||||
|
||||
@@ -399,8 +399,8 @@ otError Joiner::PrepareJoinerFinalizeMessage(const char *aProvisioningUrl,
|
||||
VerifyOrExit((mFinalizeMessage = NewMeshCoPMessage(Get<Coap::CoapSecure>())) != NULL, error = OT_ERROR_NO_BUFS);
|
||||
|
||||
mFinalizeMessage->Init(OT_COAP_TYPE_CONFIRMABLE, OT_COAP_CODE_POST);
|
||||
mFinalizeMessage->AppendUriPathOptions(OT_URI_PATH_JOINER_FINALIZE);
|
||||
mFinalizeMessage->SetPayloadMarker();
|
||||
SuccessOrExit(error = mFinalizeMessage->AppendUriPathOptions(OT_URI_PATH_JOINER_FINALIZE));
|
||||
SuccessOrExit(error = mFinalizeMessage->SetPayloadMarker());
|
||||
mFinalizeMessage->SetOffset(mFinalizeMessage->GetLength());
|
||||
|
||||
stateTlv.Init();
|
||||
@@ -584,7 +584,7 @@ void Joiner::SendJoinerEntrustResponse(const Coap::Message &aRequest, const Ip6:
|
||||
Ip6::MessageInfo responseInfo(aRequestInfo);
|
||||
|
||||
VerifyOrExit((message = NewMeshCoPMessage(Get<Coap::Coap>())) != NULL, error = OT_ERROR_NO_BUFS);
|
||||
message->SetDefaultResponseHeader(aRequest);
|
||||
SuccessOrExit(error = message->SetDefaultResponseHeader(aRequest));
|
||||
message->SetSubType(Message::kSubTypeJoinerEntrust);
|
||||
|
||||
memset(&responseInfo.mSockAddr, 0, sizeof(responseInfo.mSockAddr));
|
||||
|
||||
@@ -146,10 +146,8 @@ void JoinerRouter::HandleUdpReceive(Message &aMessage, const Ip6::MessageInfo &a
|
||||
|
||||
VerifyOrExit((message = NewMeshCoPMessage(Get<Coap::Coap>())) != NULL, error = OT_ERROR_NO_BUFS);
|
||||
|
||||
message->Init(OT_COAP_TYPE_NON_CONFIRMABLE, OT_COAP_CODE_POST);
|
||||
message->SetToken(Coap::Message::kDefaultTokenLength);
|
||||
message->AppendUriPathOptions(OT_URI_PATH_RELAY_RX);
|
||||
message->SetPayloadMarker();
|
||||
SuccessOrExit(error = message->Init(OT_COAP_TYPE_NON_CONFIRMABLE, OT_COAP_CODE_POST, OT_URI_PATH_RELAY_RX));
|
||||
SuccessOrExit(error = message->SetPayloadMarker());
|
||||
|
||||
udpPort.Init();
|
||||
udpPort.SetUdpPort(aMessageInfo.GetPeerPort());
|
||||
@@ -281,8 +279,8 @@ otError JoinerRouter::DelaySendingJoinerEntrust(const Ip6::MessageInfo &aMessage
|
||||
VerifyOrExit((message = NewMeshCoPMessage(Get<Coap::Coap>())) != NULL, error = OT_ERROR_NO_BUFS);
|
||||
|
||||
message->Init(OT_COAP_TYPE_CONFIRMABLE, OT_COAP_CODE_POST);
|
||||
message->AppendUriPathOptions(OT_URI_PATH_JOINER_ENTRUST);
|
||||
message->SetPayloadMarker();
|
||||
SuccessOrExit(error = message->AppendUriPathOptions(OT_URI_PATH_JOINER_ENTRUST));
|
||||
SuccessOrExit(error = message->SetPayloadMarker());
|
||||
message->SetSubType(Message::kSubTypeJoinerEntrust);
|
||||
|
||||
masterKey.Init();
|
||||
|
||||
@@ -126,8 +126,8 @@ otError Leader::SendPetitionResponse(const Coap::Message & aRequest,
|
||||
|
||||
VerifyOrExit((message = NewMeshCoPMessage(Get<Coap::Coap>())) != NULL, error = OT_ERROR_NO_BUFS);
|
||||
|
||||
message->SetDefaultResponseHeader(aRequest);
|
||||
message->SetPayloadMarker();
|
||||
SuccessOrExit(error = message->SetDefaultResponseHeader(aRequest));
|
||||
SuccessOrExit(error = message->SetPayloadMarker());
|
||||
|
||||
state.Init();
|
||||
state.SetState(aState);
|
||||
@@ -222,8 +222,8 @@ otError Leader::SendKeepAliveResponse(const Coap::Message & aRequest,
|
||||
|
||||
VerifyOrExit((message = NewMeshCoPMessage(Get<Coap::Coap>())) != NULL, error = OT_ERROR_NO_BUFS);
|
||||
|
||||
message->SetDefaultResponseHeader(aRequest);
|
||||
message->SetPayloadMarker();
|
||||
SuccessOrExit(error = message->SetDefaultResponseHeader(aRequest));
|
||||
SuccessOrExit(error = message->SetPayloadMarker());
|
||||
|
||||
state.Init();
|
||||
state.SetState(aState);
|
||||
@@ -251,9 +251,7 @@ otError Leader::SendDatasetChanged(const Ip6::Address &aAddress)
|
||||
|
||||
VerifyOrExit((message = NewMeshCoPMessage(Get<Coap::Coap>())) != NULL, error = OT_ERROR_NO_BUFS);
|
||||
|
||||
message->Init(OT_COAP_TYPE_CONFIRMABLE, OT_COAP_CODE_POST);
|
||||
message->SetToken(Coap::Message::kDefaultTokenLength);
|
||||
message->AppendUriPathOptions(OT_URI_PATH_DATASET_CHANGED);
|
||||
SuccessOrExit(error = message->Init(OT_COAP_TYPE_CONFIRMABLE, OT_COAP_CODE_POST, OT_URI_PATH_DATASET_CHANGED));
|
||||
|
||||
messageInfo.SetSockAddr(Get<Mle::MleRouter>().GetMeshLocal16());
|
||||
messageInfo.SetPeerAddr(aAddress);
|
||||
|
||||
@@ -73,10 +73,10 @@ otError PanIdQueryClient::SendQuery(uint16_t aPanId,
|
||||
VerifyOrExit(Get<MeshCoP::Commissioner>().IsActive(), error = OT_ERROR_INVALID_STATE);
|
||||
VerifyOrExit((message = MeshCoP::NewMeshCoPMessage(Get<Coap::Coap>())) != NULL, error = OT_ERROR_NO_BUFS);
|
||||
|
||||
message->Init(aAddress.IsMulticast() ? OT_COAP_TYPE_NON_CONFIRMABLE : OT_COAP_TYPE_CONFIRMABLE, OT_COAP_CODE_POST);
|
||||
message->SetToken(Coap::Message::kDefaultTokenLength);
|
||||
message->AppendUriPathOptions(OT_URI_PATH_PANID_QUERY);
|
||||
message->SetPayloadMarker();
|
||||
SuccessOrExit(error =
|
||||
message->Init(aAddress.IsMulticast() ? OT_COAP_TYPE_NON_CONFIRMABLE : OT_COAP_TYPE_CONFIRMABLE,
|
||||
OT_COAP_CODE_POST, OT_URI_PATH_PANID_QUERY));
|
||||
SuccessOrExit(error = message->SetPayloadMarker());
|
||||
|
||||
sessionId.Init();
|
||||
sessionId.SetCommissionerSessionId(Get<MeshCoP::Commissioner>().GetSessionId());
|
||||
|
||||
@@ -322,8 +322,8 @@ otError AddressResolver::SendAddressQuery(const Ip6::Address &aEid)
|
||||
VerifyOrExit((message = Get<Coap::Coap>().NewMessage()) != NULL, error = OT_ERROR_NO_BUFS);
|
||||
|
||||
message->Init(OT_COAP_TYPE_NON_CONFIRMABLE, OT_COAP_CODE_POST);
|
||||
message->AppendUriPathOptions(OT_URI_PATH_ADDRESS_QUERY);
|
||||
message->SetPayloadMarker();
|
||||
SuccessOrExit(error = message->AppendUriPathOptions(OT_URI_PATH_ADDRESS_QUERY));
|
||||
SuccessOrExit(error = message->SetPayloadMarker());
|
||||
|
||||
targetTlv.Init();
|
||||
targetTlv.SetTarget(aEid);
|
||||
@@ -459,8 +459,8 @@ otError AddressResolver::SendAddressError(const ThreadTargetTlv & aTarget,
|
||||
VerifyOrExit((message = Get<Coap::Coap>().NewMessage()) != NULL, error = OT_ERROR_NO_BUFS);
|
||||
|
||||
message->Init(aDestination == NULL ? OT_COAP_TYPE_NON_CONFIRMABLE : OT_COAP_TYPE_CONFIRMABLE, OT_COAP_CODE_POST);
|
||||
message->AppendUriPathOptions(OT_URI_PATH_ADDRESS_ERROR);
|
||||
message->SetPayloadMarker();
|
||||
SuccessOrExit(error = message->AppendUriPathOptions(OT_URI_PATH_ADDRESS_ERROR));
|
||||
SuccessOrExit(error = message->SetPayloadMarker());
|
||||
|
||||
SuccessOrExit(error = message->AppendTlv(aTarget));
|
||||
SuccessOrExit(error = message->AppendTlv(aEid));
|
||||
@@ -641,8 +641,8 @@ void AddressResolver::SendAddressQueryResponse(const ThreadTargetTlv &
|
||||
VerifyOrExit((message = Get<Coap::Coap>().NewMessage()) != NULL, error = OT_ERROR_NO_BUFS);
|
||||
|
||||
message->Init(OT_COAP_TYPE_CONFIRMABLE, OT_COAP_CODE_POST);
|
||||
message->AppendUriPathOptions(OT_URI_PATH_ADDRESS_NOTIFY);
|
||||
message->SetPayloadMarker();
|
||||
SuccessOrExit(error = message->AppendUriPathOptions(OT_URI_PATH_ADDRESS_NOTIFY));
|
||||
SuccessOrExit(error = message->SetPayloadMarker());
|
||||
|
||||
SuccessOrExit(error = message->AppendTlv(aTargetTlv));
|
||||
SuccessOrExit(error = message->AppendTlv(aMlEidTlv));
|
||||
|
||||
@@ -182,10 +182,8 @@ otError EnergyScanServer::SendReport(void)
|
||||
|
||||
VerifyOrExit((message = MeshCoP::NewMeshCoPMessage(Get<Coap::Coap>())) != NULL, error = OT_ERROR_NO_BUFS);
|
||||
|
||||
message->Init(OT_COAP_TYPE_CONFIRMABLE, OT_COAP_CODE_POST);
|
||||
message->SetToken(Coap::Message::kDefaultTokenLength);
|
||||
message->AppendUriPathOptions(OT_URI_PATH_ENERGY_REPORT);
|
||||
message->SetPayloadMarker();
|
||||
SuccessOrExit(error = message->Init(OT_COAP_TYPE_CONFIRMABLE, OT_COAP_CODE_POST, OT_URI_PATH_ENERGY_REPORT));
|
||||
SuccessOrExit(error = message->SetPayloadMarker());
|
||||
|
||||
channelMask.Init();
|
||||
channelMask.SetChannelMask(mChannelMask);
|
||||
|
||||
@@ -3802,10 +3802,8 @@ otError MleRouter::SendAddressSolicit(ThreadStatusTlv::Status aStatus)
|
||||
|
||||
VerifyOrExit((message = Get<Coap::Coap>().NewMessage()) != NULL, error = OT_ERROR_NO_BUFS);
|
||||
|
||||
message->Init(OT_COAP_TYPE_CONFIRMABLE, OT_COAP_CODE_POST);
|
||||
message->SetToken(Coap::Message::kDefaultTokenLength);
|
||||
message->AppendUriPathOptions(OT_URI_PATH_ADDRESS_SOLICIT);
|
||||
message->SetPayloadMarker();
|
||||
SuccessOrExit(error = message->Init(OT_COAP_TYPE_CONFIRMABLE, OT_COAP_CODE_POST, OT_URI_PATH_ADDRESS_SOLICIT));
|
||||
SuccessOrExit(error = message->SetPayloadMarker());
|
||||
|
||||
macAddr64Tlv.Init();
|
||||
macAddr64Tlv.SetMacAddr(Get<Mac::Mac>().GetExtAddress());
|
||||
@@ -3856,10 +3854,8 @@ otError MleRouter::SendAddressRelease(void)
|
||||
|
||||
VerifyOrExit((message = Get<Coap::Coap>().NewMessage()) != NULL, error = OT_ERROR_NO_BUFS);
|
||||
|
||||
message->Init(OT_COAP_TYPE_CONFIRMABLE, OT_COAP_CODE_POST);
|
||||
message->SetToken(Coap::Message::kDefaultTokenLength);
|
||||
message->AppendUriPathOptions(OT_URI_PATH_ADDRESS_RELEASE);
|
||||
message->SetPayloadMarker();
|
||||
SuccessOrExit(error = message->Init(OT_COAP_TYPE_CONFIRMABLE, OT_COAP_CODE_POST, OT_URI_PATH_ADDRESS_RELEASE));
|
||||
SuccessOrExit(error = message->SetPayloadMarker());
|
||||
|
||||
rlocTlv.Init();
|
||||
rlocTlv.SetRloc16(GetRloc16(mRouterId));
|
||||
@@ -4103,8 +4099,8 @@ void MleRouter::SendAddressSolicitResponse(const Coap::Message & aRequest,
|
||||
|
||||
VerifyOrExit((message = Get<Coap::Coap>().NewMessage()) != NULL, error = OT_ERROR_NO_BUFS);
|
||||
|
||||
message->SetDefaultResponseHeader(aRequest);
|
||||
message->SetPayloadMarker();
|
||||
SuccessOrExit(error = message->SetDefaultResponseHeader(aRequest));
|
||||
SuccessOrExit(error = message->SetPayloadMarker());
|
||||
|
||||
statusTlv.Init();
|
||||
statusTlv.SetStatus(aRouter == NULL ? statusTlv.kNoAddressAvailable : statusTlv.kSuccess);
|
||||
|
||||
@@ -1000,10 +1000,8 @@ otError NetworkData::SendServerDataNotification(uint16_t aRloc16)
|
||||
|
||||
VerifyOrExit((message = Get<Coap::Coap>().NewMessage()) != NULL, error = OT_ERROR_NO_BUFS);
|
||||
|
||||
message->Init(OT_COAP_TYPE_CONFIRMABLE, OT_COAP_CODE_POST);
|
||||
message->SetToken(Coap::Message::kDefaultTokenLength);
|
||||
message->AppendUriPathOptions(OT_URI_PATH_SERVER_DATA);
|
||||
message->SetPayloadMarker();
|
||||
SuccessOrExit(error = message->Init(OT_COAP_TYPE_CONFIRMABLE, OT_COAP_CODE_POST, OT_URI_PATH_SERVER_DATA));
|
||||
SuccessOrExit(error = message->SetPayloadMarker());
|
||||
|
||||
if (mType == kTypeLocal)
|
||||
{
|
||||
|
||||
@@ -321,8 +321,8 @@ void Leader::SendCommissioningGetResponse(const Coap::Message & aRequest,
|
||||
|
||||
VerifyOrExit((message = MeshCoP::NewMeshCoPMessage(Get<Coap::Coap>())) != NULL, error = OT_ERROR_NO_BUFS);
|
||||
|
||||
message->SetDefaultResponseHeader(aRequest);
|
||||
message->SetPayloadMarker();
|
||||
SuccessOrExit(error = message->SetDefaultResponseHeader(aRequest));
|
||||
SuccessOrExit(error = message->SetPayloadMarker());
|
||||
|
||||
for (NetworkDataTlv *cur = reinterpret_cast<NetworkDataTlv *>(mTlvs);
|
||||
cur < reinterpret_cast<NetworkDataTlv *>(mTlvs + mLength); cur = cur->GetNext())
|
||||
@@ -385,8 +385,8 @@ void Leader::SendCommissioningSetResponse(const Coap::Message & aRequest,
|
||||
|
||||
VerifyOrExit((message = MeshCoP::NewMeshCoPMessage(Get<Coap::Coap>())) != NULL, error = OT_ERROR_NO_BUFS);
|
||||
|
||||
message->SetDefaultResponseHeader(aRequest);
|
||||
message->SetPayloadMarker();
|
||||
SuccessOrExit(error = message->SetDefaultResponseHeader(aRequest));
|
||||
SuccessOrExit(error = message->SetPayloadMarker());
|
||||
|
||||
state.Init();
|
||||
state.SetState(aState);
|
||||
|
||||
@@ -90,21 +90,19 @@ otError NetworkDiagnostic::SendDiagnosticGet(const Ip6::Address &aDestination,
|
||||
|
||||
if (aDestination.IsMulticast())
|
||||
{
|
||||
message->Init(OT_COAP_TYPE_NON_CONFIRMABLE, OT_COAP_CODE_POST);
|
||||
message->SetToken(Coap::Message::kDefaultTokenLength);
|
||||
message->AppendUriPathOptions(OT_URI_PATH_DIAGNOSTIC_GET_QUERY);
|
||||
SuccessOrExit(
|
||||
error = message->Init(OT_COAP_TYPE_NON_CONFIRMABLE, OT_COAP_CODE_POST, OT_URI_PATH_DIAGNOSTIC_GET_QUERY));
|
||||
}
|
||||
else
|
||||
{
|
||||
handler = &NetworkDiagnostic::HandleDiagnosticGetResponse;
|
||||
message->Init(OT_COAP_TYPE_CONFIRMABLE, OT_COAP_CODE_POST);
|
||||
message->SetToken(Coap::Message::kDefaultTokenLength);
|
||||
message->AppendUriPathOptions(OT_URI_PATH_DIAGNOSTIC_GET_REQUEST);
|
||||
SuccessOrExit(
|
||||
error = message->Init(OT_COAP_TYPE_CONFIRMABLE, OT_COAP_CODE_POST, OT_URI_PATH_DIAGNOSTIC_GET_REQUEST));
|
||||
}
|
||||
|
||||
if (aCount > 0)
|
||||
{
|
||||
message->SetPayloadMarker();
|
||||
SuccessOrExit(error = message->SetPayloadMarker());
|
||||
}
|
||||
|
||||
if (aCount > 0)
|
||||
@@ -496,13 +494,12 @@ void NetworkDiagnostic::HandleDiagnosticGetQuery(Coap::Message &aMessage, const
|
||||
|
||||
VerifyOrExit((message = Get<Coap::Coap>().NewMessage()) != NULL, error = OT_ERROR_NO_BUFS);
|
||||
|
||||
message->Init(OT_COAP_TYPE_CONFIRMABLE, OT_COAP_CODE_POST);
|
||||
message->SetToken(Coap::Message::kDefaultTokenLength);
|
||||
message->AppendUriPathOptions(OT_URI_PATH_DIAGNOSTIC_GET_ANSWER);
|
||||
SuccessOrExit(error =
|
||||
message->Init(OT_COAP_TYPE_CONFIRMABLE, OT_COAP_CODE_POST, OT_URI_PATH_DIAGNOSTIC_GET_ANSWER));
|
||||
|
||||
if (networkDiagnosticTlv.GetLength() > 0)
|
||||
{
|
||||
message->SetPayloadMarker();
|
||||
SuccessOrExit(error = message->SetPayloadMarker());
|
||||
}
|
||||
|
||||
messageInfo.SetSockAddr(Get<Mle::MleRouter>().GetMeshLocal16());
|
||||
@@ -560,8 +557,8 @@ void NetworkDiagnostic::HandleDiagnosticGetRequest(Coap::Message &aMessage, cons
|
||||
|
||||
VerifyOrExit((message = Get<Coap::Coap>().NewMessage()) != NULL, error = OT_ERROR_NO_BUFS);
|
||||
|
||||
message->SetDefaultResponseHeader(aMessage);
|
||||
message->SetPayloadMarker();
|
||||
SuccessOrExit(error = message->SetDefaultResponseHeader(aMessage));
|
||||
SuccessOrExit(error = message->SetPayloadMarker());
|
||||
|
||||
SuccessOrExit(error = FillRequestedTlvs(aMessage, *message, networkDiagnosticTlv));
|
||||
|
||||
@@ -593,13 +590,11 @@ otError NetworkDiagnostic::SendDiagnosticReset(const Ip6::Address &aDestination,
|
||||
|
||||
VerifyOrExit((message = Get<Coap::Coap>().NewMessage()) != NULL, error = OT_ERROR_NO_BUFS);
|
||||
|
||||
message->Init(OT_COAP_TYPE_CONFIRMABLE, OT_COAP_CODE_POST);
|
||||
message->SetToken(Coap::Message::kDefaultTokenLength);
|
||||
message->AppendUriPathOptions(OT_URI_PATH_DIAGNOSTIC_RESET);
|
||||
SuccessOrExit(error = message->Init(OT_COAP_TYPE_CONFIRMABLE, OT_COAP_CODE_POST, OT_URI_PATH_DIAGNOSTIC_RESET));
|
||||
|
||||
if (aCount > 0)
|
||||
{
|
||||
message->SetPayloadMarker();
|
||||
SuccessOrExit(error = message->SetPayloadMarker());
|
||||
}
|
||||
|
||||
if (aCount > 0)
|
||||
|
||||
@@ -123,10 +123,8 @@ otError PanIdQueryServer::SendConflict(void)
|
||||
|
||||
VerifyOrExit((message = MeshCoP::NewMeshCoPMessage(Get<Coap::Coap>())) != NULL, error = OT_ERROR_NO_BUFS);
|
||||
|
||||
message->Init(OT_COAP_TYPE_CONFIRMABLE, OT_COAP_CODE_POST);
|
||||
message->SetToken(Coap::Message::kDefaultTokenLength);
|
||||
message->AppendUriPathOptions(OT_URI_PATH_PANID_CONFLICT);
|
||||
message->SetPayloadMarker();
|
||||
SuccessOrExit(error = message->Init(OT_COAP_TYPE_CONFIRMABLE, OT_COAP_CODE_POST, OT_URI_PATH_PANID_CONFLICT));
|
||||
SuccessOrExit(error = message->SetPayloadMarker());
|
||||
|
||||
channelMask.Init();
|
||||
channelMask.SetChannelMask(mChannelMask);
|
||||
|
||||
Reference in New Issue
Block a user