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

Side by Side Diff: net/quic/core/quic_flow_controller.cc

Issue 2825083003: Landing Recent QUIC changes until Mon Apr 17 2017 (Closed)
Patch Set: Format Created 3 years, 8 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/core/quic_flow_controller.h ('k') | net/quic/core/quic_framer.cc » ('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 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 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/core/quic_flow_controller.h" 5 #include "net/quic/core/quic_flow_controller.h"
6 6
7 #include <cstdint> 7 #include <cstdint>
8 8
9 #include "net/quic/core/quic_connection.h" 9 #include "net/quic/core/quic_connection.h"
10 #include "net/quic/core/quic_flags.h"
11 #include "net/quic/core/quic_packets.h" 10 #include "net/quic/core/quic_packets.h"
12 #include "net/quic/platform/api/quic_bug_tracker.h" 11 #include "net/quic/platform/api/quic_bug_tracker.h"
13 #include "net/quic/platform/api/quic_flag_utils.h" 12 #include "net/quic/platform/api/quic_flag_utils.h"
13 #include "net/quic/platform/api/quic_flags.h"
14 #include "net/quic/platform/api/quic_logging.h" 14 #include "net/quic/platform/api/quic_logging.h"
15 #include "net/quic/platform/api/quic_str_cat.h" 15 #include "net/quic/platform/api/quic_str_cat.h"
16 16
17 namespace net { 17 namespace net {
18 18
19 #define ENDPOINT \ 19 #define ENDPOINT \
20 (perspective_ == Perspective::IS_SERVER ? "Server: " : "Client: ") 20 (perspective_ == Perspective::IS_SERVER ? "Server: " : "Client: ")
21 21
22 QuicFlowController::QuicFlowController( 22 QuicFlowController::QuicFlowController(
23 QuicConnection* connection, 23 QuicConnection* connection,
(...skipping 219 matching lines...) Expand 10 before | Expand all | Expand 10 after
243 // Only update if send window has increased. 243 // Only update if send window has increased.
244 if (new_send_window_offset <= send_window_offset_) { 244 if (new_send_window_offset <= send_window_offset_) {
245 return false; 245 return false;
246 } 246 }
247 247
248 QUIC_DVLOG(1) << ENDPOINT << "UpdateSendWindowOffset for stream " << id_ 248 QUIC_DVLOG(1) << ENDPOINT << "UpdateSendWindowOffset for stream " << id_
249 << " with new offset " << new_send_window_offset 249 << " with new offset " << new_send_window_offset
250 << " current offset: " << send_window_offset_ 250 << " current offset: " << send_window_offset_
251 << " bytes_sent: " << bytes_sent_; 251 << " bytes_sent: " << bytes_sent_;
252 252
253 const bool blocked = IsBlocked(); 253 // The flow is now unblocked but could have also been unblocked
254 // before. Return true iff this update caused a change from blocked
255 // to unblocked.
256 const bool was_previously_blocked = IsBlocked();
254 send_window_offset_ = new_send_window_offset; 257 send_window_offset_ = new_send_window_offset;
255 return blocked; 258 return was_previously_blocked;
256 } 259 }
257 260
258 void QuicFlowController::EnsureWindowAtLeast(QuicByteCount window_size) { 261 void QuicFlowController::EnsureWindowAtLeast(QuicByteCount window_size) {
259 if (receive_window_size_limit_ >= window_size) { 262 if (receive_window_size_limit_ >= window_size) {
260 return; 263 return;
261 } 264 }
262 265
263 QuicStreamOffset available_window = receive_window_offset_ - bytes_consumed_; 266 QuicStreamOffset available_window = receive_window_offset_ - bytes_consumed_;
264 IncreaseWindowSize(); 267 IncreaseWindowSize();
265 SendWindowUpdate(available_window); 268 SendWindowUpdate(available_window);
(...skipping 17 matching lines...) Expand all
283 if (receive_window_size_ != receive_window_offset_) { 286 if (receive_window_size_ != receive_window_offset_) {
284 QUIC_BUG << "receive_window_size_:" << receive_window_size_ 287 QUIC_BUG << "receive_window_size_:" << receive_window_size_
285 << " != receive_window_offset:" << receive_window_offset_; 288 << " != receive_window_offset:" << receive_window_offset_;
286 return; 289 return;
287 } 290 }
288 receive_window_size_ = size; 291 receive_window_size_ = size;
289 receive_window_offset_ = size; 292 receive_window_offset_ = size;
290 } 293 }
291 294
292 } // namespace net 295 } // namespace net
OLDNEW
« no previous file with comments | « net/quic/core/quic_flow_controller.h ('k') | net/quic/core/quic_framer.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698