]> git.ipfire.org Git - thirdparty/knot-dns.git/commitdiff
tls: set GNUTLS_NO_SIGNAL to disable emitting SIGPIPE by send()
authorDaniel Salzman <daniel.salzman@nic.cz>
Fri, 19 Apr 2024 13:31:34 +0000 (15:31 +0200)
committerDaniel Salzman <daniel.salzman@nic.cz>
Tue, 7 May 2024 05:52:30 +0000 (07:52 +0200)
src/libknot/quic/tls_common.c

index 210c59dddb203188c3483b629978cec6d6aca378..f85ce74d207b0fc0728df255ef1ba76d3162de7d 100644 (file)
@@ -268,15 +268,15 @@ int knot_tls_session(struct gnutls_session_int **session,
                return KNOT_EINVAL;
        }
 
-       gnutls_init_flags_t early_flags = 0;
+       gnutls_init_flags_t flags = GNUTLS_NO_SIGNAL;
        if (early_data) {
-               early_flags |= GNUTLS_ENABLE_EARLY_DATA;
+               flags |= GNUTLS_ENABLE_EARLY_DATA;
 #ifdef ENABLE_QUIC // Next flags aren't available in older GnuTLS versions.
-               early_flags |= GNUTLS_NO_AUTO_SEND_TICKET | GNUTLS_NO_END_OF_EARLY_DATA;
+               flags |= GNUTLS_NO_AUTO_SEND_TICKET | GNUTLS_NO_END_OF_EARLY_DATA;
 #endif
        }
 
-       int ret = gnutls_init(session, (server ? GNUTLS_SERVER : GNUTLS_CLIENT) | early_flags);
+       int ret = gnutls_init(session, (server ? GNUTLS_SERVER : GNUTLS_CLIENT) | flags);
        if (ret == GNUTLS_E_SUCCESS) {
                gnutls_certificate_send_x509_rdn_sequence(*session, 1);
                gnutls_certificate_server_set_request(*session, GNUTLS_CERT_REQUEST);