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); |
} |