| Index: net/quic/quic_unacked_packet_map.cc
|
| diff --git a/net/quic/quic_unacked_packet_map.cc b/net/quic/quic_unacked_packet_map.cc
|
| index 194443bfadcf871068637040fbf229dec68de3a1..0ada9f62c521c8c5119eb8e6b082db2cb3a33058 100644
|
| --- a/net/quic/quic_unacked_packet_map.cc
|
| +++ b/net/quic/quic_unacked_packet_map.cc
|
| @@ -300,6 +300,25 @@ void QuicUnackedPacketMap::RemoveFromInFlight(
|
| }
|
| }
|
|
|
| +void QuicUnackedPacketMap::StopRetransmissionForStream(QuicStreamId stream_id) {
|
| + if (stream_id == kCryptoStreamId || stream_id == kHeadersStreamId) {
|
| + LOG(DFATAL) << "Special streams must always retransmit data: " << stream_id;
|
| + return;
|
| + }
|
| + QuicPacketSequenceNumber sequence_number = least_unacked_;
|
| + for (UnackedPacketMap::const_iterator it = unacked_packets_.begin();
|
| + it != unacked_packets_.end(); ++it, ++sequence_number) {
|
| + RetransmittableFrames* retransmittable_frames = it->retransmittable_frames;
|
| + if (!retransmittable_frames) {
|
| + continue;
|
| + }
|
| + retransmittable_frames->RemoveFramesForStream(stream_id);
|
| + if (retransmittable_frames->frames().empty()) {
|
| + RemoveRetransmittability(sequence_number);
|
| + }
|
| + }
|
| +}
|
| +
|
| bool QuicUnackedPacketMap::HasUnackedPackets() const {
|
| return !unacked_packets_.empty();
|
| }
|
|
|