| Index: net/quic/quic_received_packet_manager.cc
|
| diff --git a/net/quic/quic_received_packet_manager.cc b/net/quic/quic_received_packet_manager.cc
|
| index a04ad97c63acfbd70a8e0e5f8db834028d6e9fda..cea2b696f4d3a508dfd6702856ff3a44a179da96 100644
|
| --- a/net/quic/quic_received_packet_manager.cc
|
| +++ b/net/quic/quic_received_packet_manager.cc
|
| @@ -43,8 +43,7 @@ QuicReceivedPacketManager::~QuicReceivedPacketManager() {}
|
| void QuicReceivedPacketManager::RecordPacketReceived(
|
| QuicByteCount bytes,
|
| const QuicPacketHeader& header,
|
| - QuicTime receipt_time,
|
| - bool revived) {
|
| + QuicTime receipt_time) {
|
| QuicPacketSequenceNumber sequence_number = header.packet_sequence_number;
|
| DCHECK(IsAwaitingPacket(sequence_number));
|
|
|
| @@ -65,11 +64,14 @@ void QuicReceivedPacketManager::RecordPacketReceived(
|
| }
|
| RecordPacketEntropyHash(sequence_number, header.entropy_hash);
|
|
|
| - // Don't update the receive algorithm for revived packets.
|
| - if (!revived) {
|
| - receive_algorithm_->RecordIncomingPacket(
|
| - bytes, sequence_number, receipt_time);
|
| - }
|
| + receive_algorithm_->RecordIncomingPacket(
|
| + bytes, sequence_number, receipt_time);
|
| +}
|
| +
|
| +void QuicReceivedPacketManager::RecordPacketRevived(
|
| + QuicPacketSequenceNumber sequence_number) {
|
| + LOG_IF(DFATAL, !IsAwaitingPacket(sequence_number));
|
| + received_info_.revived_packets.insert(sequence_number);
|
| }
|
|
|
| bool QuicReceivedPacketManager::IsMissing(
|
| @@ -196,6 +198,9 @@ void QuicReceivedPacketManager::UpdatePacketInformationReceivedByPeer(
|
|
|
| bool QuicReceivedPacketManager::DontWaitForPacketsBefore(
|
| QuicPacketSequenceNumber least_unacked) {
|
| + received_info_.revived_packets.erase(
|
| + received_info_.revived_packets.begin(),
|
| + received_info_.revived_packets.lower_bound(least_unacked));
|
| size_t missing_packets_count = received_info_.missing_packets.size();
|
| received_info_.missing_packets.erase(
|
| received_info_.missing_packets.begin(),
|
|
|