]> git.ipfire.org Git - thirdparty/haproxy.git/commit
BUG/MEDIUM: h2: split the function to send RST_STREAM
authorWilly Tarreau <w@1wt.eu>
Fri, 10 Nov 2017 09:05:24 +0000 (10:05 +0100)
committerWilly Tarreau <w@1wt.eu>
Fri, 10 Nov 2017 09:05:24 +0000 (10:05 +0100)
commit8c0ea7d21a2b197b2b9a101cb7e747a7cd788ae7
treec6f6dce38f911f5cf114b7b9f1d87962c8d13d48
parent09fdf4b1122670a0ecb86f100aa84353453e7474
BUG/MEDIUM: h2: split the function to send RST_STREAM

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.
src/mux_h2.c