]> git.ipfire.org Git - thirdparty/haproxy.git/commit
MEDIUM: quic: Heavy task mode with non contiguously bufferized CRYPTO data
authorFrédéric Lécaille <flecaille@haproxy.com>
Tue, 31 Oct 2023 15:23:05 +0000 (16:23 +0100)
committerFrédéric Lécaille <flecaille@haproxy.com>
Thu, 9 Nov 2023 09:32:31 +0000 (10:32 +0100)
commit3a8dd48e3031a873f548e65e685fe8c777d69330
treeb7d93430aaa8bec3c02eefdd9b1aa1e50498738c
parent94d20be1388023bff36d795f501571adfefe8c75
MEDIUM: quic: Heavy task mode with non contiguously bufferized CRYPTO data

This patch sets the handshake task in heavy task mode when receiving in disorder
CRYPTO data which results in in order bufferized CRYPTO data. This is done
thanks to a non-contiguous buffer and from qc_handle_crypto_frm() after having
potentially bufferized CRYPTO data in this buffer.
qc_treat_rx_crypto_frms() is no more called from qc_treat_rx_pkts() but instead
this is where the task is set in heavy task mode. Consequently,
this is the job of qc_ssl_provide_all_quic_data() to call directly
qc_treat_rx_crypto_frms() to provide the in order bufferized CRYPTO data to the
TLS stack. As this function releases the non-contiguous buffer for the CRYPTO
data, if possible, there is no need to do that from qc_treat_rx_crypto_frms()
anymore.
include/haproxy/quic_rx.h
src/quic_rx.c
src/quic_ssl.c