Commit a981006cc8 for openssl.org

commit a981006cc8ec94d6108639af57e47a435ab83bdb
Author: Matt Caswell <matt@openssl.foundation>
Date:   Thu Aug 20 11:29:03 2026 +0100

    Guard the QUIC poll test hook so no-quic builds compile

    poll_translate() calls ossl_quic_poll_translate_test_step_cb, a test
    instrumentation hook whose declaration and definition both sit inside
    #ifndef OPENSSL_NO_QUIC. On master that is safe, because the whole of
    poll_translate() is inside the same guard.

    This branch widens that guard to

        #if !defined(OPENSSL_NO_QUIC) || !defined(OPENSSL_NO_DTLS)

    so that SSL_poll() works for DTLS, so poll_translate() is now also
    compiled when QUIC is disabled. The hook call came along into the wider
    region and does not compile there.

    Guard the call itself. Configurations that disable QUIC, directly or by
    cascade from no-tls1_3 or no-tls, then build again.

    Assisted-by: Claude Code:claude-opus-5
    Reviewed-by: Ryan Hooper <ryanh@openssl.foundation>
    Reviewed-by: Tomas Mraz <tomas@openssl.foundation>
    Merge-date: Fri Aug 21 18:10:41 2026
    Merged-from: https://github.com/openssl/openssl/pull/32441

diff --git a/ssl/rio/poll_immediate.c b/ssl/rio/poll_immediate.c
index 18a47aab23..8298572833 100644
--- a/ssl/rio/poll_immediate.c
+++ b/ssl/rio/poll_immediate.c
@@ -470,9 +470,11 @@ static int poll_translate(SSL_POLL_ITEM *items,
     for (i = 0; i < num_items; ++i) {
         item = &ITEM_N(items, stride, i);

+#ifndef OPENSSL_NO_QUIC
         if (ossl_quic_poll_translate_test_step_cb != NULL)
             ossl_quic_poll_translate_test_step_cb(i,
                 ossl_quic_poll_translate_test_step_cb_arg);
+#endif

         switch (item->desc.type) {
         case BIO_POLL_DESCRIPTOR_TYPE_SSL: