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)