From d5669868e6a546a8e026c9e304048a48c2d4a8d3 Mon Sep 17 00:00:00 2001 From: Frederic Lecaille Date: Wed, 3 Jan 2024 14:36:44 +0100 Subject: [PATCH] MINOR: quic-be: Add a function to initialize the QUIC client transport parameters Implement qc_srv_params_init() to initialize the QUIC client transport parameters in relation with connections to haproxy servers/backends. --- include/haproxy/quic_tp.h | 3 +++ src/quic_tp.c | 18 ++++++++++++++++++ 2 files changed, 21 insertions(+) diff --git a/include/haproxy/quic_tp.h b/include/haproxy/quic_tp.h index d3bdd18c9..651e95cdb 100644 --- a/include/haproxy/quic_tp.h +++ b/include/haproxy/quic_tp.h @@ -26,6 +26,9 @@ int qc_lstnr_params_init(struct quic_conn *qc, const unsigned char *dcid, size_t dcidlen, const unsigned char *scid, size_t scidlen, const struct quic_cid *token_odcid); +void qc_srv_params_init(struct quic_conn *qc, + const struct quic_transport_params *srv_params, + const unsigned char *scid, size_t scidlen); /* Dump transport parameter connection ID value if present (non null length). * Used only for debugging purposes. diff --git a/src/quic_tp.c b/src/quic_tp.c index 6d6557e74..35a514f0e 100644 --- a/src/quic_tp.c +++ b/src/quic_tp.c @@ -806,3 +806,21 @@ int qc_lstnr_params_init(struct quic_conn *qc, return 1; } +/* QUIC client (or haproxy server) only function. + * Initialize the local transport parameters from + * coming from configuration and source connection ID). + * Never fails. + */ +void qc_srv_params_init(struct quic_conn *qc, + const struct quic_transport_params *srv_params, + const unsigned char *scid, size_t scidlen) +{ + struct quic_transport_params *rx_params = &qc->rx.params; + + /* Copy the transport parameters. */ + *rx_params = *srv_params; + /* Copy the initial source connection ID. */ + memcpy(rx_params->initial_source_connection_id.data, scid, scidlen); + rx_params->initial_source_connection_id.len = scidlen; + TRACE_PROTO("\nRX(local) transp. params.", QUIC_EV_TRANSP_PARAMS, qc, rx_params); +}