Do not include CoAP Payload Marker when there is no payload. (#1214)

This commit is contained in:
Jonathan Hui
2017-01-26 21:13:54 -08:00
committed by GitHub
parent 9301cf12d7
commit aca6707479
4 changed files with 38 additions and 3 deletions
+6
View File
@@ -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,
+17 -1
View File
@@ -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");
+9 -2
View File
@@ -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);