temporaily fix zero-length payload with payload marker (#1300)
diff --git a/src/core/thread/network_diagnostic.cpp b/src/core/thread/network_diagnostic.cpp
index c6c3a9c..67bf920 100644
--- a/src/core/thread/network_diagnostic.cpp
+++ b/src/core/thread/network_diagnostic.cpp
@@ -511,16 +511,18 @@
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");