mirror of
https://git.haproxy.org/git/haproxy.git/
synced 2025-09-21 22:01:31 +02:00
The main reason for all the trouble we're facing with stream interface error or timeout reports during the connection phase is that we currently can't make the difference between a connection attempt and a validated connection attempt. It is problematic because we tend to switch early to SI_ST_EST but can't always do what we want in this state since it's supposed to be set when we don't need to visit sess_establish() again. This patch introduces a new state betwen SI_ST_CON and SI_ST_EST, which is SI_ST_RDY. It indicates that we've verified that the connection is ready. It's a transient state, like SI_ST_DIS, that cannot persist when leaving process_stream(). For now it is not set, only verified in various tests where SI_ST_CON was used or SI_ST_EST depending on the cases. The stream-int state diagram was minimally updated to reflect the new state, though it is largely obsolete and would need to be seriously updated.