temporaily fix zero-length payload with payload marker (#1300)

This commit is contained in:
Buke Po
2017-02-12 07:16:58 -08:00
committed by Jonathan Hui
parent 11c1b4982d
commit 45480ccbb2
+7 -5
View File
@@ -511,16 +511,18 @@ void NetworkDiagnostic::HandleDiagnosticGetRequest(Coap::Header &aHeader, Messag
VerifyOrExit((message = mNetif.GetCoapServer().NewMessage(0)) != NULL, error = kThreadError_NoBufs);
header.SetDefaultResponseHeader(aHeader);
if (networkDiagnosticTlv.GetLength() > 0)
{
header.SetPayloadMarker();
}
header.SetPayloadMarker();
SuccessOrExit(error = message->Append(header.GetBytes(), header.GetLength()));
SuccessOrExit(error = FillRequestedTlvs(aMessage, *message, networkDiagnosticTlv));
if (message->GetLength() == header.GetLength())
{
// Remove Payload Marker if payload is actually empty.
message->SetLength(header.GetLength() - 1);
}
SuccessOrExit(error = mNetif.GetCoapServer().SendMessage(*message, messageInfo));
otLogInfoNetDiag("Sent diagnostic get response");