| Index: net/quic/quic_sent_packet_manager.cc
|
| diff --git a/net/quic/quic_sent_packet_manager.cc b/net/quic/quic_sent_packet_manager.cc
|
| index 0bc3af5ca1d8523e9fec8ff9928e135c3b36b2f6..18d8997ebcfee03492694d2912dbaff146b96a07 100644
|
| --- a/net/quic/quic_sent_packet_manager.cc
|
| +++ b/net/quic/quic_sent_packet_manager.cc
|
| @@ -251,19 +251,21 @@ void QuicSentPacketManager::RetransmitUnackedPackets(
|
| }
|
| }
|
|
|
| -void QuicSentPacketManager::DiscardUnencryptedPackets() {
|
| +void QuicSentPacketManager::NeuterUnencryptedPackets() {
|
| QuicUnackedPacketMap::const_iterator unacked_it = unacked_packets_.begin();
|
| while (unacked_it != unacked_packets_.end()) {
|
| const RetransmittableFrames* frames =
|
| unacked_it->second.retransmittable_frames;
|
| if (frames != NULL && frames->encryption_level() == ENCRYPTION_NONE) {
|
| - // Once you're forward secure, no unencrypted packets will be sent.
|
| - // Additionally, it's likely the peer will be forward secure, and no acks
|
| - // for these packets will be received, so mark the packet as handled.
|
| + // Since once you're forward secure, no unencrypted packets will be sent,
|
| + // crypto or otherwise. Unencrypted packets are neutered and abandoned, to
|
| + // ensure they are not retransmitted or considered lost from a congestion
|
| + // control perspective.
|
| pending_retransmissions_.erase(unacked_it->first);
|
| - unacked_it = MarkPacketHandled(unacked_it->first,
|
| - QuicTime::Delta::Zero());
|
| - continue;
|
| + // TODO(ianswett): This may cause packets to linger forever in the
|
| + // UnackedPacketMap.
|
| + unacked_packets_.NeuterPacket(unacked_it->first);
|
| + unacked_packets_.SetNotPending(unacked_it->first);
|
| }
|
| ++unacked_it;
|
| }
|
|
|