mirror of
https://github.com/espressif/openthread.git
synced 2026-09-17 14:40:07 +00:00
Do not include CoAP Payload Marker when there is no payload. (#1214)
This commit is contained in:
@@ -435,6 +435,12 @@ ThreadError Commissioner::SendMgmtCommissionerSetRequest(const otCommissioningDa
|
||||
SuccessOrExit(error = message->Append(aTlvs, aLength));
|
||||
}
|
||||
|
||||
if (message->GetLength() == header.GetLength())
|
||||
{
|
||||
// no payload, remove coap payload marker
|
||||
message->SetLength(message->GetLength() - 1);
|
||||
}
|
||||
|
||||
mNetif.GetMle().GetLeaderAloc(messageInfo.GetPeerAddr());
|
||||
messageInfo.SetPeerPort(kCoapUdpPort);
|
||||
SuccessOrExit(error = mNetif.GetCoapClient().SendMessage(*message, messageInfo,
|
||||
|
||||
@@ -677,6 +677,12 @@ ThreadError DatasetManager::SendSetRequest(const otOperationalDataset &aDataset,
|
||||
SuccessOrExit(error = message->Append(aTlvs, aLength));
|
||||
}
|
||||
|
||||
if (message->GetLength() == header.GetLength())
|
||||
{
|
||||
// no payload, remove coap payload marker
|
||||
message->SetLength(message->GetLength() - 1);
|
||||
}
|
||||
|
||||
mNetif.GetMle().GetLeaderAloc(messageInfo.GetPeerAddr());
|
||||
messageInfo.SetPeerPort(kCoapUdpPort);
|
||||
SuccessOrExit(error = mNetif.GetCoapClient().SendMessage(*message, messageInfo));
|
||||
@@ -705,7 +711,11 @@ ThreadError DatasetManager::SendGetRequest(const uint8_t *aTlvTypes, const uint8
|
||||
header.Init(kCoapTypeConfirmable, kCoapRequestPost);
|
||||
header.SetToken(Coap::Header::kDefaultTokenLength);
|
||||
header.AppendUriPathOptions(mUriGet);
|
||||
header.SetPayloadMarker();
|
||||
|
||||
if (aLength > 0)
|
||||
{
|
||||
header.SetPayloadMarker();
|
||||
}
|
||||
|
||||
VerifyOrExit((message = mNetif.GetCoapClient().NewMeshCoPMessage(header)) != NULL, error = kThreadError_NoBufs);
|
||||
|
||||
@@ -821,6 +831,12 @@ void DatasetManager::SendGetResponse(const Coap::Header &aRequestHeader, const I
|
||||
}
|
||||
}
|
||||
|
||||
if (message->GetLength() == responseHeader.GetLength())
|
||||
{
|
||||
// no payload, remove coap payload marker
|
||||
message->SetLength(message->GetLength() - 1);
|
||||
}
|
||||
|
||||
SuccessOrExit(error = mNetif.GetCoapServer().SendMessage(*message, aMessageInfo));
|
||||
|
||||
otLogInfoMeshCoP("sent dataset get response");
|
||||
|
||||
@@ -342,6 +342,12 @@ void Leader::SendCommissioningGetResponse(const Coap::Header &aRequestHeader, co
|
||||
}
|
||||
}
|
||||
|
||||
if (message->GetLength() == responseHeader.GetLength())
|
||||
{
|
||||
// no payload, remove coap payload marker
|
||||
message->SetLength(message->GetLength() - 1);
|
||||
}
|
||||
|
||||
SuccessOrExit(error = mNetif.GetCoapServer().SendMessage(*message, aMessageInfo));
|
||||
|
||||
otLogInfoMeshCoP("sent commissioning dataset get response");
|
||||
|
||||
@@ -100,7 +100,10 @@ ThreadError NetworkDiagnostic::SendDiagnosticGet(const Ip6::Address &aDestinatio
|
||||
header.AppendUriPathOptions(OPENTHREAD_URI_DIAGNOSTIC_GET_REQUEST);
|
||||
}
|
||||
|
||||
header.SetPayloadMarker();
|
||||
if (aCount > 0)
|
||||
{
|
||||
header.SetPayloadMarker();
|
||||
}
|
||||
|
||||
VerifyOrExit((message = mNetif.GetCoapClient().NewMessage(header)) != NULL, error = kThreadError_NoBufs);
|
||||
|
||||
@@ -541,7 +544,11 @@ ThreadError NetworkDiagnostic::SendDiagnosticReset(const Ip6::Address &aDestinat
|
||||
header.Init(kCoapTypeConfirmable, kCoapRequestPost);
|
||||
header.SetToken(Coap::Header::kDefaultTokenLength);
|
||||
header.AppendUriPathOptions(OPENTHREAD_URI_DIAGNOSTIC_RESET);
|
||||
header.SetPayloadMarker();
|
||||
|
||||
if (aCount > 0)
|
||||
{
|
||||
header.SetPayloadMarker();
|
||||
}
|
||||
|
||||
VerifyOrExit((message = mNetif.GetCoapClient().NewMessage(header)) != NULL, error = kThreadError_NoBufs);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user