OLD | NEW |
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/quic_config.h" | 5 #include "net/quic/quic_config.h" |
6 | 6 |
7 #include <algorithm> | 7 #include <algorithm> |
8 | 8 |
9 #include "base/logging.h" | 9 #include "base/logging.h" |
10 #include "net/quic/crypto/crypto_handshake_message.h" | 10 #include "net/quic/crypto/crypto_handshake_message.h" |
(...skipping 399 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
410 silent_close_(kSCLS, PRESENCE_OPTIONAL), | 410 silent_close_(kSCLS, PRESENCE_OPTIONAL), |
411 max_streams_per_connection_(kMSPC, PRESENCE_OPTIONAL), | 411 max_streams_per_connection_(kMSPC, PRESENCE_OPTIONAL), |
412 max_incoming_dynamic_streams_(kMIDS, PRESENCE_OPTIONAL), | 412 max_incoming_dynamic_streams_(kMIDS, PRESENCE_OPTIONAL), |
413 bytes_for_connection_id_(kTCID, PRESENCE_OPTIONAL), | 413 bytes_for_connection_id_(kTCID, PRESENCE_OPTIONAL), |
414 initial_round_trip_time_us_(kIRTT, PRESENCE_OPTIONAL), | 414 initial_round_trip_time_us_(kIRTT, PRESENCE_OPTIONAL), |
415 initial_stream_flow_control_window_bytes_(kSFCW, PRESENCE_OPTIONAL), | 415 initial_stream_flow_control_window_bytes_(kSFCW, PRESENCE_OPTIONAL), |
416 initial_session_flow_control_window_bytes_(kCFCW, PRESENCE_OPTIONAL), | 416 initial_session_flow_control_window_bytes_(kCFCW, PRESENCE_OPTIONAL), |
417 socket_receive_buffer_(kSRBF, PRESENCE_OPTIONAL), | 417 socket_receive_buffer_(kSRBF, PRESENCE_OPTIONAL), |
418 multipath_enabled_(kMPTH, PRESENCE_OPTIONAL), | 418 multipath_enabled_(kMPTH, PRESENCE_OPTIONAL), |
419 connection_migration_disabled_(kNCMR, PRESENCE_OPTIONAL), | 419 connection_migration_disabled_(kNCMR, PRESENCE_OPTIONAL), |
420 alternate_server_address_(kASAD, PRESENCE_OPTIONAL) { | 420 alternate_server_address_(kASAD, PRESENCE_OPTIONAL), |
| 421 force_hol_blocking_(kFHOL, PRESENCE_OPTIONAL) { |
421 SetDefaults(); | 422 SetDefaults(); |
422 } | 423 } |
423 | 424 |
424 QuicConfig::QuicConfig(const QuicConfig& other) = default; | 425 QuicConfig::QuicConfig(const QuicConfig& other) = default; |
425 | 426 |
426 QuicConfig::~QuicConfig() {} | 427 QuicConfig::~QuicConfig() {} |
427 | 428 |
428 bool QuicConfig::SetInitialReceivedConnectionOptions( | 429 bool QuicConfig::SetInitialReceivedConnectionOptions( |
429 const QuicTagVector& tags) { | 430 const QuicTagVector& tags) { |
430 if (HasReceivedConnectionOptions()) { | 431 if (HasReceivedConnectionOptions()) { |
(...skipping 205 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
636 } | 637 } |
637 | 638 |
638 bool QuicConfig::HasReceivedAlternateServerAddress() const { | 639 bool QuicConfig::HasReceivedAlternateServerAddress() const { |
639 return alternate_server_address_.HasReceivedValue(); | 640 return alternate_server_address_.HasReceivedValue(); |
640 } | 641 } |
641 | 642 |
642 const IPEndPoint& QuicConfig::ReceivedAlternateServerAddress() const { | 643 const IPEndPoint& QuicConfig::ReceivedAlternateServerAddress() const { |
643 return alternate_server_address_.GetReceivedValue(); | 644 return alternate_server_address_.GetReceivedValue(); |
644 } | 645 } |
645 | 646 |
| 647 void QuicConfig::SetForceHolBlocking() { |
| 648 force_hol_blocking_.SetSendValue(1); |
| 649 } |
| 650 |
| 651 bool QuicConfig::ForceHolBlocking(Perspective perspective) const { |
| 652 if (perspective == Perspective::IS_SERVER) { |
| 653 return force_hol_blocking_.HasReceivedValue(); |
| 654 } else { |
| 655 return force_hol_blocking_.HasSendValue(); |
| 656 } |
| 657 } |
| 658 |
646 bool QuicConfig::negotiated() const { | 659 bool QuicConfig::negotiated() const { |
647 // TODO(ianswett): Add the negotiated parameters once and iterate over all | 660 // TODO(ianswett): Add the negotiated parameters once and iterate over all |
648 // of them in negotiated, ToHandshakeMessage, ProcessClientHello, and | 661 // of them in negotiated, ToHandshakeMessage, ProcessClientHello, and |
649 // ProcessServerHello. | 662 // ProcessServerHello. |
650 return idle_connection_state_lifetime_seconds_.negotiated() && | 663 return idle_connection_state_lifetime_seconds_.negotiated() && |
651 max_streams_per_connection_.negotiated(); | 664 max_streams_per_connection_.negotiated(); |
652 } | 665 } |
653 | 666 |
654 void QuicConfig::SetDefaults() { | 667 void QuicConfig::SetDefaults() { |
655 idle_connection_state_lifetime_seconds_.set(kMaximumIdleTimeoutSecs, | 668 idle_connection_state_lifetime_seconds_.set(kMaximumIdleTimeoutSecs, |
(...skipping 79 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
735 error_details); | 748 error_details); |
736 } | 749 } |
737 if (error == QUIC_NO_ERROR) { | 750 if (error == QUIC_NO_ERROR) { |
738 error = alternate_server_address_.ProcessPeerHello(peer_hello, hello_type, | 751 error = alternate_server_address_.ProcessPeerHello(peer_hello, hello_type, |
739 error_details); | 752 error_details); |
740 } | 753 } |
741 return error; | 754 return error; |
742 } | 755 } |
743 | 756 |
744 } // namespace net | 757 } // namespace net |
OLD | NEW |