Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(733)

Unified Diff: net/quic/quic_connection.cc

Issue 515003003: Remove PacketType from QUIC because the QUEUED type is not used and the (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@dont_send_SCUP_message_74132773
Patch Set: Created 6 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « net/quic/quic_connection.h ('k') | net/quic/quic_connection_test.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: net/quic/quic_connection.cc
diff --git a/net/quic/quic_connection.cc b/net/quic/quic_connection.cc
index 3ca6d9945efbefa49281e4eede2006e3d2f6979d..30e874665e707fa7b80a64c740ccad17bc615913 100644
--- a/net/quic/quic_connection.cc
+++ b/net/quic/quic_connection.cc
@@ -154,17 +154,17 @@ class PingAlarm : public QuicAlarm::Delegate {
DISALLOW_COPY_AND_ASSIGN(PingAlarm);
};
-QuicConnection::PacketType GetPacketType(
+bool IsConnectionClose(
const RetransmittableFrames* retransmittable_frames) {
if (!retransmittable_frames) {
- return QuicConnection::NORMAL;
+ return false;
}
for (size_t i = 0; i < retransmittable_frames->frames().size(); ++i) {
if (retransmittable_frames->frames()[i].type == CONNECTION_CLOSE_FRAME) {
- return QuicConnection::CONNECTION_CLOSE;
+ return true;
}
}
- return QuicConnection::NORMAL;
+ return false;
}
} // namespace
@@ -181,7 +181,7 @@ QuicConnection::QueuedPacket::QueuedPacket(SerializedPacket packet,
HAS_RETRANSMITTABLE_DATA : NO_RETRANSMITTABLE_DATA),
handshake(packet.retransmittable_frames == NULL ?
NOT_HANDSHAKE : packet.retransmittable_frames->HasCryptoHandshake()),
- type(GetPacketType(packet.retransmittable_frames)),
+ is_connection_close(IsConnectionClose(packet.retransmittable_frames)),
length(packet.packet->length()) {
}
@@ -1246,8 +1246,7 @@ void QuicConnection::WritePendingRetransmissions() {
while (sent_packet_manager_.HasPendingRetransmissions()) {
const QuicSentPacketManager::PendingRetransmission pending =
sent_packet_manager_.NextPendingRetransmission();
- if (GetPacketType(&pending.retransmittable_frames) == NORMAL &&
- !CanWrite(HAS_RETRANSMITTABLE_DATA)) {
+ if (!CanWrite(HAS_RETRANSMITTABLE_DATA)) {
break;
}
@@ -1340,16 +1339,6 @@ bool QuicConnection::WritePacket(QueuedPacket packet) {
return true;
}
- // If the packet is CONNECTION_CLOSE, we need to try to send it immediately
- // and encrypt it to hand it off to TimeWaitListManager.
- // If the packet is QUEUED, we don't re-consult the congestion control.
- // This ensures packets are sent in sequence number order.
- // TODO(ianswett): The congestion control should have been consulted before
- // serializing the packet, so this could be turned into a LOG_IF(DFATAL).
- if (packet.type == NORMAL && !CanWrite(packet.retransmittable)) {
- return false;
- }
-
// Some encryption algorithms require the packet sequence numbers not be
// repeated.
DCHECK_LE(sequence_number_of_last_sent_packet_, sequence_number);
@@ -1368,7 +1357,7 @@ bool QuicConnection::WritePacket(QueuedPacket packet) {
// Connection close packets are eventually owned by TimeWaitListManager.
// Others are deleted at the end of this call.
scoped_ptr<QuicEncryptedPacket> encrypted_deleter;
- if (packet.type == CONNECTION_CLOSE) {
+ if (packet.is_connection_close) {
DCHECK(connection_close_packet_.get() == NULL);
connection_close_packet_.reset(encrypted);
// This assures we won't try to write *forced* packets when blocked.
@@ -1538,6 +1527,7 @@ void QuicConnection::OnHandshakeComplete() {
bool QuicConnection::SendOrQueuePacket(EncryptionLevel level,
const SerializedPacket& packet,
TransmissionType transmission_type) {
+ // The caller of this function is responsible for checking CanWrite().
if (packet.packet == NULL) {
LOG(DFATAL) << "NULL packet passed in to SendOrQueuePacket";
return true;
@@ -1548,12 +1538,11 @@ bool QuicConnection::SendOrQueuePacket(EncryptionLevel level,
QueuedPacket queued_packet(packet, level, transmission_type);
// If there are already queued packets, put this at the end,
// unless it's ConnectionClose, in which case it is written immediately.
- if ((queued_packet.type == CONNECTION_CLOSE || queued_packets_.empty()) &&
+ if ((queued_packet.is_connection_close || queued_packets_.empty()) &&
WritePacket(queued_packet)) {
delete packet.packet;
return true;
}
- queued_packet.type = QUEUED;
queued_packets_.push_back(queued_packet);
return false;
}
« no previous file with comments | « net/quic/quic_connection.h ('k') | net/quic/quic_connection_test.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698