mirror of
http://git.haproxy.org/git/haproxy.git
synced 2026-02-10 22:52:35 +02:00
There is an issue with how the RST_STREAM frames are sent. Some of them are sent from the demux, either for valid or for closed streams, and some are sent from the mux always for valid streams. At the moment the demux stream ID is used, which is wrong for all streams being muxed, and sometimes results in certain bad HTTP responses causing the emission of an RST_STREAM referencing stream zero. In addition, the stream's blocked flags could be updated even if the stream was the closed or idle ones. We really need to split the function for the two distinct use cases where one is used to send an RST on a condition detected at the connection level (such as a closed stream) and the other one is used to send an RST for a condition detected at the stream level. The first one is used only in the demux, and the other one only by a valid stream.