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 12ddf29f7441943375c31b2e587cef2a59da0fa9..0d5913b1a0dceb24717096c21d116473a325797b 100644 |
--- a/net/quic/quic_sent_packet_manager.cc |
+++ b/net/quic/quic_sent_packet_manager.cc |
@@ -128,10 +128,8 @@ void QuicSentPacketManager::SetFromConfig(const QuicConfig& config) { |
} |
// TODO(ianswett): Remove the "HasReceivedLossDetection" branch once |
// the ConnectionOptions code is live everywhere. |
- if ((config.HasReceivedLossDetection() && |
- config.ReceivedLossDetection() == kTIME) || |
- (config.HasReceivedConnectionOptions() && |
- ContainsQuicTag(config.ReceivedConnectionOptions(), kTIME))) { |
+ if (config.HasReceivedConnectionOptions() && |
+ ContainsQuicTag(config.ReceivedConnectionOptions(), kTIME)) { |
loss_algorithm_.reset(LossDetectionInterface::Create(kTime)); |
} |
send_algorithm_->SetFromConfig(config, is_server_); |
@@ -151,6 +149,7 @@ void QuicSentPacketManager::OnSerializedPacket( |
unacked_packets_.AddPacket(serialized_packet); |
if (debug_delegate_ != NULL) { |
+ // TODO(ianswett): Merge calls in the debug delegate. |
debug_delegate_->OnSerializedPacket(serialized_packet); |
} |
} |
@@ -505,14 +504,23 @@ QuicSentPacketManager::GetLeastUnacked() const { |
} |
bool QuicSentPacketManager::OnPacketSent( |
- QuicPacketSequenceNumber sequence_number, |
+ SerializedPacket* serialized_packet, |
+ QuicPacketSequenceNumber original_sequence_number, |
QuicTime sent_time, |
QuicByteCount bytes, |
TransmissionType transmission_type, |
HasRetransmittableData has_retransmittable_data) { |
+ QuicPacketSequenceNumber sequence_number = serialized_packet->sequence_number; |
DCHECK_LT(0u, sequence_number); |
- DCHECK(unacked_packets_.IsUnacked(sequence_number)); |
+ DCHECK(!unacked_packets_.IsUnacked(sequence_number)); |
LOG_IF(DFATAL, bytes == 0) << "Cannot send empty packets."; |
+ if (original_sequence_number == 0) { |
+ OnSerializedPacket(*serialized_packet); |
+ serialized_packet->retransmittable_frames = NULL; |
+ } else { |
+ OnRetransmittedPacket(original_sequence_number, sequence_number); |
+ } |
+ |
if (pending_timer_transmission_count_ > 0) { |
--pending_timer_transmission_count_; |
} |