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

Side by Side Diff: net/quic/core/quic_config.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_config.h ('k') | net/quic/core/quic_config_test.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 (c) 2013 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2013 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_config.h" 5 #include "net/quic/core/quic_config.h"
6 6
7 #include <algorithm> 7 #include <algorithm>
8 8
9 #include "net/quic/core/crypto/crypto_handshake_message.h" 9 #include "net/quic/core/crypto/crypto_handshake_message.h"
10 #include "net/quic/core/crypto/crypto_protocol.h" 10 #include "net/quic/core/crypto/crypto_protocol.h"
11 #include "net/quic/core/quic_flags.h"
12 #include "net/quic/core/quic_socket_address_coder.h" 11 #include "net/quic/core/quic_socket_address_coder.h"
13 #include "net/quic/core/quic_utils.h" 12 #include "net/quic/core/quic_utils.h"
14 #include "net/quic/platform/api/quic_bug_tracker.h" 13 #include "net/quic/platform/api/quic_bug_tracker.h"
15 #include "net/quic/platform/api/quic_flag_utils.h" 14 #include "net/quic/platform/api/quic_flag_utils.h"
15 #include "net/quic/platform/api/quic_flags.h"
16 #include "net/quic/platform/api/quic_logging.h" 16 #include "net/quic/platform/api/quic_logging.h"
17 #include "net/quic/platform/api/quic_string_piece.h" 17 #include "net/quic/platform/api/quic_string_piece.h"
18 18
19 using std::string; 19 using std::string;
20 20
21 namespace net { 21 namespace net {
22 22
23 // Reads the value corresponding to |name_| from |msg| into |out|. If the 23 // Reads the value corresponding to |name_| from |msg| into |out|. If the
24 // |name_| is absent in |msg| and |presence| is set to OPTIONAL |out| is set 24 // |name_| is absent in |msg| and |presence| is set to OPTIONAL |out| is set
25 // to |default_value|. 25 // to |default_value|.
(...skipping 308 matching lines...) Expand 10 before | Expand all | Expand 10 after
334 max_streams_per_connection_(kMSPC, PRESENCE_OPTIONAL), 334 max_streams_per_connection_(kMSPC, PRESENCE_OPTIONAL),
335 max_incoming_dynamic_streams_(kMIDS, PRESENCE_OPTIONAL), 335 max_incoming_dynamic_streams_(kMIDS, PRESENCE_OPTIONAL),
336 bytes_for_connection_id_(kTCID, PRESENCE_OPTIONAL), 336 bytes_for_connection_id_(kTCID, PRESENCE_OPTIONAL),
337 initial_round_trip_time_us_(kIRTT, PRESENCE_OPTIONAL), 337 initial_round_trip_time_us_(kIRTT, PRESENCE_OPTIONAL),
338 initial_stream_flow_control_window_bytes_(kSFCW, PRESENCE_OPTIONAL), 338 initial_stream_flow_control_window_bytes_(kSFCW, PRESENCE_OPTIONAL),
339 initial_session_flow_control_window_bytes_(kCFCW, PRESENCE_OPTIONAL), 339 initial_session_flow_control_window_bytes_(kCFCW, PRESENCE_OPTIONAL),
340 socket_receive_buffer_(kSRBF, PRESENCE_OPTIONAL), 340 socket_receive_buffer_(kSRBF, PRESENCE_OPTIONAL),
341 connection_migration_disabled_(kNCMR, PRESENCE_OPTIONAL), 341 connection_migration_disabled_(kNCMR, PRESENCE_OPTIONAL),
342 alternate_server_address_(kASAD, PRESENCE_OPTIONAL), 342 alternate_server_address_(kASAD, PRESENCE_OPTIONAL),
343 force_hol_blocking_(kFHL2, PRESENCE_OPTIONAL), 343 force_hol_blocking_(kFHL2, PRESENCE_OPTIONAL),
344 support_max_header_list_size_(kSMHL, PRESENCE_OPTIONAL), 344 support_max_header_list_size_(kSMHL, PRESENCE_OPTIONAL) {
345 latched_no_socket_receive_buffer_(
346 FLAGS_quic_reloadable_flag_quic_no_socket_receive_buffer) {
347 SetDefaults(); 345 SetDefaults();
348 } 346 }
349 347
350 QuicConfig::QuicConfig(const QuicConfig& other) = default; 348 QuicConfig::QuicConfig(const QuicConfig& other) = default;
351 349
352 QuicConfig::~QuicConfig() {} 350 QuicConfig::~QuicConfig() {}
353 351
354 bool QuicConfig::SetInitialReceivedConnectionOptions( 352 bool QuicConfig::SetInitialReceivedConnectionOptions(
355 const QuicTagVector& tags) { 353 const QuicTagVector& tags) {
356 if (HasReceivedConnectionOptions()) { 354 if (HasReceivedConnectionOptions()) {
(...skipping 180 matching lines...) Expand 10 before | Expand all | Expand 10 after
537 } 535 }
538 536
539 bool QuicConfig::HasReceivedInitialSessionFlowControlWindowBytes() const { 537 bool QuicConfig::HasReceivedInitialSessionFlowControlWindowBytes() const {
540 return initial_session_flow_control_window_bytes_.HasReceivedValue(); 538 return initial_session_flow_control_window_bytes_.HasReceivedValue();
541 } 539 }
542 540
543 uint32_t QuicConfig::ReceivedInitialSessionFlowControlWindowBytes() const { 541 uint32_t QuicConfig::ReceivedInitialSessionFlowControlWindowBytes() const {
544 return initial_session_flow_control_window_bytes_.GetReceivedValue(); 542 return initial_session_flow_control_window_bytes_.GetReceivedValue();
545 } 543 }
546 544
547 void QuicConfig::SetSocketReceiveBufferToSend(uint32_t tcp_receive_window) {
548 if (latched_no_socket_receive_buffer_) {
549 QUIC_FLAG_COUNT_N(quic_reloadable_flag_quic_no_socket_receive_buffer, 1, 3);
550 } else {
551 socket_receive_buffer_.SetSendValue(tcp_receive_window);
552 }
553 }
554
555 bool QuicConfig::HasReceivedSocketReceiveBuffer() const {
556 return socket_receive_buffer_.HasReceivedValue();
557 }
558
559 uint32_t QuicConfig::ReceivedSocketReceiveBuffer() const {
560 return socket_receive_buffer_.GetReceivedValue();
561 }
562
563 void QuicConfig::SetDisableConnectionMigration() { 545 void QuicConfig::SetDisableConnectionMigration() {
564 connection_migration_disabled_.SetSendValue(1); 546 connection_migration_disabled_.SetSendValue(1);
565 } 547 }
566 548
567 bool QuicConfig::DisableConnectionMigration() const { 549 bool QuicConfig::DisableConnectionMigration() const {
568 return connection_migration_disabled_.HasReceivedValue(); 550 return connection_migration_disabled_.HasReceivedValue();
569 } 551 }
570 552
571 void QuicConfig::SetAlternateServerAddressToSend( 553 void QuicConfig::SetAlternateServerAddressToSend(
572 const QuicSocketAddress& alternate_server_address) { 554 const QuicSocketAddress& alternate_server_address) {
(...skipping 58 matching lines...) Expand 10 before | Expand all | Expand 10 after
631 613
632 void QuicConfig::ToHandshakeMessage(CryptoHandshakeMessage* out) const { 614 void QuicConfig::ToHandshakeMessage(CryptoHandshakeMessage* out) const {
633 idle_network_timeout_seconds_.ToHandshakeMessage(out); 615 idle_network_timeout_seconds_.ToHandshakeMessage(out);
634 silent_close_.ToHandshakeMessage(out); 616 silent_close_.ToHandshakeMessage(out);
635 max_streams_per_connection_.ToHandshakeMessage(out); 617 max_streams_per_connection_.ToHandshakeMessage(out);
636 max_incoming_dynamic_streams_.ToHandshakeMessage(out); 618 max_incoming_dynamic_streams_.ToHandshakeMessage(out);
637 bytes_for_connection_id_.ToHandshakeMessage(out); 619 bytes_for_connection_id_.ToHandshakeMessage(out);
638 initial_round_trip_time_us_.ToHandshakeMessage(out); 620 initial_round_trip_time_us_.ToHandshakeMessage(out);
639 initial_stream_flow_control_window_bytes_.ToHandshakeMessage(out); 621 initial_stream_flow_control_window_bytes_.ToHandshakeMessage(out);
640 initial_session_flow_control_window_bytes_.ToHandshakeMessage(out); 622 initial_session_flow_control_window_bytes_.ToHandshakeMessage(out);
641 if (latched_no_socket_receive_buffer_) {
642 QUIC_FLAG_COUNT_N(quic_reloadable_flag_quic_no_socket_receive_buffer, 2, 3);
643 } else {
644 socket_receive_buffer_.ToHandshakeMessage(out);
645 }
646 connection_migration_disabled_.ToHandshakeMessage(out); 623 connection_migration_disabled_.ToHandshakeMessage(out);
647 connection_options_.ToHandshakeMessage(out); 624 connection_options_.ToHandshakeMessage(out);
648 alternate_server_address_.ToHandshakeMessage(out); 625 alternate_server_address_.ToHandshakeMessage(out);
649 force_hol_blocking_.ToHandshakeMessage(out); 626 force_hol_blocking_.ToHandshakeMessage(out);
650 support_max_header_list_size_.ToHandshakeMessage(out); 627 support_max_header_list_size_.ToHandshakeMessage(out);
651 } 628 }
652 629
653 QuicErrorCode QuicConfig::ProcessPeerHello( 630 QuicErrorCode QuicConfig::ProcessPeerHello(
654 const CryptoHandshakeMessage& peer_hello, 631 const CryptoHandshakeMessage& peer_hello,
655 HelloType hello_type, 632 HelloType hello_type,
(...skipping 26 matching lines...) Expand all
682 error_details); 659 error_details);
683 } 660 }
684 if (error == QUIC_NO_ERROR) { 661 if (error == QUIC_NO_ERROR) {
685 error = initial_stream_flow_control_window_bytes_.ProcessPeerHello( 662 error = initial_stream_flow_control_window_bytes_.ProcessPeerHello(
686 peer_hello, hello_type, error_details); 663 peer_hello, hello_type, error_details);
687 } 664 }
688 if (error == QUIC_NO_ERROR) { 665 if (error == QUIC_NO_ERROR) {
689 error = initial_session_flow_control_window_bytes_.ProcessPeerHello( 666 error = initial_session_flow_control_window_bytes_.ProcessPeerHello(
690 peer_hello, hello_type, error_details); 667 peer_hello, hello_type, error_details);
691 } 668 }
692 if (latched_no_socket_receive_buffer_) {
693 QUIC_FLAG_COUNT_N(quic_reloadable_flag_quic_no_socket_receive_buffer, 3, 3);
694 } else if (error == QUIC_NO_ERROR) {
695 error = socket_receive_buffer_.ProcessPeerHello(peer_hello, hello_type,
696 error_details);
697 }
698 if (error == QUIC_NO_ERROR) { 669 if (error == QUIC_NO_ERROR) {
699 error = connection_migration_disabled_.ProcessPeerHello( 670 error = connection_migration_disabled_.ProcessPeerHello(
700 peer_hello, hello_type, error_details); 671 peer_hello, hello_type, error_details);
701 } 672 }
702 if (error == QUIC_NO_ERROR) { 673 if (error == QUIC_NO_ERROR) {
703 error = connection_options_.ProcessPeerHello(peer_hello, hello_type, 674 error = connection_options_.ProcessPeerHello(peer_hello, hello_type,
704 error_details); 675 error_details);
705 } 676 }
706 if (error == QUIC_NO_ERROR) { 677 if (error == QUIC_NO_ERROR) {
707 error = alternate_server_address_.ProcessPeerHello(peer_hello, hello_type, 678 error = alternate_server_address_.ProcessPeerHello(peer_hello, hello_type,
708 error_details); 679 error_details);
709 } 680 }
710 if (error == QUIC_NO_ERROR) { 681 if (error == QUIC_NO_ERROR) {
711 error = force_hol_blocking_.ProcessPeerHello(peer_hello, hello_type, 682 error = force_hol_blocking_.ProcessPeerHello(peer_hello, hello_type,
712 error_details); 683 error_details);
713 } 684 }
714 if (error == QUIC_NO_ERROR) { 685 if (error == QUIC_NO_ERROR) {
715 error = support_max_header_list_size_.ProcessPeerHello( 686 error = support_max_header_list_size_.ProcessPeerHello(
716 peer_hello, hello_type, error_details); 687 peer_hello, hello_type, error_details);
717 } 688 }
718 return error; 689 return error;
719 } 690 }
720 691
721 } // namespace net 692 } // namespace net
OLDNEW
« no previous file with comments | « net/quic/core/quic_config.h ('k') | net/quic/core/quic_config_test.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698