]> git.ipfire.org Git - thirdparty/haproxy.git/commit
BUG/MINOR: mux-h2: use CANCEL, not STREAM_CLOSED in h2c_frt_handle_data()
authorWilly Tarreau <w@1wt.eu>
Tue, 6 Aug 2019 08:11:02 +0000 (10:11 +0200)
committerWilly Tarreau <w@1wt.eu>
Tue, 6 Aug 2019 08:15:49 +0000 (10:15 +0200)
commit082c45769b00d9da128ea75d72f7b9c35dede8be
treee472111adcdc5b4f84b7b7d674c4730436b2f2c0
parent231f61617014e54332cc743c73306506a56ab78e
BUG/MINOR: mux-h2: use CANCEL, not STREAM_CLOSED in h2c_frt_handle_data()

There is a test on the existence of the conn_stream when receiving data,
to be sure to have somewhere to deliver it. Right now it responds with
STREAM_CLOSED, which is not correct since from an H2 point of view the
stream is not closed and a peer could be upset to see this. After some
analysis, it is important to keep this test to be sure not to fill the
rxbuf then stall the connection. Another option could be to modiffy
h2_frt_transfer_data() to silently discard any contents but the CANCEL
error code is designed exactly for this and to save the peer from
continuing to stream data that will be discarded, so better switch to
using this.

This must be backported as far as 1.8.
src/mux_h2.c