| Index: net/quic/quic_protocol.cc
|
| diff --git a/net/quic/quic_protocol.cc b/net/quic/quic_protocol.cc
|
| index 2293076fa7c3bda4203b248bba0cd36607793aba..051a6406589e9b7125e1d1e1d6db95eefda9b728 100644
|
| --- a/net/quic/quic_protocol.cc
|
| +++ b/net/quic/quic_protocol.cc
|
| @@ -16,31 +16,39 @@ namespace net {
|
| size_t GetPacketHeaderSize(QuicPacketHeader header) {
|
| return GetPacketHeaderSize(header.public_header.guid_length,
|
| header.public_header.version_flag,
|
| + header.public_header.sequence_number_length,
|
| header.is_in_fec_group);
|
| }
|
|
|
| size_t GetPacketHeaderSize(QuicGuidLength guid_length,
|
| bool include_version,
|
| + QuicSequenceNumberLength sequence_number_length,
|
| InFecGroup is_in_fec_group) {
|
| return kPublicFlagsSize + guid_length +
|
| - (include_version ? kQuicVersionSize : 0) + kSequenceNumberSize +
|
| + (include_version ? kQuicVersionSize : 0) + sequence_number_length +
|
| kPrivateFlagsSize + (is_in_fec_group == IN_FEC_GROUP ? kFecGroupSize : 0);
|
| }
|
|
|
| size_t GetPublicResetPacketSize() {
|
| return kPublicFlagsSize + PACKET_8BYTE_GUID + kPublicResetNonceSize +
|
| - kSequenceNumberSize;
|
| + PACKET_6BYTE_SEQUENCE_NUMBER;
|
| }
|
|
|
| -size_t GetStartOfFecProtectedData(QuicGuidLength guid_length,
|
| - bool include_version) {
|
| - return GetPacketHeaderSize(guid_length, include_version, IN_FEC_GROUP);
|
| +size_t GetStartOfFecProtectedData(
|
| + QuicGuidLength guid_length,
|
| + bool include_version,
|
| + QuicSequenceNumberLength sequence_number_length) {
|
| + return GetPacketHeaderSize(
|
| + guid_length, include_version, sequence_number_length, IN_FEC_GROUP);
|
| }
|
|
|
| -size_t GetStartOfEncryptedData(QuicGuidLength guid_length,
|
| - bool include_version) {
|
| +size_t GetStartOfEncryptedData(
|
| + QuicGuidLength guid_length,
|
| + bool include_version,
|
| + QuicSequenceNumberLength sequence_number_length) {
|
| // Don't include the fec size, since encryption starts before private flags.
|
| - return GetPacketHeaderSize(guid_length, include_version, NOT_IN_FEC_GROUP) -
|
| + return GetPacketHeaderSize(
|
| + guid_length, include_version, sequence_number_length, NOT_IN_FEC_GROUP) -
|
| kPrivateFlagsSize;
|
| }
|
|
|
| @@ -55,7 +63,8 @@ QuicPacketPublicHeader::QuicPacketPublicHeader()
|
| : guid(0),
|
| guid_length(PACKET_8BYTE_GUID),
|
| reset_flag(false),
|
| - version_flag(false) {
|
| + version_flag(false),
|
| + sequence_number_length(PACKET_6BYTE_SEQUENCE_NUMBER) {
|
| }
|
|
|
| QuicPacketPublicHeader::QuicPacketPublicHeader(
|
| @@ -64,6 +73,7 @@ QuicPacketPublicHeader::QuicPacketPublicHeader(
|
| guid_length(other.guid_length),
|
| reset_flag(other.reset_flag),
|
| version_flag(other.version_flag),
|
| + sequence_number_length(other.sequence_number_length),
|
| versions(other.versions) {
|
| }
|
|
|
| @@ -251,16 +261,6 @@ QuicGoAwayFrame::QuicGoAwayFrame(QuicErrorCode error_code,
|
|
|
| QuicFecData::QuicFecData() {}
|
|
|
| -bool QuicFecData::operator==(const QuicFecData& other) const {
|
| - if (fec_group != other.fec_group) {
|
| - return false;
|
| - }
|
| - if (redundancy != other.redundancy) {
|
| - return false;
|
| - }
|
| - return true;
|
| -}
|
| -
|
| QuicData::~QuicData() {
|
| if (owns_buffer_) {
|
| delete [] const_cast<char*>(buffer_);
|
| @@ -268,25 +268,29 @@ QuicData::~QuicData() {
|
| }
|
|
|
| StringPiece QuicPacket::FecProtectedData() const {
|
| - const size_t start_of_fec = GetStartOfFecProtectedData(guid_length_,
|
| - includes_version_);
|
| + const size_t start_of_fec = GetStartOfFecProtectedData(
|
| + guid_length_, includes_version_, sequence_number_length_);
|
| return StringPiece(data() + start_of_fec, length() - start_of_fec);
|
| }
|
|
|
| StringPiece QuicPacket::AssociatedData() const {
|
| - return StringPiece(data() + kStartOfHashData,
|
| - GetStartOfEncryptedData(guid_length_, includes_version_) -
|
| - kStartOfHashData);
|
| + return StringPiece(
|
| + data() + kStartOfHashData,
|
| + GetStartOfEncryptedData(
|
| + guid_length_, includes_version_, sequence_number_length_) -
|
| + kStartOfHashData);
|
| }
|
|
|
| StringPiece QuicPacket::BeforePlaintext() const {
|
| return StringPiece(data(), GetStartOfEncryptedData(guid_length_,
|
| - includes_version_));
|
| + includes_version_,
|
| + sequence_number_length_));
|
| }
|
|
|
| StringPiece QuicPacket::Plaintext() const {
|
| const size_t start_of_encrypted_data =
|
| - GetStartOfEncryptedData(guid_length_, includes_version_);
|
| + GetStartOfEncryptedData(
|
| + guid_length_, includes_version_, sequence_number_length_);
|
| return StringPiece(data() + start_of_encrypted_data,
|
| length() - start_of_encrypted_data);
|
| }
|
|
|