diff options
Diffstat (limited to 'cast/streaming/receiver_message.cc')
-rw-r--r-- | cast/streaming/receiver_message.cc | 12 |
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. |