In GFE, consider decrypted 0-RTT packets as full packet to relax the amplification factor.
Protected by FLAGS_quic_reloadable_flag_quic_relax_amplification_factor.
PiperOrigin-RevId: 344253202
Change-Id: I7aadd2c94635e95c4f4bcfd486f07616e002fd84
diff --git a/quic/core/chlo_extractor.cc b/quic/core/chlo_extractor.cc
index 851967a..a252d61 100644
--- a/quic/core/chlo_extractor.cc
+++ b/quic/core/chlo_extractor.cc
@@ -45,7 +45,8 @@
absl::string_view /*retry_without_tag*/) override {}
bool OnUnauthenticatedPublicHeader(const QuicPacketHeader& header) override;
bool OnUnauthenticatedHeader(const QuicPacketHeader& header) override;
- void OnDecryptedPacket(EncryptionLevel /*level*/) override {}
+ void OnDecryptedPacket(size_t /*length*/,
+ EncryptionLevel /*level*/) override {}
bool OnPacketHeader(const QuicPacketHeader& header) override;
void OnCoalescedPacket(const QuicEncryptedPacket& packet) override;
void OnUndecryptablePacket(const QuicEncryptedPacket& packet,
diff --git a/quic/core/quic_connection.cc b/quic/core/quic_connection.cc
index 3ba720f..00fa44c 100644
--- a/quic/core/quic_connection.cc
+++ b/quic/core/quic_connection.cc
@@ -1144,7 +1144,8 @@
return ack_alarm_->IsSet();
}
-void QuicConnection::OnDecryptedPacket(EncryptionLevel level) {
+void QuicConnection::OnDecryptedPacket(size_t /*length*/,
+ EncryptionLevel level) {
last_decrypted_packet_level_ = level;
last_packet_decrypted_ = true;
if (EnforceAntiAmplificationLimit()) {
diff --git a/quic/core/quic_connection.h b/quic/core/quic_connection.h
index 136eb90..10ebebb 100644
--- a/quic/core/quic_connection.h
+++ b/quic/core/quic_connection.h
@@ -612,7 +612,7 @@
absl::string_view retry_without_tag) override;
bool OnUnauthenticatedPublicHeader(const QuicPacketHeader& header) override;
bool OnUnauthenticatedHeader(const QuicPacketHeader& header) override;
- void OnDecryptedPacket(EncryptionLevel level) override;
+ void OnDecryptedPacket(size_t length, EncryptionLevel level) override;
bool OnPacketHeader(const QuicPacketHeader& header) override;
void OnCoalescedPacket(const QuicEncryptedPacket& packet) override;
void OnUndecryptablePacket(const QuicEncryptedPacket& packet,
@@ -1233,6 +1233,13 @@
// list.
bool HandleWriteBlocked();
+ // Whether connection enforces anti-amplification limit.
+ bool EnforceAntiAmplificationLimit() const;
+
+ void AddBytesReceivedBeforeAddressValidation(size_t length) {
+ bytes_received_before_address_validation_ += length;
+ }
+
private:
friend class test::QuicConnectionPeer;
@@ -1455,9 +1462,6 @@
// Whether incoming_connection_ids_ contains connection_id.
bool HasIncomingConnectionId(QuicConnectionId connection_id);
- // Whether connection enforces anti-amplification limit.
- bool EnforceAntiAmplificationLimit() const;
-
// Whether connection is limited by amplification factor.
bool LimitedByAmplificationFactor() const;
diff --git a/quic/core/quic_framer.cc b/quic/core/quic_framer.cc
index 98c0dd7..be14a0b 100644
--- a/quic/core/quic_framer.cc
+++ b/quic/core/quic_framer.cc
@@ -1832,8 +1832,9 @@
size_t decrypted_length = 0;
EncryptionLevel decrypted_level;
- if (!DecryptPayload(encrypted, associated_data, *header, decrypted_buffer,
- buffer_length, &decrypted_length, &decrypted_level)) {
+ if (!DecryptPayload(packet.length(), encrypted, associated_data, *header,
+ decrypted_buffer, buffer_length, &decrypted_length,
+ &decrypted_level)) {
if (IsIetfStatelessResetPacket(*header)) {
// This is a stateless reset packet.
QuicIetfStatelessResetPacket packet(
@@ -1934,8 +1935,9 @@
size_t decrypted_length = 0;
EncryptionLevel decrypted_level;
- if (!DecryptPayload(encrypted, associated_data, *header, decrypted_buffer,
- buffer_length, &decrypted_length, &decrypted_level)) {
+ if (!DecryptPayload(packet.length(), encrypted, associated_data, *header,
+ decrypted_buffer, buffer_length, &decrypted_length,
+ &decrypted_level)) {
const EncryptionLevel decryption_level = decrypter_level_;
// This version uses trial decryption so we always report to our visitor
// that we are not certain we have the correct decryption key.
@@ -4694,7 +4696,8 @@
return encrypter_[ENCRYPTION_FORWARD_SECURE]->GetConfidentialityLimit();
}
-bool QuicFramer::DecryptPayload(absl::string_view encrypted,
+bool QuicFramer::DecryptPayload(size_t udp_packet_length,
+ absl::string_view encrypted,
absl::string_view associated_data,
const QuicPacketHeader& header,
char* decrypted_buffer,
@@ -4788,7 +4791,7 @@
header.packet_number.ToUint64(), associated_data, encrypted,
decrypted_buffer, decrypted_length, buffer_length);
if (success) {
- visitor_->OnDecryptedPacket(level);
+ visitor_->OnDecryptedPacket(udp_packet_length, level);
*decrypted_level = level;
potential_peer_key_update_attempt_count_ = 0;
if (attempt_key_update) {
@@ -4835,7 +4838,8 @@
decrypted_buffer, decrypted_length, buffer_length);
}
if (success) {
- visitor_->OnDecryptedPacket(alternative_decrypter_level_);
+ visitor_->OnDecryptedPacket(udp_packet_length,
+ alternative_decrypter_level_);
*decrypted_level = decrypter_level_;
if (alternative_decrypter_latch_) {
if (!EncryptionLevelIsValid(alternative_decrypter_level_)) {
diff --git a/quic/core/quic_framer.h b/quic/core/quic_framer.h
index fba99f8..bed6162 100644
--- a/quic/core/quic_framer.h
+++ b/quic/core/quic_framer.h
@@ -121,9 +121,9 @@
// cease.
virtual bool OnUnauthenticatedHeader(const QuicPacketHeader& header) = 0;
- // Called when a packet has been decrypted. |level| is the encryption level
- // of the packet.
- virtual void OnDecryptedPacket(EncryptionLevel level) = 0;
+ // Called when a packet has been decrypted. |length| is the packet length,
+ // and |level| is the encryption level of the packet.
+ virtual void OnDecryptedPacket(size_t length, EncryptionLevel level) = 0;
// Called when the complete header of a packet had been parsed.
// If OnPacketHeader returns false, framing for this packet will cease.
@@ -849,7 +849,8 @@
bool no_message_length,
QuicMessageFrame* frame);
- bool DecryptPayload(absl::string_view encrypted,
+ bool DecryptPayload(size_t udp_packet_length,
+ absl::string_view encrypted,
absl::string_view associated_data,
const QuicPacketHeader& header,
char* decrypted_buffer,
diff --git a/quic/core/quic_framer_test.cc b/quic/core/quic_framer_test.cc
index da6cd5a..04eca30 100644
--- a/quic/core/quic_framer_test.cc
+++ b/quic/core/quic_framer_test.cc
@@ -290,7 +290,8 @@
return true;
}
- void OnDecryptedPacket(EncryptionLevel /*level*/) override {
+ void OnDecryptedPacket(size_t /*length*/,
+ EncryptionLevel /*level*/) override {
EXPECT_EQ(0u, framer_->current_received_frame_type());
}
@@ -9765,7 +9766,7 @@
EXPECT_CALL(visitor, OnPacketComplete());
EXPECT_CALL(visitor, OnUnauthenticatedPublicHeader(_)).WillOnce(Return(true));
EXPECT_CALL(visitor, OnUnauthenticatedHeader(_)).WillOnce(Return(true));
- EXPECT_CALL(visitor, OnDecryptedPacket(_));
+ EXPECT_CALL(visitor, OnDecryptedPacket(_, _));
unsigned char* p = packet;
size_t p_size = ABSL_ARRAYSIZE(packet);
@@ -9824,7 +9825,7 @@
.Times(1)
.WillOnce(Return(true));
EXPECT_CALL(visitor, OnPacketHeader(_)).Times(1).WillOnce(Return(true));
- EXPECT_CALL(visitor, OnDecryptedPacket(_)).Times(1);
+ EXPECT_CALL(visitor, OnDecryptedPacket(_, _)).Times(1);
EXPECT_CALL(visitor, OnError(_)).Times(0);
EXPECT_CALL(visitor, OnStreamFrame(_)).Times(0);
if (!QuicVersionUsesCryptoFrames(framer_.version().transport_version)) {
@@ -9870,7 +9871,7 @@
.Times(1)
.WillOnce(Return(true));
EXPECT_CALL(visitor, OnPacketHeader(_)).Times(1);
- EXPECT_CALL(visitor, OnDecryptedPacket(_)).Times(1);
+ EXPECT_CALL(visitor, OnDecryptedPacket(_, _)).Times(1);
EXPECT_CALL(visitor, OnError(_)).Times(1);
EXPECT_CALL(visitor, OnStreamFrame(_)).Times(0);
EXPECT_CALL(visitor, OnPacketComplete()).Times(0);
diff --git a/quic/core/quic_packet_creator_test.cc b/quic/core/quic_packet_creator_test.cc
index b33389d..91dbf24 100644
--- a/quic/core/quic_packet_creator_test.cc
+++ b/quic/core/quic_packet_creator_test.cc
@@ -317,7 +317,7 @@
EXPECT_CALL(framer_visitor_, OnPacket());
EXPECT_CALL(framer_visitor_, OnUnauthenticatedPublicHeader(_));
EXPECT_CALL(framer_visitor_, OnUnauthenticatedHeader(_));
- EXPECT_CALL(framer_visitor_, OnDecryptedPacket(_));
+ EXPECT_CALL(framer_visitor_, OnDecryptedPacket(_, _));
EXPECT_CALL(framer_visitor_, OnPacketHeader(_));
EXPECT_CALL(framer_visitor_, OnAckFrameStart(_, _))
.WillOnce(Return(true));
@@ -355,7 +355,7 @@
EXPECT_CALL(framer_visitor_, OnPacket());
EXPECT_CALL(framer_visitor_, OnUnauthenticatedPublicHeader(_));
EXPECT_CALL(framer_visitor_, OnUnauthenticatedHeader(_));
- EXPECT_CALL(framer_visitor_, OnDecryptedPacket(_));
+ EXPECT_CALL(framer_visitor_, OnDecryptedPacket(_, _));
EXPECT_CALL(framer_visitor_, OnPacketHeader(_));
EXPECT_CALL(framer_visitor_, OnConnectionCloseFrame(_));
EXPECT_CALL(framer_visitor_, OnPacketComplete());
@@ -931,7 +931,7 @@
EXPECT_CALL(framer_visitor_, OnPacket());
EXPECT_CALL(framer_visitor_, OnUnauthenticatedPublicHeader(_));
EXPECT_CALL(framer_visitor_, OnUnauthenticatedHeader(_));
- EXPECT_CALL(framer_visitor_, OnDecryptedPacket(_));
+ EXPECT_CALL(framer_visitor_, OnDecryptedPacket(_, _));
EXPECT_CALL(framer_visitor_, OnPacketHeader(_));
if (VersionHasIetfQuicFrames(creator_.transport_version())) {
EXPECT_CALL(framer_visitor_, OnPathChallengeFrame(_));
@@ -963,7 +963,7 @@
EXPECT_CALL(framer_visitor_, OnPacket());
EXPECT_CALL(framer_visitor_, OnUnauthenticatedPublicHeader(_));
EXPECT_CALL(framer_visitor_, OnUnauthenticatedHeader(_));
- EXPECT_CALL(framer_visitor_, OnDecryptedPacket(_));
+ EXPECT_CALL(framer_visitor_, OnDecryptedPacket(_, _));
EXPECT_CALL(framer_visitor_, OnPacketHeader(_));
EXPECT_CALL(framer_visitor_, OnPathChallengeFrame(_));
EXPECT_CALL(framer_visitor_, OnPaddingFrame(_));
@@ -993,7 +993,7 @@
EXPECT_CALL(framer_visitor_, OnPacket());
EXPECT_CALL(framer_visitor_, OnUnauthenticatedPublicHeader(_));
EXPECT_CALL(framer_visitor_, OnUnauthenticatedHeader(_));
- EXPECT_CALL(framer_visitor_, OnDecryptedPacket(_));
+ EXPECT_CALL(framer_visitor_, OnDecryptedPacket(_, _));
EXPECT_CALL(framer_visitor_, OnPacketHeader(_));
EXPECT_CALL(framer_visitor_, OnPathResponseFrame(_));
EXPECT_CALL(framer_visitor_, OnPaddingFrame(_));
@@ -1023,7 +1023,7 @@
EXPECT_CALL(framer_visitor_, OnPacket());
EXPECT_CALL(framer_visitor_, OnUnauthenticatedPublicHeader(_));
EXPECT_CALL(framer_visitor_, OnUnauthenticatedHeader(_));
- EXPECT_CALL(framer_visitor_, OnDecryptedPacket(_));
+ EXPECT_CALL(framer_visitor_, OnDecryptedPacket(_, _));
EXPECT_CALL(framer_visitor_, OnPacketHeader(_));
EXPECT_CALL(framer_visitor_, OnPathResponseFrame(_));
EXPECT_CALL(framer_visitor_, OnPacketComplete());
@@ -1054,7 +1054,7 @@
EXPECT_CALL(framer_visitor_, OnPacket());
EXPECT_CALL(framer_visitor_, OnUnauthenticatedPublicHeader(_));
EXPECT_CALL(framer_visitor_, OnUnauthenticatedHeader(_));
- EXPECT_CALL(framer_visitor_, OnDecryptedPacket(_));
+ EXPECT_CALL(framer_visitor_, OnDecryptedPacket(_, _));
EXPECT_CALL(framer_visitor_, OnPacketHeader(_));
EXPECT_CALL(framer_visitor_, OnPathResponseFrame(_)).Times(2);
EXPECT_CALL(framer_visitor_, OnPaddingFrame(_));
@@ -1087,7 +1087,7 @@
EXPECT_CALL(framer_visitor_, OnPacket());
EXPECT_CALL(framer_visitor_, OnUnauthenticatedPublicHeader(_));
EXPECT_CALL(framer_visitor_, OnUnauthenticatedHeader(_));
- EXPECT_CALL(framer_visitor_, OnDecryptedPacket(_));
+ EXPECT_CALL(framer_visitor_, OnDecryptedPacket(_, _));
EXPECT_CALL(framer_visitor_, OnPacketHeader(_));
EXPECT_CALL(framer_visitor_, OnPathResponseFrame(_)).Times(2);
EXPECT_CALL(framer_visitor_, OnPacketComplete());
@@ -1121,7 +1121,7 @@
EXPECT_CALL(framer_visitor_, OnPacket());
EXPECT_CALL(framer_visitor_, OnUnauthenticatedPublicHeader(_));
EXPECT_CALL(framer_visitor_, OnUnauthenticatedHeader(_));
- EXPECT_CALL(framer_visitor_, OnDecryptedPacket(_));
+ EXPECT_CALL(framer_visitor_, OnDecryptedPacket(_, _));
EXPECT_CALL(framer_visitor_, OnPacketHeader(_));
EXPECT_CALL(framer_visitor_, OnPathResponseFrame(_)).Times(3);
EXPECT_CALL(framer_visitor_, OnPaddingFrame(_));
@@ -1156,7 +1156,7 @@
EXPECT_CALL(framer_visitor_, OnPacket());
EXPECT_CALL(framer_visitor_, OnUnauthenticatedPublicHeader(_));
EXPECT_CALL(framer_visitor_, OnUnauthenticatedHeader(_));
- EXPECT_CALL(framer_visitor_, OnDecryptedPacket(_));
+ EXPECT_CALL(framer_visitor_, OnDecryptedPacket(_, _));
EXPECT_CALL(framer_visitor_, OnPacketHeader(_));
EXPECT_CALL(framer_visitor_, OnPathResponseFrame(_)).Times(3);
EXPECT_CALL(framer_visitor_, OnPacketComplete());
@@ -1289,7 +1289,7 @@
EXPECT_CALL(framer_visitor_, OnPacket());
EXPECT_CALL(framer_visitor_, OnUnauthenticatedPublicHeader(_));
EXPECT_CALL(framer_visitor_, OnUnauthenticatedHeader(_));
- EXPECT_CALL(framer_visitor_, OnDecryptedPacket(_));
+ EXPECT_CALL(framer_visitor_, OnDecryptedPacket(_, _));
EXPECT_CALL(framer_visitor_, OnPacketHeader(_))
.WillOnce(DoAll(SaveArg<0>(&header), Return(true)));
if (QuicVersionUsesCryptoFrames(client_framer_.transport_version())) {
@@ -1326,7 +1326,7 @@
EXPECT_CALL(framer_visitor_, OnPacket());
EXPECT_CALL(framer_visitor_, OnUnauthenticatedPublicHeader(_));
EXPECT_CALL(framer_visitor_, OnUnauthenticatedHeader(_));
- EXPECT_CALL(framer_visitor_, OnDecryptedPacket(_));
+ EXPECT_CALL(framer_visitor_, OnDecryptedPacket(_, _));
EXPECT_CALL(framer_visitor_, OnPacketHeader(_))
.WillOnce(DoAll(SaveArg<0>(&header), Return(true)));
if (QuicVersionUsesCryptoFrames(client_framer_.transport_version())) {
@@ -1514,7 +1514,7 @@
EXPECT_CALL(framer_visitor_, OnPacket());
EXPECT_CALL(framer_visitor_, OnUnauthenticatedPublicHeader(_));
EXPECT_CALL(framer_visitor_, OnUnauthenticatedHeader(_));
- EXPECT_CALL(framer_visitor_, OnDecryptedPacket(_));
+ EXPECT_CALL(framer_visitor_, OnDecryptedPacket(_, _));
EXPECT_CALL(framer_visitor_, OnPacketHeader(_));
EXPECT_CALL(framer_visitor_, OnStreamFrame(_));
if (client_framer_.version().HasHeaderProtection()) {
@@ -1604,7 +1604,7 @@
EXPECT_CALL(framer_visitor_, OnPacket());
EXPECT_CALL(framer_visitor_, OnUnauthenticatedPublicHeader(_));
EXPECT_CALL(framer_visitor_, OnUnauthenticatedHeader(_));
- EXPECT_CALL(framer_visitor_, OnDecryptedPacket(_));
+ EXPECT_CALL(framer_visitor_, OnDecryptedPacket(_, _));
EXPECT_CALL(framer_visitor_, OnPacketHeader(_));
EXPECT_CALL(framer_visitor_, OnPaddingFrame(_));
EXPECT_CALL(framer_visitor_, OnPacketComplete());
@@ -1969,7 +1969,7 @@
EXPECT_CALL(framer_visitor_, OnPacket());
EXPECT_CALL(framer_visitor_, OnUnauthenticatedPublicHeader(_));
EXPECT_CALL(framer_visitor_, OnUnauthenticatedHeader(_));
- EXPECT_CALL(framer_visitor_, OnDecryptedPacket(_));
+ EXPECT_CALL(framer_visitor_, OnDecryptedPacket(_, _));
EXPECT_CALL(framer_visitor_, OnPacketHeader(_))
.WillOnce(DoAll(SaveArg<0>(&header), Return(true)));
if (QuicVersionUsesCryptoFrames(client_framer_.transport_version())) {
@@ -2078,7 +2078,7 @@
EXPECT_CALL(framer_visitor_, OnPacket());
EXPECT_CALL(framer_visitor_, OnUnauthenticatedPublicHeader(_));
EXPECT_CALL(framer_visitor_, OnUnauthenticatedHeader(_));
- EXPECT_CALL(framer_visitor_, OnDecryptedPacket(_));
+ EXPECT_CALL(framer_visitor_, OnDecryptedPacket(_, _));
EXPECT_CALL(framer_visitor_, OnPacketHeader(_));
// The packet should only have 2 stream frames.
EXPECT_CALL(framer_visitor_, OnStreamFrame(_));
@@ -2155,7 +2155,7 @@
}));
}
EXPECT_CALL(framer_visitor_, OnUnauthenticatedHeader(_));
- EXPECT_CALL(framer_visitor_, OnDecryptedPacket(_));
+ EXPECT_CALL(framer_visitor_, OnDecryptedPacket(_, _));
EXPECT_CALL(framer_visitor_, OnPacketHeader(_));
EXPECT_CALL(framer_visitor_, OnAckFrameStart(_, _)).WillOnce(Return(true));
EXPECT_CALL(framer_visitor_,
diff --git a/quic/core/quic_session_test.cc b/quic/core/quic_session_test.cc
index 13b0a8d..943025a 100644
--- a/quic/core/quic_session_test.cc
+++ b/quic/core/quic_session_test.cc
@@ -576,7 +576,7 @@
EXPECT_CALL(framer_visitor_, OnPacket());
EXPECT_CALL(framer_visitor_, OnUnauthenticatedPublicHeader(_));
EXPECT_CALL(framer_visitor_, OnUnauthenticatedHeader(_));
- EXPECT_CALL(framer_visitor_, OnDecryptedPacket(_));
+ EXPECT_CALL(framer_visitor_, OnDecryptedPacket(_, _));
EXPECT_CALL(framer_visitor_, OnPacketHeader(_));
EXPECT_CALL(framer_visitor_, OnPathResponseFrame(_))
.WillOnce(
diff --git a/quic/core/tls_chlo_extractor.h b/quic/core/tls_chlo_extractor.h
index 718e5fa..0063808 100644
--- a/quic/core/tls_chlo_extractor.h
+++ b/quic/core/tls_chlo_extractor.h
@@ -74,7 +74,8 @@
bool OnUnauthenticatedHeader(const QuicPacketHeader& /*header*/) override {
return true;
}
- void OnDecryptedPacket(EncryptionLevel /*level*/) override {}
+ void OnDecryptedPacket(size_t /*packet_length*/,
+ EncryptionLevel /*level*/) override {}
bool OnPacketHeader(const QuicPacketHeader& /*header*/) override {
return true;
}
diff --git a/quic/test_tools/crypto_test_utils.cc b/quic/test_tools/crypto_test_utils.cc
index 00f7f1b..960f1d9 100644
--- a/quic/test_tools/crypto_test_utils.cc
+++ b/quic/test_tools/crypto_test_utils.cc
@@ -756,7 +756,9 @@
continue;
}
QuicConnectionPeer::SwapCrypters(dest_conn, framer.framer());
- dest_conn->OnDecryptedPacket(framer.last_decrypted_level());
+ dest_conn->OnDecryptedPacket(
+ source_conn->encrypted_packets_[index]->length(),
+ framer.last_decrypted_level());
if (dest_stream->handshake_protocol() == PROTOCOL_TLS1_3) {
// Try to process the packet with a framer that only has the NullDecrypter
@@ -777,7 +779,9 @@
// packet was decrypted at. This is needed by TLS to know what encryption
// level was used for the data it's receiving, so we plumb this information
// from the SimpleQuicFramer back into the connection.
- dest_conn->OnDecryptedPacket(framer.last_decrypted_level());
+ dest_conn->OnDecryptedPacket(
+ source_conn->encrypted_packets_[index]->length(),
+ framer.last_decrypted_level());
QuicConnectionPeer::SetCurrentPacket(
dest_conn, source_conn->encrypted_packets_[index]->AsStringPiece());
diff --git a/quic/test_tools/quic_test_utils.h b/quic/test_tools/quic_test_utils.h
index 5c217c7..b575311 100644
--- a/quic/test_tools/quic_test_utils.h
+++ b/quic/test_tools/quic_test_utils.h
@@ -321,7 +321,10 @@
OnUnauthenticatedPublicHeader,
(const QuicPacketHeader& header),
(override));
- MOCK_METHOD(void, OnDecryptedPacket, (EncryptionLevel level), (override));
+ MOCK_METHOD(void,
+ OnDecryptedPacket,
+ (size_t length, EncryptionLevel level),
+ (override));
MOCK_METHOD(bool,
OnPacketHeader,
(const QuicPacketHeader& header),
@@ -458,7 +461,8 @@
bool OnProtocolVersionMismatch(ParsedQuicVersion version) override;
bool OnUnauthenticatedHeader(const QuicPacketHeader& header) override;
bool OnUnauthenticatedPublicHeader(const QuicPacketHeader& header) override;
- void OnDecryptedPacket(EncryptionLevel /*level*/) override {}
+ void OnDecryptedPacket(size_t /*length*/,
+ EncryptionLevel /*level*/) override {}
bool OnPacketHeader(const QuicPacketHeader& header) override;
void OnCoalescedPacket(const QuicEncryptedPacket& packet) override;
void OnUndecryptablePacket(const QuicEncryptedPacket& packet,
diff --git a/quic/test_tools/simple_quic_framer.cc b/quic/test_tools/simple_quic_framer.cc
index ccce52b..0ae2851 100644
--- a/quic/test_tools/simple_quic_framer.cc
+++ b/quic/test_tools/simple_quic_framer.cc
@@ -52,7 +52,7 @@
bool OnUnauthenticatedHeader(const QuicPacketHeader& /*header*/) override {
return true;
}
- void OnDecryptedPacket(EncryptionLevel level) override {
+ void OnDecryptedPacket(size_t /*length*/, EncryptionLevel level) override {
last_decrypted_level_ = level;
}
bool OnPacketHeader(const QuicPacketHeader& header) override {
diff --git a/quic/tools/quic_packet_printer_bin.cc b/quic/tools/quic_packet_printer_bin.cc
index cfe0b8d..f7e05e5 100644
--- a/quic/tools/quic_packet_printer_bin.cc
+++ b/quic/tools/quic_packet_printer_bin.cc
@@ -80,7 +80,7 @@
std::cerr << "OnUnauthenticatedHeader: " << header;
return true;
}
- void OnDecryptedPacket(EncryptionLevel level) override {
+ void OnDecryptedPacket(size_t /*length*/, EncryptionLevel level) override {
// This only currently supports "decrypting" null encrypted packets.
DCHECK_EQ(ENCRYPTION_INITIAL, level);
std::cerr << "OnDecryptedPacket\n";