mirror of
https://github.com/espressif/openthread.git
synced 2026-09-14 05:00:11 +00:00
temporaily fix zero-length payload with payload marker (#1300)
This commit is contained in:
@@ -511,16 +511,18 @@ void NetworkDiagnostic::HandleDiagnosticGetRequest(Coap::Header &aHeader, Messag
|
|||||||
VerifyOrExit((message = mNetif.GetCoapServer().NewMessage(0)) != NULL, error = kThreadError_NoBufs);
|
VerifyOrExit((message = mNetif.GetCoapServer().NewMessage(0)) != NULL, error = kThreadError_NoBufs);
|
||||||
|
|
||||||
header.SetDefaultResponseHeader(aHeader);
|
header.SetDefaultResponseHeader(aHeader);
|
||||||
|
header.SetPayloadMarker();
|
||||||
if (networkDiagnosticTlv.GetLength() > 0)
|
|
||||||
{
|
|
||||||
header.SetPayloadMarker();
|
|
||||||
}
|
|
||||||
|
|
||||||
SuccessOrExit(error = message->Append(header.GetBytes(), header.GetLength()));
|
SuccessOrExit(error = message->Append(header.GetBytes(), header.GetLength()));
|
||||||
|
|
||||||
SuccessOrExit(error = FillRequestedTlvs(aMessage, *message, networkDiagnosticTlv));
|
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));
|
SuccessOrExit(error = mNetif.GetCoapServer().SendMessage(*message, messageInfo));
|
||||||
|
|
||||||
otLogInfoNetDiag("Sent diagnostic get response");
|
otLogInfoNetDiag("Sent diagnostic get response");
|
||||||
|
|||||||
Reference in New Issue
Block a user