| OLD | NEW |
| 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/chromium/quic_stream_factory.h" | 5 #include "net/quic/chromium/quic_stream_factory.h" |
| 6 | 6 |
| 7 #include <algorithm> | 7 #include <algorithm> |
| 8 #include <tuple> | 8 #include <tuple> |
| 9 #include <utility> | 9 #include <utility> |
| 10 | 10 |
| (...skipping 637 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 648 ChannelIDService* channel_id_service, | 648 ChannelIDService* channel_id_service, |
| 649 TransportSecurityState* transport_security_state, | 649 TransportSecurityState* transport_security_state, |
| 650 CTVerifier* cert_transparency_verifier, | 650 CTVerifier* cert_transparency_verifier, |
| 651 SocketPerformanceWatcherFactory* socket_performance_watcher_factory, | 651 SocketPerformanceWatcherFactory* socket_performance_watcher_factory, |
| 652 QuicCryptoClientStreamFactory* quic_crypto_client_stream_factory, | 652 QuicCryptoClientStreamFactory* quic_crypto_client_stream_factory, |
| 653 QuicRandom* random_generator, | 653 QuicRandom* random_generator, |
| 654 QuicClock* clock, | 654 QuicClock* clock, |
| 655 size_t max_packet_length, | 655 size_t max_packet_length, |
| 656 const std::string& user_agent_id, | 656 const std::string& user_agent_id, |
| 657 const QuicVersionVector& supported_versions, | 657 const QuicVersionVector& supported_versions, |
| 658 bool enable_non_blocking_io, | |
| 659 bool store_server_configs_in_properties, | 658 bool store_server_configs_in_properties, |
| 660 bool close_sessions_on_ip_change, | 659 bool close_sessions_on_ip_change, |
| 661 bool mark_quic_broken_when_network_blackholes, | 660 bool mark_quic_broken_when_network_blackholes, |
| 662 int idle_connection_timeout_seconds, | 661 int idle_connection_timeout_seconds, |
| 663 int reduced_ping_timeout_seconds, | 662 int reduced_ping_timeout_seconds, |
| 664 int packet_reader_yield_after_duration_milliseconds, | 663 int packet_reader_yield_after_duration_milliseconds, |
| 665 bool migrate_sessions_on_network_change, | 664 bool migrate_sessions_on_network_change, |
| 666 bool migrate_sessions_early, | 665 bool migrate_sessions_early, |
| 667 bool allow_server_migration, | 666 bool allow_server_migration, |
| 668 bool force_hol_blocking, | 667 bool force_hol_blocking, |
| (...skipping 18 matching lines...) Expand all Loading... |
| 687 clock_skew_detector_(base::TimeTicks::Now(), base::Time::Now()), | 686 clock_skew_detector_(base::TimeTicks::Now(), base::Time::Now()), |
| 688 socket_performance_watcher_factory_(socket_performance_watcher_factory), | 687 socket_performance_watcher_factory_(socket_performance_watcher_factory), |
| 689 config_(InitializeQuicConfig(connection_options, | 688 config_(InitializeQuicConfig(connection_options, |
| 690 idle_connection_timeout_seconds)), | 689 idle_connection_timeout_seconds)), |
| 691 crypto_config_(base::WrapUnique( | 690 crypto_config_(base::WrapUnique( |
| 692 new ProofVerifierChromium(cert_verifier, | 691 new ProofVerifierChromium(cert_verifier, |
| 693 ct_policy_enforcer, | 692 ct_policy_enforcer, |
| 694 transport_security_state, | 693 transport_security_state, |
| 695 cert_transparency_verifier))), | 694 cert_transparency_verifier))), |
| 696 supported_versions_(supported_versions), | 695 supported_versions_(supported_versions), |
| 697 enable_non_blocking_io_(enable_non_blocking_io), | |
| 698 mark_quic_broken_when_network_blackholes_( | 696 mark_quic_broken_when_network_blackholes_( |
| 699 mark_quic_broken_when_network_blackholes), | 697 mark_quic_broken_when_network_blackholes), |
| 700 store_server_configs_in_properties_(store_server_configs_in_properties), | 698 store_server_configs_in_properties_(store_server_configs_in_properties), |
| 701 ping_timeout_(QuicTime::Delta::FromSeconds(kPingTimeoutSecs)), | 699 ping_timeout_(QuicTime::Delta::FromSeconds(kPingTimeoutSecs)), |
| 702 reduced_ping_timeout_( | 700 reduced_ping_timeout_( |
| 703 QuicTime::Delta::FromSeconds(reduced_ping_timeout_seconds)), | 701 QuicTime::Delta::FromSeconds(reduced_ping_timeout_seconds)), |
| 704 yield_after_packets_(kQuicYieldAfterPacketsRead), | 702 yield_after_packets_(kQuicYieldAfterPacketsRead), |
| 705 yield_after_duration_(QuicTime::Delta::FromMilliseconds( | 703 yield_after_duration_(QuicTime::Delta::FromMilliseconds( |
| 706 packet_reader_yield_after_duration_milliseconds)), | 704 packet_reader_yield_after_duration_milliseconds)), |
| 707 close_sessions_on_ip_change_(close_sessions_on_ip_change), | 705 close_sessions_on_ip_change_(close_sessions_on_ip_change), |
| (...skipping 709 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1417 } | 1415 } |
| 1418 | 1416 |
| 1419 bool QuicStreamFactory::HasActiveCertVerifierJob( | 1417 bool QuicStreamFactory::HasActiveCertVerifierJob( |
| 1420 const QuicServerId& server_id) const { | 1418 const QuicServerId& server_id) const { |
| 1421 return base::ContainsKey(active_cert_verifier_jobs_, server_id); | 1419 return base::ContainsKey(active_cert_verifier_jobs_, server_id); |
| 1422 } | 1420 } |
| 1423 | 1421 |
| 1424 int QuicStreamFactory::ConfigureSocket(DatagramClientSocket* socket, | 1422 int QuicStreamFactory::ConfigureSocket(DatagramClientSocket* socket, |
| 1425 IPEndPoint addr, | 1423 IPEndPoint addr, |
| 1426 NetworkHandle network) { | 1424 NetworkHandle network) { |
| 1427 if (enable_non_blocking_io_) | 1425 socket->UseNonBlockingIO(); |
| 1428 socket->UseNonBlockingIO(); | |
| 1429 | 1426 |
| 1430 int rv; | 1427 int rv; |
| 1431 if (migrate_sessions_on_network_change_) { | 1428 if (migrate_sessions_on_network_change_) { |
| 1432 // If caller leaves network unspecified, use current default network. | 1429 // If caller leaves network unspecified, use current default network. |
| 1433 if (network == NetworkChangeNotifier::kInvalidNetworkHandle) { | 1430 if (network == NetworkChangeNotifier::kInvalidNetworkHandle) { |
| 1434 rv = socket->ConnectUsingDefaultNetwork(addr); | 1431 rv = socket->ConnectUsingDefaultNetwork(addr); |
| 1435 } else { | 1432 } else { |
| 1436 rv = socket->ConnectUsingNetwork(network, addr); | 1433 rv = socket->ConnectUsingNetwork(network, addr); |
| 1437 } | 1434 } |
| 1438 } else { | 1435 } else { |
| (...skipping 296 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1735 // Since the session was active, there's no longer an | 1732 // Since the session was active, there's no longer an |
| 1736 // HttpStreamFactoryImpl::Job running which can mark it broken, unless the TCP | 1733 // HttpStreamFactoryImpl::Job running which can mark it broken, unless the TCP |
| 1737 // job also fails. So to avoid not using QUIC when we otherwise could, we mark | 1734 // job also fails. So to avoid not using QUIC when we otherwise could, we mark |
| 1738 // it as recently broken, which means that 0-RTT will be disabled but we'll | 1735 // it as recently broken, which means that 0-RTT will be disabled but we'll |
| 1739 // still race. | 1736 // still race. |
| 1740 http_server_properties_->MarkAlternativeServiceRecentlyBroken( | 1737 http_server_properties_->MarkAlternativeServiceRecentlyBroken( |
| 1741 alternative_service); | 1738 alternative_service); |
| 1742 } | 1739 } |
| 1743 | 1740 |
| 1744 } // namespace net | 1741 } // namespace net |
| OLD | NEW |