Support idle_timeout of 0 in QUIC TLS gfe-relnote: When a QUIC TLS peer specifies idle_timeout of 0, use the max idle timeout. Protected by disabled flag quic_supports_tls_handshake PiperOrigin-RevId: 246252860 Change-Id: I3dd2ac0622efd019f586940ececd64b4baa60454
diff --git a/quic/core/quic_config.cc b/quic/core/quic_config.cc index b106f41..4880c6d 100644 --- a/quic/core/quic_config.cc +++ b/quic/core/quic_config.cc
@@ -810,7 +810,11 @@ // Intentionally round down to probe too often rather than not often enough. uint64_t idle_timeout_seconds = params.idle_timeout_milliseconds.value() / kNumMillisPerSecond; - if (idle_timeout_seconds > kMaximumIdleTimeoutSecs) { + // An idle timeout of zero indicates it is disabled (in other words, it is + // set to infinity). When the idle timeout is very high, we set it to our + // preferred maximum and still probe that often. + if (idle_timeout_seconds > kMaximumIdleTimeoutSecs || + idle_timeout_seconds == 0) { idle_timeout_seconds = kMaximumIdleTimeoutSecs; } QuicErrorCode error = idle_network_timeout_seconds_.ReceiveValue(