diff options
Diffstat (limited to 'cast/streaming/receiver_message.cc')
-rw-r--r-- | cast/streaming/receiver_message.cc | 12 |
1 files changed, 8 insertions, 4 deletions
diff --git a/cast/streaming/receiver_message.cc b/cast/streaming/receiver_message.cc index e1af610c..4fb1a8a6 100644 --- a/cast/streaming/receiver_message.cc +++ b/cast/streaming/receiver_message.cc @@ -128,10 +128,8 @@ Json::Value ReceiverCapability::ToJson() const { // static ErrorOr<ReceiverMessage> ReceiverMessage::Parse(const Json::Value& value) { ReceiverMessage message; - if (!value || - !json::TryParseInt(value[kSequenceNumber], &(message.sequence_number))) { - return Error(Error::Code::kJsonParseError, - "Failed to parse sequence number"); + if (!value) { + return Error(Error::Code::kJsonParseError, "Invalid message body"); } std::string result; @@ -184,6 +182,12 @@ ErrorOr<ReceiverMessage> ReceiverMessage::Parse(const Json::Value& value) { break; } + if (message.type != ReceiverMessage::Type::kRpc && + !json::TryParseInt(value[kSequenceNumber], &(message.sequence_number))) { + message.sequence_number = -1; + message.valid = false; + } + return message; } |