From: Hugo Landau Date: Wed, 13 Sep 2023 12:46:27 +0000 (+0100) Subject: QUIC APL: Wire SSL_get_[rw]poll_descriptor for TLS/DTLS X-Git-Tag: openssl-3.2.0-alpha2~52 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=f26244336f2a1b0d3040fe1db5d1024ec40e0b8b;p=thirdparty%2Fopenssl.git QUIC APL: Wire SSL_get_[rw]poll_descriptor for TLS/DTLS Reviewed-by: Tomas Mraz Reviewed-by: Matt Caswell Reviewed-by: Paul Dale (Merged from https://github.com/openssl/openssl/pull/21979) --- diff --git a/ssl/ssl_lib.c b/ssl/ssl_lib.c index fec9124ce4c..f15fe126a22 100644 --- a/ssl/ssl_lib.c +++ b/ssl/ssl_lib.c @@ -7318,26 +7318,32 @@ int SSL_get_event_timeout(SSL *s, struct timeval *tv, int *is_infinite) int SSL_get_rpoll_descriptor(SSL *s, BIO_POLL_DESCRIPTOR *desc) { -#ifndef OPENSSL_NO_QUIC - if (!IS_QUIC(s)) - return -1; + SSL_CONNECTION *sc = SSL_CONNECTION_FROM_SSL(s); - return ossl_quic_get_rpoll_descriptor(s, desc); -#else - return -1; +#ifndef OPENSSL_NO_QUIC + if (IS_QUIC(s)) + return ossl_quic_get_rpoll_descriptor(s, desc); #endif + + if (sc == NULL || sc->rbio == NULL) + return 0; + + return BIO_get_rpoll_descriptor(sc->rbio, desc); } int SSL_get_wpoll_descriptor(SSL *s, BIO_POLL_DESCRIPTOR *desc) { -#ifndef OPENSSL_NO_QUIC - if (!IS_QUIC(s)) - return -1; + SSL_CONNECTION *sc = SSL_CONNECTION_FROM_SSL(s); - return ossl_quic_get_wpoll_descriptor(s, desc); -#else - return -1; +#ifndef OPENSSL_NO_QUIC + if (IS_QUIC(s)) + return ossl_quic_get_wpoll_descriptor(s, desc); #endif + + if (sc == NULL || sc->wbio == NULL) + return 0; + + return BIO_get_wpoll_descriptor(sc->wbio, desc); } int SSL_net_read_desired(SSL *s)