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

Unified Diff: net/quic/chromium/quic_stream_factory.cc

Issue 2301453002: Quic use reduced PING timeout when previous connection times out with open streams (Closed)
Patch Set: address rch's comments Created 4 years, 3 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 side-by-side diff with in-line comments
Download patch
Index: net/quic/chromium/quic_stream_factory.cc
diff --git a/net/quic/chromium/quic_stream_factory.cc b/net/quic/chromium/quic_stream_factory.cc
index 37a59dd64d54f95d1b8012f486053076412589b5..05d5cd4aa4cb7c607db2303136bc996e583e1207 100644
--- a/net/quic/chromium/quic_stream_factory.cc
+++ b/net/quic/chromium/quic_stream_factory.cc
@@ -737,6 +737,7 @@ QuicStreamFactory::QuicStreamFactory(
bool close_sessions_on_ip_change,
bool disable_quic_on_timeout_with_open_streams,
int idle_connection_timeout_seconds,
+ int reduced_ping_timeout_seconds,
int packet_reader_yield_after_duration_milliseconds,
bool migrate_sessions_on_network_change,
bool migrate_sessions_early,
@@ -788,6 +789,9 @@ QuicStreamFactory::QuicStreamFactory(
threshold_public_resets_post_handshake),
socket_receive_buffer_size_(socket_receive_buffer_size),
delay_tcp_race_(delay_tcp_race),
+ ping_timeout_(QuicTime::Delta::FromSeconds(kPingTimeoutSecs)),
+ reduced_ping_timeout_(
+ QuicTime::Delta::FromSeconds(reduced_ping_timeout_seconds)),
yield_after_packets_(kQuicYieldAfterPacketsRead),
yield_after_duration_(QuicTime::Delta::FromMilliseconds(
packet_reader_yield_after_duration_milliseconds)),
@@ -1370,6 +1374,13 @@ void QuicStreamFactory::OnSessionClosed(QuicChromiumClientSession* session) {
all_sessions_.erase(session);
}
+void QuicStreamFactory::OnTimeoutWithOpenStreams() {
+ // Reduce PING timeout when connection times out with open stream.
+ if (ping_timeout_ > reduced_ping_timeout_) {
+ ping_timeout_ = reduced_ping_timeout_;
+ }
+}
+
void QuicStreamFactory::CancelRequest(QuicStreamRequest* request) {
RequestMap::iterator request_it = active_requests_.find(request);
DCHECK(request_it != active_requests_.end());
@@ -1792,6 +1803,7 @@ int QuicStreamFactory::CreateSession(
QuicConnection* connection = new QuicConnection(
connection_id, addr, helper_.get(), alarm_factory_.get(), writer,
true /* owns_writer */, Perspective::IS_CLIENT, supported_versions_);
+ connection->set_ping_timeout(ping_timeout_);
connection->SetMaxPacketLength(max_packet_length_);
QuicConfig config = config_;

Powered by Google App Engine
This is Rietveld 408576698