mirror of
https://git.haproxy.org/git/haproxy.git/
synced 2026-01-26 12:31:31 +01:00
The idle timer task may be used to trigger the client handshake timeout. The hanshake timeout expiration date (qc->hs_expire) is initialized when the connection is allocated. Obviously, this timeout is taken into an account only during the handshake by qc_idle_timer_do_rearm() whose job is to rearm the idle timer. The idle timer expiration date could be initialized only one time, then never updated until the hanshake completes. But this only works if the handshake timeout is smaller than the idle timer task timeout. If the handshake timeout is set greater than the idle timeout, this latter may expire before the handshake timeout. This patch may have an impact on the L1/C1 interop tests (with heavy packet loss or corruption). This is why I guess some implementations with a hanshake timeout support set a big timeout during this test. This is at least the case for ngtcp2 which sets a 180s hanshake timeout! haproxy will certainly have to proceed the same way if it wants to have a chance to pass this test as before this handshake timeout.