summaryrefslogtreecommitdiffstats
path: root/net/quic/quic_unacked_packet_map.cc
diff options
context:
space:
mode:
authorrtenneti@chromium.org <rtenneti@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2014-02-27 19:39:43 +0000
committerrtenneti@chromium.org <rtenneti@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2014-02-27 19:39:43 +0000
commit3aa9ca7d36a77ac1cf4077ed041b0c624dea8eb2 (patch)
tree034a554e79e1d254e4c15c20ad0d9347c8e7c9e3 /net/quic/quic_unacked_packet_map.cc
parent697b287ede25a3263473acc870a532ca863163bf (diff)
downloadchromium_src-3aa9ca7d36a77ac1cf4077ed041b0c624dea8eb2.zip
chromium_src-3aa9ca7d36a77ac1cf4077ed041b0c624dea8eb2.tar.gz
chromium_src-3aa9ca7d36a77ac1cf4077ed041b0c624dea8eb2.tar.bz2
Land Recent QUIC Changes.
Allow running the test server in secure mode. Merge internal change: 62164374 https://codereview.chromium.org/181413007/ Implement special behaviors (closing and timing out) in the test server. Testing only. Merge internal change: 62158630 https://codereview.chromium.org/177293008/ Moving a preexisting DCHECK to a new and more helpful dfatal. Merge internal change: 62089588 https://codereview.chromium.org/181463007/ PACKET_NBYTE_GUID -> PACKET_NBYTE_CONNECTION_ID GUID->ConnectionId QuicGuid->QuicConnectionId guid->connection_id except for the dos proto, which I'm leaving alone for now. renaming quic guid to connection id. no functional change. Merge internal change: 62087636 https://codereview.chromium.org/181483006/ QUIC-local change to extend per-connection stats. Extending QuicConnectionStats to add two Cubic-related stats. Merge internal change: 61977906 https://codereview.chromium.org/177843017/ Implement an early retransmit timer in QUIC's TcpLossAlgorithm to replace immediate loss and retransmission. Merge internal change: 61976680 https://codereview.chromium.org/182083002/ Add a time based loss detection algorithm to QUIC that loses packets after 1.25RTTs and at least one nack. Merge internal change: 61975778 https://codereview.chromium.org/182063002/ QUIC test cleanup to always use MockLossAlgorithm in QuicConnectionTest. Merge internal change: 61972606 https://codereview.chromium.org/180783003/ Minor optimizations to QuicUnackedPacketMap and QuicSentPacketManager to improve load testing. Merge internal change: 61961987 https://codereview.chromium.org/181433007/ Cleanup: Rename http_message_test_utils.{h,cc,_test.cc} to http_message.{h,cc,_test.cc} This is how it should be named (defines/tests class HTTPMessage), and it's confusingly similar to the unrelated http_message_utils.h n/a (test only) Merge internal change: 61955207 https://codereview.chromium.org/181703005/ Test-only change to QuicConnectionTest to use MockLossAlgorithm instead of specific details of the TCP loss detection algorithm. Merge internal change: 61953382 https://codereview.chromium.org/181693005/ Add mock methods for SendBlocked and SendWindowUpdate in QuicConnection (test only) Merge internal change: 61945606 https://codereview.chromium.org/181973002/ Add SendWindowUpdate and SendBlocked methods to QuicConnection. Not used yet. Merge internal change: 61915742 https://codereview.chromium.org/181413005/ Start using the loss timeout in QuicSentPacketManager and add a mock implementation of the LossDetectionInterface for testing. Merge internal change: 61903890 https://codereview.chromium.org/181723003/ R=rch@chromium.org Review URL: https://codereview.chromium.org/182523002 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@253899 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'net/quic/quic_unacked_packet_map.cc')
-rw-r--r--net/quic/quic_unacked_packet_map.cc15
1 files changed, 10 insertions, 5 deletions
diff --git a/net/quic/quic_unacked_packet_map.cc b/net/quic/quic_unacked_packet_map.cc
index bcafa56..c222ac9 100644
--- a/net/quic/quic_unacked_packet_map.cc
+++ b/net/quic/quic_unacked_packet_map.cc
@@ -205,11 +205,16 @@ bool QuicUnackedPacketMap::IsPending(
void QuicUnackedPacketMap::SetNotPending(
QuicPacketSequenceNumber sequence_number) {
- if (unacked_packets_[sequence_number].pending) {
- LOG_IF(DFATAL,
- bytes_in_flight_ < unacked_packets_[sequence_number].bytes_sent);
- bytes_in_flight_ -= unacked_packets_[sequence_number].bytes_sent;
- unacked_packets_[sequence_number].pending = false;
+ UnackedPacketMap::iterator it = unacked_packets_.find(sequence_number);
+ if (it == unacked_packets_.end()) {
+ LOG(DFATAL) << "SetNotPending called for packet that is not unacked: "
+ << sequence_number;
+ return;
+ }
+ if (it->second.pending) {
+ LOG_IF(DFATAL, bytes_in_flight_ < it->second.bytes_sent);
+ bytes_in_flight_ -= it->second.bytes_sent;
+ it->second.pending = false;
}
}