aboutsummaryrefslogtreecommitdiff
path: root/cast/streaming/receiver_message.cc
diff options
context:
space:
mode:
Diffstat (limited to 'cast/streaming/receiver_message.cc')
-rw-r--r--cast/streaming/receiver_message.cc12
1 files changed, 9 insertions, 3 deletions
diff --git a/cast/streaming/receiver_message.cc b/cast/streaming/receiver_message.cc
index 5f433362..ec8f9619 100644
--- a/cast/streaming/receiver_message.cc
+++ b/cast/streaming/receiver_message.cc
@@ -7,6 +7,7 @@
#include <utility>
#include "absl/strings/ascii.h"
+#include "absl/types/optional.h"
#include "cast/streaming/message_fields.h"
#include "json/reader.h"
#include "json/writer.h"
@@ -209,9 +210,14 @@ ErrorOr<Json::Value> ReceiverMessage::ToJson() const {
break;
case ReceiverMessage::Type::kCapabilitiesResponse:
- root[kResult] = kResultOk;
- root[kCapabilitiesMessageBody] =
- absl::get<ReceiverCapability>(body).ToJson();
+ if (valid) {
+ root[kResult] = kResultOk;
+ root[kCapabilitiesMessageBody] =
+ absl::get<ReceiverCapability>(body).ToJson();
+ } else {
+ root[kResult] = kResultError;
+ root[kErrorMessageBody] = absl::get<ReceiverError>(body).ToJson();
+ }
break;
// NOTE: RPC messages do NOT have a result field.