MEDIUM: quic: Heavy task mode during handshake
authorFrédéric Lécaille <flecaille@haproxy.com>
Tue, 31 Oct 2023 14:04:28 +0000 (15:04 +0100)
committerFrédéric Lécaille <flecaille@haproxy.com>
Thu, 9 Nov 2023 09:32:31 +0000 (10:32 +0100)
commit94d20be1388023bff36d795f501571adfefe8c75
treeb08d6ed69367fc5964a6d161487c2c6e8da7d71e
parent84d26bcf3fd74e153dea98ad7d612373ea5c30ae
MEDIUM: quic: Heavy task mode during handshake

Add a new pool for the CRYPTO data frames received in order.
Add ->rx.crypto_frms list to each encryption level to store such frames
when they are received in order from qc_handle_crypto_frm().
Also set the handshake task (qc_conn_io_cb()) in heavy task mode from
this function after having received such frames. When this task
detects that it is set in heavy mode, it calls qc_ssl_provide_all_quic_data()
newly implemented function to provide the CRYPTO data to the TLS task.
Modify quic_conn_enc_level_uninit() to release these CRYPTO frames
when releasing the encryption level they are in relation with.
include/haproxy/quic_frame-t.h
include/haproxy/quic_ssl.h
include/haproxy/quic_tls-t.h
src/quic_conn.c
src/quic_frame.c
src/quic_rx.c
src/quic_ssl.c
src/quic_tls.c