]> git.ipfire.org Git - thirdparty/openssl.git/commitdiff
QUIC APL: Add TODOs for unfinished listener APIs
authorHugo Landau <hlandau@openssl.org>
Thu, 18 Jan 2024 15:23:38 +0000 (15:23 +0000)
committerNeil Horman <nhorman@openssl.org>
Mon, 17 Feb 2025 16:27:32 +0000 (11:27 -0500)
Reviewed-by: Matt Caswell <matt@openssl.org>
Reviewed-by: Neil Horman <nhorman@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/23334)

include/internal/quic_ssl.h
ssl/quic/quic_impl.c
ssl/ssl_lib.c

index f0dcf59ba0b3cc77e9c0ec0caed472b2c38fe2a9..ce7142c51f5f660ccab773c2c8846f60d4065c6e 100644 (file)
@@ -20,6 +20,7 @@
 
 __owur SSL *ossl_quic_new(SSL_CTX *ctx);
 __owur SSL *ossl_quic_new_listener(SSL_CTX *ctx, uint64_t flags);
+__owur SSL *ossl_quic_new_from_listener(SSL *ssl, uint64_t flags);
 __owur int ossl_quic_init(SSL *s);
 void ossl_quic_deinit(SSL *s);
 void ossl_quic_free(SSL *s);
index 9a4062e916fdf8c8373894a4ac37d6d9f9371a9b..457d97af85100d467f72571a37d7993a08420fb6 100644 (file)
@@ -4022,6 +4022,10 @@ int ossl_quic_get_key_update_type(const SSL *s)
  * =================================
  */
 
+/*
+ * SSL_new_listener
+ * ----------------
+ */
 SSL *ossl_quic_new_listener(SSL_CTX *ctx, uint64_t flags)
 {
     QUIC_LISTENER *ql = NULL;
@@ -4056,6 +4060,8 @@ SSL *ossl_quic_new_listener(SSL_CTX *ctx, uint64_t flags)
         goto err;
     }
 
+    /* TODO(QUIC SERVER): Implement SSL_LISTENER_FLAG_NO_ACCEPT */
+
     ossl_quic_port_set_allow_incoming(ql->port, 1);
 
     /* Initialise the QUIC_LISTENER'S object header. */
@@ -4073,6 +4079,16 @@ err:
     return NULL;
 }
 
+/*
+ * SSL_new_from_listener
+ * ---------------------
+ */
+SSL *ossl_quic_new_from_listener(SSL *ssl, uint64_t flags)
+{
+    /* TODO(QUIC SERVER): Implement SSL_new_from_listener */
+    return NULL;
+}
+
 /*
  * SSL_listen
  * ----------
@@ -4123,7 +4139,8 @@ SSL *ossl_quic_accept_connection(SSL *ssl, uint64_t flags)
     if (!ql_listen(ctx.ql))
         goto out;
 
-    /* TODO autotick/block */
+    /* TODO(QUIC SERVER): Autotick */
+    /* TODO(QUIC SERVER): Implement blocking and SSL_ACCEPT_CONNECTION_NO_BLOCK */
 
     new_ch = ossl_quic_port_pop_incoming(ctx.ql->port);
     if (new_ch == NULL) {
index 1438107ae9106188e1cfdd05a39bf6169cf55085..2a575a7598b4f5460136f741d17139bc1a37ab80 100644 (file)
@@ -7910,6 +7910,18 @@ SSL *SSL_new_listener(SSL_CTX *ctx, uint64_t flags)
 #endif
 }
 
+SSL *SSL_new_from_listener(SSL *ssl, uint64_t flags)
+{
+#ifndef OPENSSL_NO_QUIC
+    if (!IS_QUIC(ssl))
+        return NULL;
+
+    return ossl_quic_new_from_listener(ssl, flags);
+#else
+    return NULL;
+#endif
+}
+
 SSL *SSL_accept_connection(SSL *ssl, uint64_t flags)
 {
 #ifndef OPENSSL_NO_QUIC