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

Side by Side Diff: net/quic/quic_connection.cc

Issue 1714713002: Landing Recent QUIC changes until 2/12/2016 21:32 UTC (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 4 years, 10 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 unified diff | Download patch
« no previous file with comments | « net/quic/quic_connection.h ('k') | net/quic/quic_connection_logger.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "net/quic/quic_connection.h" 5 #include "net/quic/quic_connection.h"
6 6
7 #include <string.h> 7 #include <string.h>
8 #include <sys/types.h> 8 #include <sys/types.h>
9 9
10 #include <algorithm> 10 #include <algorithm>
(...skipping 1493 matching lines...) Expand 10 before | Expand all | Expand 10 after
1504 1504
1505 // Re-packetize the frames with a new packet number for retransmission. 1505 // Re-packetize the frames with a new packet number for retransmission.
1506 // Retransmitted data packets do not use FEC, even when it's enabled. 1506 // Retransmitted data packets do not use FEC, even when it's enabled.
1507 // Retransmitted packets use the same packet number length as the 1507 // Retransmitted packets use the same packet number length as the
1508 // original. 1508 // original.
1509 // Flush the packet generator before making a new packet. 1509 // Flush the packet generator before making a new packet.
1510 // TODO(ianswett): Implement ReserializeAllFrames as a separate path that 1510 // TODO(ianswett): Implement ReserializeAllFrames as a separate path that
1511 // does not require the creator to be flushed. 1511 // does not require the creator to be flushed.
1512 packet_generator_.FlushAllQueuedFrames(); 1512 packet_generator_.FlushAllQueuedFrames();
1513 char buffer[kMaxPacketSize]; 1513 char buffer[kMaxPacketSize];
1514 SerializedPacket serialized_packet = 1514 packet_generator_.ReserializeAllFrames(pending, buffer, kMaxPacketSize);
1515 packet_generator_.ReserializeAllFrames(pending, buffer, kMaxPacketSize);
1516 if (FLAGS_quic_retransmit_via_onserializedpacket) {
1517 DCHECK(serialized_packet.encrypted_buffer == nullptr);
1518 continue;
1519 }
1520 if (serialized_packet.encrypted_buffer == nullptr) {
1521 // We failed to serialize the packet, so close the connection.
1522 // CloseConnection does not send close packet, so no infinite loop here.
1523 // TODO(ianswett): This is actually an internal error, not an encryption
1524 // failure.
1525 CloseConnection(QUIC_ENCRYPTION_FAILURE,
1526 ConnectionCloseSource::FROM_SELF);
1527 return;
1528 }
1529
1530 DVLOG(1) << ENDPOINT << "Retransmitting " << pending.packet_number << " as "
1531 << serialized_packet.packet_number;
1532 serialized_packet.original_packet_number = pending.packet_number;
1533 serialized_packet.transmission_type = pending.transmission_type;
1534 SendOrQueuePacket(&serialized_packet);
1535 } 1515 }
1536 } 1516 }
1537 1517
1538 void QuicConnection::RetransmitUnackedPackets( 1518 void QuicConnection::RetransmitUnackedPackets(
1539 TransmissionType retransmission_type) { 1519 TransmissionType retransmission_type) {
1540 sent_packet_manager_.RetransmitUnackedPackets(retransmission_type); 1520 sent_packet_manager_.RetransmitUnackedPackets(retransmission_type);
1541 1521
1542 WriteIfNotBlocked(); 1522 WriteIfNotBlocked();
1543 } 1523 }
1544 1524
(...skipping 986 matching lines...) Expand 10 before | Expand all | Expand 10 after
2531 void QuicConnection::OnPathClosed(QuicPathId path_id) { 2511 void QuicConnection::OnPathClosed(QuicPathId path_id) {
2532 // Stop receiving packets on this path. 2512 // Stop receiving packets on this path.
2533 framer_.OnPathClosed(path_id); 2513 framer_.OnPathClosed(path_id);
2534 } 2514 }
2535 2515
2536 bool QuicConnection::ack_frame_updated() const { 2516 bool QuicConnection::ack_frame_updated() const {
2537 return received_packet_manager_.ack_frame_updated(); 2517 return received_packet_manager_.ack_frame_updated();
2538 } 2518 }
2539 2519
2540 } // namespace net 2520 } // namespace net
OLDNEW
« no previous file with comments | « net/quic/quic_connection.h ('k') | net/quic/quic_connection_logger.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698