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

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

Issue 761863002: Clean up type usage and fix MSVC "truncated value" warnings in net/quic/. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: More work Created 6 years 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
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_session.h" 5 #include "net/quic/quic_session.h"
6 6
7 #include "base/stl_util.h" 7 #include "base/stl_util.h"
8 #include "net/quic/crypto/proof_verifier.h" 8 #include "net/quic/crypto/proof_verifier.h"
9 #include "net/quic/quic_connection.h" 9 #include "net/quic/quic_connection.h"
10 #include "net/quic/quic_flow_controller.h" 10 #include "net/quic/quic_flow_controller.h"
(...skipping 419 matching lines...) Expand 10 before | Expand all | Expand 10 after
430 void QuicSession::UpdateFlowControlOnFinalReceivedByteOffset( 430 void QuicSession::UpdateFlowControlOnFinalReceivedByteOffset(
431 QuicStreamId stream_id, QuicStreamOffset final_byte_offset) { 431 QuicStreamId stream_id, QuicStreamOffset final_byte_offset) {
432 map<QuicStreamId, QuicStreamOffset>::iterator it = 432 map<QuicStreamId, QuicStreamOffset>::iterator it =
433 locally_closed_streams_highest_offset_.find(stream_id); 433 locally_closed_streams_highest_offset_.find(stream_id);
434 if (it == locally_closed_streams_highest_offset_.end()) { 434 if (it == locally_closed_streams_highest_offset_.end()) {
435 return; 435 return;
436 } 436 }
437 437
438 DVLOG(1) << ENDPOINT << "Received final byte offset " << final_byte_offset 438 DVLOG(1) << ENDPOINT << "Received final byte offset " << final_byte_offset
439 << " for stream " << stream_id; 439 << " for stream " << stream_id;
440 uint64 offset_diff = final_byte_offset - it->second; 440 QuicByteCount offset_diff = final_byte_offset - it->second;
441 if (flow_controller_->UpdateHighestReceivedOffset( 441 if (flow_controller_->UpdateHighestReceivedOffset(
442 flow_controller_->highest_received_byte_offset() + offset_diff)) { 442 flow_controller_->highest_received_byte_offset() + offset_diff)) {
443 // If the final offset violates flow control, close the connection now. 443 // If the final offset violates flow control, close the connection now.
444 if (flow_controller_->FlowControlViolation()) { 444 if (flow_controller_->FlowControlViolation()) {
445 connection_->SendConnectionClose( 445 connection_->SendConnectionClose(
446 QUIC_FLOW_CONTROL_RECEIVED_TOO_MUCH_DATA); 446 QUIC_FLOW_CONTROL_RECEIVED_TOO_MUCH_DATA);
447 return; 447 return;
448 } 448 }
449 } 449 }
450 450
(...skipping 25 matching lines...) Expand all
476 static_cast<uint32>(max_streams * kMaxStreamsMultiplier)); 476 static_cast<uint32>(max_streams * kMaxStreamsMultiplier));
477 } 477 }
478 set_max_open_streams(max_streams); 478 set_max_open_streams(max_streams);
479 479
480 if (version == QUIC_VERSION_19) { 480 if (version == QUIC_VERSION_19) {
481 // QUIC_VERSION_19 doesn't support independent stream/session flow 481 // QUIC_VERSION_19 doesn't support independent stream/session flow
482 // control windows. 482 // control windows.
483 if (config_.HasReceivedInitialFlowControlWindowBytes()) { 483 if (config_.HasReceivedInitialFlowControlWindowBytes()) {
484 // Streams which were created before the SHLO was received (0-RTT 484 // Streams which were created before the SHLO was received (0-RTT
485 // requests) are now informed of the peer's initial flow control window. 485 // requests) are now informed of the peer's initial flow control window.
486 uint32 new_window = config_.ReceivedInitialFlowControlWindowBytes(); 486 QuicStreamOffset new_window =
487 config_.ReceivedInitialFlowControlWindowBytes();
487 OnNewStreamFlowControlWindow(new_window); 488 OnNewStreamFlowControlWindow(new_window);
488 OnNewSessionFlowControlWindow(new_window); 489 OnNewSessionFlowControlWindow(new_window);
489 } 490 }
490 491
491 return; 492 return;
492 } 493 }
493 494
494 // QUIC_VERSION_21 and higher can have independent stream and session flow 495 // QUIC_VERSION_21 and higher can have independent stream and session flow
495 // control windows. 496 // control windows.
496 if (config_.HasReceivedInitialStreamFlowControlWindowBytes()) { 497 if (config_.HasReceivedInitialStreamFlowControlWindowBytes()) {
497 // Streams which were created before the SHLO was received (0-RTT 498 // Streams which were created before the SHLO was received (0-RTT
498 // requests) are now informed of the peer's initial flow control window. 499 // requests) are now informed of the peer's initial flow control window.
499 OnNewStreamFlowControlWindow( 500 OnNewStreamFlowControlWindow(
500 config_.ReceivedInitialStreamFlowControlWindowBytes()); 501 config_.ReceivedInitialStreamFlowControlWindowBytes());
501 } 502 }
502 if (config_.HasReceivedInitialSessionFlowControlWindowBytes()) { 503 if (config_.HasReceivedInitialSessionFlowControlWindowBytes()) {
503 OnNewSessionFlowControlWindow( 504 OnNewSessionFlowControlWindow(
504 config_.ReceivedInitialSessionFlowControlWindowBytes()); 505 config_.ReceivedInitialSessionFlowControlWindowBytes());
505 } 506 }
506 } 507 }
507 508
508 void QuicSession::OnNewStreamFlowControlWindow(uint32 new_window) { 509 void QuicSession::OnNewStreamFlowControlWindow(QuicStreamOffset new_window) {
509 if (new_window < kDefaultFlowControlSendWindow) { 510 if (new_window < kDefaultFlowControlSendWindow) {
510 LOG(ERROR) 511 LOG(ERROR)
511 << "Peer sent us an invalid stream flow control send window: " 512 << "Peer sent us an invalid stream flow control send window: "
512 << new_window << ", below default: " << kDefaultFlowControlSendWindow; 513 << new_window << ", below default: " << kDefaultFlowControlSendWindow;
513 if (connection_->connected()) { 514 if (connection_->connected()) {
514 connection_->SendConnectionClose(QUIC_FLOW_CONTROL_INVALID_WINDOW); 515 connection_->SendConnectionClose(QUIC_FLOW_CONTROL_INVALID_WINDOW);
515 } 516 }
516 return; 517 return;
517 } 518 }
518 519
519 // Inform all existing streams about the new window. 520 // Inform all existing streams about the new window.
520 if (connection_->version() >= QUIC_VERSION_21) { 521 if (connection_->version() >= QUIC_VERSION_21) {
521 GetCryptoStream()->UpdateSendWindowOffset(new_window); 522 GetCryptoStream()->UpdateSendWindowOffset(new_window);
522 headers_stream_->UpdateSendWindowOffset(new_window); 523 headers_stream_->UpdateSendWindowOffset(new_window);
523 } 524 }
524 for (DataStreamMap::iterator it = stream_map_.begin(); 525 for (DataStreamMap::iterator it = stream_map_.begin();
525 it != stream_map_.end(); ++it) { 526 it != stream_map_.end(); ++it) {
526 it->second->UpdateSendWindowOffset(new_window); 527 it->second->UpdateSendWindowOffset(new_window);
527 } 528 }
528 } 529 }
529 530
530 void QuicSession::OnNewSessionFlowControlWindow(uint32 new_window) { 531 void QuicSession::OnNewSessionFlowControlWindow(QuicStreamOffset new_window) {
531 if (new_window < kDefaultFlowControlSendWindow) { 532 if (new_window < kDefaultFlowControlSendWindow) {
532 LOG(ERROR) 533 LOG(ERROR)
533 << "Peer sent us an invalid session flow control send window: " 534 << "Peer sent us an invalid session flow control send window: "
534 << new_window << ", below default: " << kDefaultFlowControlSendWindow; 535 << new_window << ", below default: " << kDefaultFlowControlSendWindow;
535 if (connection_->connected()) { 536 if (connection_->connected()) {
536 connection_->SendConnectionClose(QUIC_FLOW_CONTROL_INVALID_WINDOW); 537 connection_->SendConnectionClose(QUIC_FLOW_CONTROL_INVALID_WINDOW);
537 } 538 }
538 return; 539 return;
539 } 540 }
540 541
(...skipping 234 matching lines...) Expand 10 before | Expand all | Expand 10 after
775 for (DataStreamMap::iterator it = stream_map_.begin(); 776 for (DataStreamMap::iterator it = stream_map_.begin();
776 it != stream_map_.end(); ++it) { 777 it != stream_map_.end(); ++it) {
777 if (it->second->flow_controller()->IsBlocked()) { 778 if (it->second->flow_controller()->IsBlocked()) {
778 return true; 779 return true;
779 } 780 }
780 } 781 }
781 return false; 782 return false;
782 } 783 }
783 784
784 } // namespace net 785 } // namespace net
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698