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 8a198dbb5cf7fddf3dfbd4a7f3b41f8b00a81d5a..1694da25415a1b5b1b198009716d601cb793f012 100644 |
--- a/net/quic/quic_sent_packet_manager.cc |
+++ b/net/quic/quic_sent_packet_manager.cc |
@@ -138,8 +138,17 @@ void QuicSentPacketManager::SetFromConfig(const QuicConfig& config) { |
} |
if (config.HasReceivedConnectionOptions() && |
ContainsQuicTag(config.ReceivedConnectionOptions(), kRENO)) { |
+ if (ContainsQuicTag(config.ReceivedConnectionOptions(), kBYTE)) { |
+ send_algorithm_.reset(SendAlgorithmInterface::Create( |
+ clock_, &rtt_stats_, kRenoBytes, stats_, initial_congestion_window_)); |
+ } else { |
+ send_algorithm_.reset(SendAlgorithmInterface::Create( |
+ clock_, &rtt_stats_, kReno, stats_, initial_congestion_window_)); |
+ } |
+ } else if (config.HasReceivedConnectionOptions() && |
+ ContainsQuicTag(config.ReceivedConnectionOptions(), kBYTE)) { |
send_algorithm_.reset(SendAlgorithmInterface::Create( |
- clock_, &rtt_stats_, kReno, stats_, initial_congestion_window_)); |
+ clock_, &rtt_stats_, kCubicBytes, stats_, initial_congestion_window_)); |
} |
EnablePacing(); |
@@ -932,6 +941,19 @@ void QuicSentPacketManager::OnSerializedPacket( |
ack_notifier_manager_.OnSerializedPacket(serialized_packet); |
} |
+void QuicSentPacketManager::CancelRetransmissionsForStream( |
+ QuicStreamId stream_id) { |
+ unacked_packets_.CancelRetransmissionsForStream(stream_id); |
+ PendingRetransmissionMap::iterator it = pending_retransmissions_.begin(); |
+ while (it != pending_retransmissions_.end()) { |
+ if (HasRetransmittableFrames(it->first)) { |
+ ++it; |
+ continue; |
+ } |
+ it = pending_retransmissions_.erase(it); |
+ } |
+} |
+ |
void QuicSentPacketManager::EnablePacing() { |
// TODO(ianswett): Replace with a method which wraps the send algorithm in a |
// pacer every time a new algorithm is set. |