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

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

Issue 139103002: Break out of the loop in QuicSession::OnCanWrite if the QuicConnection (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 6 years, 11 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 | Annotate | Revision Log
« no previous file with comments | « net/quic/quic_connection.h ('k') | net/quic/quic_session.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 #include <algorithm> 9 #include <algorithm>
10 #include <iterator> 10 #include <iterator>
(...skipping 1544 matching lines...) Expand 10 before | Expand all | Expand 10 after
1555 1555
1556 void QuicConnection::Flush() { 1556 void QuicConnection::Flush() {
1557 packet_generator_.FlushAllQueuedFrames(); 1557 packet_generator_.FlushAllQueuedFrames();
1558 } 1558 }
1559 1559
1560 bool QuicConnection::HasQueuedData() const { 1560 bool QuicConnection::HasQueuedData() const {
1561 return pending_version_negotiation_packet_ || 1561 return pending_version_negotiation_packet_ ||
1562 !queued_packets_.empty() || packet_generator_.HasQueuedFrames(); 1562 !queued_packets_.empty() || packet_generator_.HasQueuedFrames();
1563 } 1563 }
1564 1564
1565 bool QuicConnection::CanWriteStreamData() {
1566 if (HasQueuedData()) {
1567 return false;
1568 }
1569
1570 IsHandshake pending_handshake = visitor_->HasPendingHandshake() ?
1571 IS_HANDSHAKE : NOT_HANDSHAKE;
1572 // Sending queued packets may have caused the socket to become write blocked,
1573 // or the congestion manager to prohibit sending. If we've sent everything
1574 // we had queued and we're still not blocked, let the visitor know it can
1575 // write more.
1576 return ShouldGeneratePacket(NOT_RETRANSMISSION, HAS_RETRANSMITTABLE_DATA,
1577 pending_handshake);
1578 }
1579
1565 void QuicConnection::SetIdleNetworkTimeout(QuicTime::Delta timeout) { 1580 void QuicConnection::SetIdleNetworkTimeout(QuicTime::Delta timeout) {
1566 if (timeout < idle_network_timeout_) { 1581 if (timeout < idle_network_timeout_) {
1567 idle_network_timeout_ = timeout; 1582 idle_network_timeout_ = timeout;
1568 CheckForTimeout(); 1583 CheckForTimeout();
1569 } else { 1584 } else {
1570 idle_network_timeout_ = timeout; 1585 idle_network_timeout_ = timeout;
1571 } 1586 }
1572 } 1587 }
1573 1588
1574 void QuicConnection::SetOverallConnectionTimeout(QuicTime::Delta timeout) { 1589 void QuicConnection::SetOverallConnectionTimeout(QuicTime::Delta timeout) {
(...skipping 74 matching lines...) Expand 10 before | Expand all | Expand 10 after
1649 // If we changed the generator's batch state, restore original batch state. 1664 // If we changed the generator's batch state, restore original batch state.
1650 if (!already_in_batch_mode_) { 1665 if (!already_in_batch_mode_) {
1651 DVLOG(1) << "Leaving Batch Mode."; 1666 DVLOG(1) << "Leaving Batch Mode.";
1652 connection_->packet_generator_.FinishBatchOperations(); 1667 connection_->packet_generator_.FinishBatchOperations();
1653 } 1668 }
1654 DCHECK_EQ(already_in_batch_mode_, 1669 DCHECK_EQ(already_in_batch_mode_,
1655 connection_->packet_generator_.InBatchMode()); 1670 connection_->packet_generator_.InBatchMode());
1656 } 1671 }
1657 1672
1658 } // namespace net 1673 } // namespace net
OLDNEW
« no previous file with comments | « net/quic/quic_connection.h ('k') | net/quic/quic_session.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698