]> git.ipfire.org Git - thirdparty/haproxy.git/commitdiff
MINOR: quic: avoid code duplication in TLS alert callback
authorFrederic Lecaille <flecaille@haproxy.com>
Mon, 1 Dec 2025 15:35:58 +0000 (16:35 +0100)
committerFrederic Lecaille <flecaille@haproxy.com>
Mon, 8 Dec 2025 09:40:59 +0000 (10:40 +0100)
Both the OpenSSL QUIC API TLS alert callback ha_quic_ossl_alert() does exactly
the same thing than the one for quictls API, even if the parameter have different
types.

Call ha_quic_send_alert() quictls callback from ha_quic_ossl_alert OpenSSL
QUIC API callback to avoid such code duplication.

src/quic_ssl.c

index 32d5982e52668a95fef24e244e30b57f27421400..155e9e8ec81ec1d70b90cdf64545a0a9d6ba934b 100644 (file)
@@ -162,6 +162,19 @@ static int qc_ssl_crypto_data_cpy(struct quic_conn *qc, struct quic_enc_level *q
        return ret;
 }
 
+static int ha_quic_send_alert(SSL *ssl, enum ssl_encryption_level_t level, uint8_t alert)
+{
+       struct quic_conn *qc = SSL_get_ex_data(ssl, ssl_qc_app_data_index);
+
+       TRACE_ENTER(QUIC_EV_CONN_SSLALERT, qc);
+
+       TRACE_PROTO("Received TLS alert", QUIC_EV_CONN_SSLALERT, qc, &alert, &level);
+
+       quic_set_tls_alert(qc, alert);
+       TRACE_LEAVE(QUIC_EV_CONN_SSLALERT, qc);
+       return 1;
+}
+
 /* returns 0 on error, 1 on success */
 static int ha_quic_set_encryption_secrets(SSL *ssl, enum ssl_encryption_level_t level,
                                           const uint8_t *read_secret,
@@ -628,17 +641,7 @@ leave:
  */
 static int ha_quic_ossl_alert(SSL *ssl, unsigned char alert_code, void *arg)
 {
-       int ret = 1, alert = alert_code;
-       struct quic_conn *qc = SSL_get_ex_data(ssl, ssl_qc_app_data_index);
-
-       TRACE_ENTER(QUIC_EV_CONN_SSLALERT, qc);
-
-       TRACE_PROTO("Received TLS alert", QUIC_EV_CONN_SSLALERT, qc, &alert);
-       quic_set_tls_alert(qc, alert_code);
-
-       TRACE_LEAVE(QUIC_EV_CONN_SSLALERT, qc);
-
-       return ret;
+       return ha_quic_send_alert(ssl, -1, alert_code);
 }
 
 static const OSSL_DISPATCH ha_quic_dispatch[] = {
@@ -702,19 +705,6 @@ static int ha_quic_flush_flight(SSL *ssl)
        return 1;
 }
 
-static int ha_quic_send_alert(SSL *ssl, enum ssl_encryption_level_t level, uint8_t alert)
-{
-       struct quic_conn *qc = SSL_get_ex_data(ssl, ssl_qc_app_data_index);
-
-       TRACE_ENTER(QUIC_EV_CONN_SSLALERT, qc);
-
-       TRACE_PROTO("Received TLS alert", QUIC_EV_CONN_SSLALERT, qc, &alert, &level);
-
-       quic_set_tls_alert(qc, alert);
-       TRACE_LEAVE(QUIC_EV_CONN_SSLALERT, qc);
-       return 1;
-}
-
 /* QUIC TLS methods */
 #if defined(OPENSSL_IS_AWSLC)
 /* write/read set secret split */