mirror of
http://git.haproxy.org/git/haproxy.git/
synced 2024-12-14 07:24:32 +00:00
590a0514f2
The handshake processing time used to be stored per stream, which was valid when there was exactly one stream per session. With H2 and multiplexing it's not the case anymore and the reported handshake times are wrong in the logs as it's computed between the TCP accept() and the stream creation. Let's first move the handshake where it belongs, which is the session. However, this is not enough because we don't want to report an excessive idle time either for H2 (since many requests use the connection). So the solution used here is to have the stream retrieve sess->tv_accept and the handshake duration when the stream is created, and let the mux immediately reset them. This way, the handshake time becomes zero for the second and subsequent requests in H2 (which was already the case in H1), and the idle time exactly counts how long the connection remained unused while it could be used, so in H1 it runs from the end of the previous response and in H2 it runs from the end of the previous request since the channel is already available. This patch will need to be backported to 1.8. |
||
---|---|---|
.. | ||
design-thoughts | ||
internals | ||
lua-api | ||
51Degrees-device-detection.txt | ||
acl.fig | ||
architecture.txt | ||
close-options.txt | ||
coding-style.txt | ||
configuration.txt | ||
cookie-options.txt | ||
DeviceAtlas-device-detection.txt | ||
gpl.txt | ||
haproxy.1 | ||
intro.txt | ||
lgpl.txt | ||
linux-syn-cookies.txt | ||
lua.txt | ||
management.txt | ||
netscaler-client-ip-insertion-protocol.txt | ||
network-namespaces.txt | ||
peers-v2.0.txt | ||
peers.txt | ||
proxy-protocol.txt | ||
queuing.fig | ||
regression-testing.txt | ||
SPOE.txt | ||
WURFL-device-detection.txt |