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(