QUIC APL: Allow DTLSv1 APIs to be used for compatibility
authorHugo Landau <hlandau@openssl.org>
Wed, 3 May 2023 18:22:15 +0000 (19:22 +0100)
committerTomas Mraz <tomas@openssl.org>
Mon, 29 May 2023 06:51:12 +0000 (08:51 +0200)
Reviewed-by: Matt Caswell <matt@openssl.org>
Reviewed-by: Tim Hudson <tjh@openssl.org>
Reviewed-by: Tomas Mraz <tomas@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/20879)

ssl/quic/quic_impl.c

index 8f319ec977303844813f8fbb08a738762dceba55..d9ee5cf96e2438bb4db06026c6f89b7d2e9384d4 100644 (file)
@@ -1057,6 +1057,18 @@ long ossl_quic_ctrl(SSL *s, int cmd, long larg, void *parg)
         /* This ctrl also needs to be passed to the internal SSL object */
         return SSL_ctrl(ctx.qc->tls, cmd, larg, parg);
 
+    case DTLS_CTRL_GET_TIMEOUT: /* DTLSv1_get_timeout */
+        {
+            int is_infinite;
+
+            if (!ossl_quic_get_event_timeout(s, parg, &is_infinite))
+                return 0;
+
+            return !is_infinite;
+        }
+    case DTLS_CTRL_HANDLE_TIMEOUT: /* DTLSv1_handle_timeout */
+        /* For legacy compatibility with DTLS calls. */
+        return ossl_quic_handle_events(s) == 1 ? 1 : -1;
     default:
         /* Probably a TLS related ctrl. Defer to our internal SSL object */
         return SSL_ctrl(ctx.qc->tls, cmd, larg, parg);