mirror of
http://git.haproxy.org/git/haproxy.git/
synced 2024-12-19 01:54:37 +00:00
4ef84c9c41
TCP to H1 upgrades are buggy for now. When such upgrade is performed, a crash is experienced. The bug is the result of the recent H1 mux refactoring, and more specifically because of the commit c4bfa59f1 ("MAJOR: mux-h1: Create the client stream as later as possible"). Indeed, now the H1 mux is responsible to create the frontend conn-stream once the request headers are fully received. Thus the TCP to H1 upgrade is a problem because the frontend conn-stream already exists. To fix the bug, we must keep this conn-stream and the associate stream and use it in the H1 mux. To do so, the upgrade will be performed in two steps. First, the mux is upgraded from mux-pt to mux-h1. Then, the mux-h1 performs the stream upgrade, once the request headers are fully received and parsed. To do so, stream_upgrade_from_cs() must be used. This function set the SF_HTX flags to switch the stream to HTX mode, it removes the SF_IGNORE flags and eventually it fills the request channel with some input data. This patch is required to fix the TCP to H1 upgrades and is intimately linked with the next commits. |
||
---|---|---|
.. | ||
haproxy | ||
import |