]> git.ipfire.org Git - thirdparty/haproxy.git/commit
MEDIUM: mux-quic: implement STOP_SENDING emission
authorAmaury Denoyelle <adenoyelle@haproxy.com>
Fri, 9 Dec 2022 13:58:28 +0000 (14:58 +0100)
committerAmaury Denoyelle <adenoyelle@haproxy.com>
Thu, 22 Dec 2022 15:38:16 +0000 (16:38 +0100)
commit663e872e3a5c8726eb7df41acf54f15037aaa8c1
tree724083f3187c167ee78911f39d60d1301fa3b3f7
parent5854fc08cc3985697580ad1ffac165ca483f4008
MEDIUM: mux-quic: implement STOP_SENDING emission

Implement STOP_SENDING. This is divided in two main functions :
* qcc_abort_stream_read() which can be used by application protocol to
  request for a STOP_SENDING. This set the flag QC_SF_READ_ABORTED.
* qcs_send_reset() is a static function called after the preceding one.
  It will send a STOP_SENDING via qcc_send().

QC_SF_READ_ABORTED flag is now properly used : if activated on a stream
during qcc_recv(), <qcc.app_ops.decode_qcs> callback is skipped. Also,
abort reading on unknown unidirection remote stream is now fully
supported with the emission of a STOP_SENDING as specified by RFC 9000.

This commit is part of implementing H3 errors at the stream level. This
will allows the H3 layer to request the peer to close its endpoint for
an error on a stream.

This should be backported up to 2.7.
include/haproxy/mux_quic-t.h
include/haproxy/mux_quic.h
src/h3.c
src/mux_quic.c