QUIC MSST: Rename SSL_set_incoming_stream_reject_policy
authorHugo Landau <hlandau@openssl.org>
Mon, 8 May 2023 18:52:45 +0000 (19:52 +0100)
committerHugo Landau <hlandau@openssl.org>
Fri, 12 May 2023 13:47:15 +0000 (14:47 +0100)
Reviewed-by: Matt Caswell <matt@openssl.org>
Reviewed-by: Tomas Mraz <tomas@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/20765)

12 files changed:
doc/build.info
doc/man3/SSL_accept_stream.pod
doc/man3/SSL_attach_stream.pod
doc/man3/SSL_set_incoming_stream_policy.pod [moved from doc/man3/SSL_set_incoming_stream_reject_policy.pod with 78% similarity]
include/internal/quic_ssl.h
include/openssl/ssl.h.in
ssl/quic/quic_impl.c
ssl/quic/quic_local.h
ssl/ssl_lib.c
test/quic_multistream_test.c
util/libssl.num
util/other.syms

index a82221a9fa9bb8f9444e2a3753643181ff49589e..e501b455b989a36f3fb45864a68869ecd944a959 100644 (file)
@@ -2683,10 +2683,10 @@ DEPEND[html/man3/SSL_set_fd.html]=man3/SSL_set_fd.pod
 GENERATE[html/man3/SSL_set_fd.html]=man3/SSL_set_fd.pod
 DEPEND[man/man3/SSL_set_fd.3]=man3/SSL_set_fd.pod
 GENERATE[man/man3/SSL_set_fd.3]=man3/SSL_set_fd.pod
-DEPEND[html/man3/SSL_set_incoming_stream_reject_policy.html]=man3/SSL_set_incoming_stream_reject_policy.pod
-GENERATE[html/man3/SSL_set_incoming_stream_reject_policy.html]=man3/SSL_set_incoming_stream_reject_policy.pod
-DEPEND[man/man3/SSL_set_incoming_stream_reject_policy.3]=man3/SSL_set_incoming_stream_reject_policy.pod
-GENERATE[man/man3/SSL_set_incoming_stream_reject_policy.3]=man3/SSL_set_incoming_stream_reject_policy.pod
+DEPEND[html/man3/SSL_set_incoming_stream_policy.html]=man3/SSL_set_incoming_stream_policy.pod
+GENERATE[html/man3/SSL_set_incoming_stream_policy.html]=man3/SSL_set_incoming_stream_policy.pod
+DEPEND[man/man3/SSL_set_incoming_stream_policy.3]=man3/SSL_set_incoming_stream_policy.pod
+GENERATE[man/man3/SSL_set_incoming_stream_policy.3]=man3/SSL_set_incoming_stream_policy.pod
 DEPEND[html/man3/SSL_set_initial_peer_addr.html]=man3/SSL_set_initial_peer_addr.pod
 GENERATE[html/man3/SSL_set_initial_peer_addr.html]=man3/SSL_set_initial_peer_addr.pod
 DEPEND[man/man3/SSL_set_initial_peer_addr.3]=man3/SSL_set_initial_peer_addr.pod
@@ -3562,7 +3562,7 @@ html/man3/SSL_set_bio.html \
 html/man3/SSL_set_blocking_mode.html \
 html/man3/SSL_set_connect_state.html \
 html/man3/SSL_set_fd.html \
-html/man3/SSL_set_incoming_stream_reject_policy.html \
+html/man3/SSL_set_incoming_stream_policy.html \
 html/man3/SSL_set_initial_peer_addr.html \
 html/man3/SSL_set_retry_verify.html \
 html/man3/SSL_set_session.html \
@@ -4197,7 +4197,7 @@ man/man3/SSL_set_bio.3 \
 man/man3/SSL_set_blocking_mode.3 \
 man/man3/SSL_set_connect_state.3 \
 man/man3/SSL_set_fd.3 \
-man/man3/SSL_set_incoming_stream_reject_policy.3 \
+man/man3/SSL_set_incoming_stream_policy.3 \
 man/man3/SSL_set_initial_peer_addr.3 \
 man/man3/SSL_set_retry_verify.3 \
 man/man3/SSL_set_session.3 \
index e72af899b36a2643fd08ab2567cb06e7b610ac45..d2a06445615ff25740404a23e1fa458eee67f8e7 100644 (file)
@@ -44,8 +44,8 @@ TODO(QUIC): Revise in MSMT PR to mention threading considerations.
 =end comment
 
 Depending on whether default stream functionality is being used, it may be
-necessary to explicitly configure the incoming stream rejection policy before
-streams can be accepted; see L<SSL_set_incoming_stream_reject_policy(3)>.
+necessary to explicitly configure the incoming stream policy before streams can
+be accepted; see L<SSL_set_incoming_stream_policy(3)>.
 
 =begin comment
 
index 298000ac2e44f351d0f0ca0690a838e0bdcf1dc7..60f6315070c9db7a5d8e3b150052c4ec1045f859 100644 (file)
@@ -129,8 +129,8 @@ object if the default stream mode is set to B<SSL_DEFAULT_STREAM_MODE_NONE>, or
 if the QUIC connection SSL object previously had a default stream which was
 detached using SSL_detach_stream().
 
-L<SSL_set_incoming_stream_reject_policy(3)> interacts significantly with the
-default stream functionality.
+L<SSL_set_incoming_stream_policy(3)> interacts significantly with the default
+stream functionality.
 
 =head1 RETURN VALUES
 
@@ -153,7 +153,7 @@ object.
 =head1 SEE ALSO
 
 L<SSL_new_stream(3)>, L<SSL_accept_stream(3)>, L<SSL_free(3)>,
-L<SSL_set_incoming_stream_reject_policy(3)>
+L<SSL_set_incoming_stream_policy(3)>
 
 =head1 HISTORY
 
similarity index 78%
rename from doc/man3/SSL_set_incoming_stream_reject_policy.pod
rename to doc/man3/SSL_set_incoming_stream_policy.pod
index dfc3dffb03a61c47340ed583e23b46ca3bf9d023..a89cbcfb94ce0bb736afd11c6d04f0fda6c37f14 100644 (file)
@@ -2,25 +2,25 @@
 
 =head1 NAME
 
-SSL_set_incoming_stream_reject_policy, SSL_INCOMING_STREAM_REJECT_POLICY_AUTO,
-SSL_INCOMING_STREAM_REJECT_POLICY_ACCEPT,
-SSL_INCOMING_STREAM_REJECT_POLICY_REJECT - manage the QUIC incoming stream
+SSL_set_incoming_stream_policy, SSL_INCOMING_STREAM_POLICY_AUTO,
+SSL_INCOMING_STREAM_POLICY_ACCEPT,
+SSL_INCOMING_STREAM_POLICY_REJECT - manage the QUIC incoming stream
 rejection policy
 
 =head1 SYNOPSIS
 
  #include <openssl/ssl.h>
 
- #define SSL_INCOMING_STREAM_REJECT_POLICY_AUTO
- #define SSL_INCOMING_STREAM_REJECT_POLICY_ACCEPT
- #define SSL_INCOMING_STREAM_REJECT_POLICY_REJECT
+ #define SSL_INCOMING_STREAM_POLICY_AUTO
+ #define SSL_INCOMING_STREAM_POLICY_ACCEPT
+ #define SSL_INCOMING_STREAM_POLICY_REJECT
 
- int SSL_set_incoming_stream_reject_policy(SSL *conn, int policy,
+ int SSL_set_incoming_stream_policy(SSL *conn, int policy,
                                            uint64_t app_error_code);
 
 =head1 DESCRIPTION
 
-SSL_set_incoming_stream_reject_policy() policy changes the incoming stream
+SSL_set_incoming_stream_policy() policy changes the incoming stream
 rejection policy for a QUIC connection. Depending on the policy configured,
 OpenSSL QUIC may automatically reject incoming streams initiated by the peer.
 This is intended to ensure that legacy applications using single-stream
@@ -36,7 +36,7 @@ The valid values for I<policy> are:
 
 =over 4
 
-=item SSL_INCOMING_STREAM_REJECT_POLICY_AUTO
+=item SSL_INCOMING_STREAM_POLICY_AUTO
 
 This is the default setting. Incoming streams are accepted according to the
 following rules:
@@ -64,12 +64,12 @@ accepted.
 
 =back
 
-=item SSL_INCOMING_STREAM_REJECT_POLICY_ACCEPT
+=item SSL_INCOMING_STREAM_POLICY_ACCEPT
 
 Always accept incoming streams, allowing them to be dequeued using
 L<SSL_accept_stream(3)>.
 
-=item SSL_INCOMING_STREAM_REJECT_POLICY_REJECT
+=item SSL_INCOMING_STREAM_POLICY_REJECT
 
 Always reject incoming streams.
 
@@ -94,7 +94,7 @@ L<SSL_set_default_stream_mode(3)>, L<SSL_accept_stream(3)>
 
 =head1 HISTORY
 
-SSL_set_incoming_stream_reject_policy() was added in OpenSSL 3.2.
+SSL_set_incoming_stream_policy() was added in OpenSSL 3.2.
 
 =head1 COPYRIGHT
 
index 050bfe9d24f40f51a80635b07506afc1251e8870..054ec30280816a3d8b54d6052c9f3a8cc49288c9 100644 (file)
@@ -72,8 +72,8 @@ __owur uint64_t ossl_quic_get_stream_id(SSL *s);
 __owur int ossl_quic_set_default_stream_mode(SSL *s, uint32_t mode);
 __owur SSL *ossl_quic_detach_stream(SSL *s);
 __owur int ossl_quic_attach_stream(SSL *conn, SSL *stream);
-__owur int ossl_quic_set_incoming_stream_reject_policy(SSL *s, int policy,
-                                                       uint64_t aec);
+__owur int ossl_quic_set_incoming_stream_policy(SSL *s, int policy,
+                                                uint64_t aec);
 __owur SSL *ossl_quic_accept_stream(SSL *s, uint64_t flags);
 __owur size_t ossl_quic_get_accept_stream_queue_len(SSL *s);
 
index 7e574f37b72b15e3f51c970bad9f90f46a60d96d..4d28522bf1ce1e2f5bb57bb7231dfe98fb181f4d 100644 (file)
@@ -2288,10 +2288,10 @@ __owur int SSL_attach_stream(SSL *conn, SSL *stream);
 #define SSL_STREAM_FLAG_UNI     (1U << 0)
 __owur SSL *SSL_new_stream(SSL *s, uint64_t flags);
 
-#define SSL_INCOMING_STREAM_REJECT_POLICY_AUTO      0
-#define SSL_INCOMING_STREAM_REJECT_POLICY_ACCEPT    1
-#define SSL_INCOMING_STREAM_REJECT_POLICY_REJECT    2
-__owur int SSL_set_incoming_stream_reject_policy(SSL *s, int policy, uint64_t aec);
+#define SSL_INCOMING_STREAM_POLICY_AUTO      0
+#define SSL_INCOMING_STREAM_POLICY_ACCEPT    1
+#define SSL_INCOMING_STREAM_POLICY_REJECT    2
+__owur int SSL_set_incoming_stream_policy(SSL *s, int policy, uint64_t aec);
 
 #define SSL_ACCEPT_STREAM_NO_BLOCK      (1U << 0)
 __owur SSL *SSL_accept_stream(SSL *s, uint64_t flags);
index 0826a170d43ba2d82b0e7a4b93a9e8d0bab32b19..4706756b26f773d9330c70e39430667d764d2053 100644 (file)
@@ -303,8 +303,7 @@ SSL *ossl_quic_new(SSL_CTX *ctx)
     qc->default_stream_mode     = SSL_DEFAULT_STREAM_MODE_AUTO_BIDI;
     qc->default_ssl_mode        = qc->ssl.ctx->mode;
     qc->default_blocking        = 1;
-    qc->incoming_stream_reject_policy
-        = SSL_INCOMING_STREAM_REJECT_POLICY_AUTO;
+    qc->incoming_stream_policy  = SSL_INCOMING_STREAM_POLICY_AUTO;
     qc->last_error              = SSL_ERROR_NONE;
 
     if (!create_channel(qc))
@@ -2238,39 +2237,39 @@ int ossl_quic_attach_stream(SSL *conn, SSL *stream)
 }
 
 /*
- * SSL_set_incoming_stream_reject_policy
- * -------------------------------------
+ * SSL_set_incoming_stream_policy
+ * ------------------------------
  */
 QUIC_NEEDS_LOCK
-static int qc_get_effective_incoming_stream_reject_policy(QUIC_CONNECTION *qc)
+static int qc_get_effective_incoming_stream_policy(QUIC_CONNECTION *qc)
 {
-    switch (qc->incoming_stream_reject_policy) {
-        case SSL_INCOMING_STREAM_REJECT_POLICY_AUTO:
+    switch (qc->incoming_stream_policy) {
+        case SSL_INCOMING_STREAM_POLICY_AUTO:
             if ((qc->default_xso == NULL && !qc->default_xso_created)
                 || qc->default_stream_mode == SSL_DEFAULT_STREAM_MODE_NONE)
-                return SSL_INCOMING_STREAM_REJECT_POLICY_ACCEPT;
+                return SSL_INCOMING_STREAM_POLICY_ACCEPT;
             else
-                return SSL_INCOMING_STREAM_REJECT_POLICY_REJECT;
+                return SSL_INCOMING_STREAM_POLICY_REJECT;
 
         default:
-            return qc->incoming_stream_reject_policy;
+            return qc->incoming_stream_policy;
     }
 }
 
 QUIC_NEEDS_LOCK
 static void qc_update_reject_policy(QUIC_CONNECTION *qc)
 {
-    int policy = qc_get_effective_incoming_stream_reject_policy(qc);
-    int enable_reject = (policy == SSL_INCOMING_STREAM_REJECT_POLICY_REJECT);
+    int policy = qc_get_effective_incoming_stream_policy(qc);
+    int enable_reject = (policy == SSL_INCOMING_STREAM_POLICY_REJECT);
 
     ossl_quic_channel_set_incoming_stream_auto_reject(qc->ch,
                                                       enable_reject,
-                                                      qc->incoming_stream_reject_aec);
+                                                      qc->incoming_stream_aec);
 }
 
 QUIC_TAKES_LOCK
-int ossl_quic_set_incoming_stream_reject_policy(SSL *s, int policy,
-                                                uint64_t aec)
+int ossl_quic_set_incoming_stream_policy(SSL *s, int policy,
+                                         uint64_t aec)
 {
     int ret = 1;
     QCTX ctx;
@@ -2281,11 +2280,11 @@ int ossl_quic_set_incoming_stream_reject_policy(SSL *s, int policy,
     quic_lock(ctx.qc);
 
     switch (policy) {
-    case SSL_INCOMING_STREAM_REJECT_POLICY_AUTO:
-    case SSL_INCOMING_STREAM_REJECT_POLICY_ACCEPT:
-    case SSL_INCOMING_STREAM_REJECT_POLICY_REJECT:
-        ctx.qc->incoming_stream_reject_policy = policy;
-        ctx.qc->incoming_stream_reject_aec    = aec;
+    case SSL_INCOMING_STREAM_POLICY_AUTO:
+    case SSL_INCOMING_STREAM_POLICY_ACCEPT:
+    case SSL_INCOMING_STREAM_POLICY_REJECT:
+        ctx.qc->incoming_stream_policy = policy;
+        ctx.qc->incoming_stream_aec    = aec;
         break;
 
     default:
@@ -2342,8 +2341,8 @@ SSL *ossl_quic_accept_stream(SSL *s, uint64_t flags)
 
     quic_lock(ctx.qc);
 
-    if (qc_get_effective_incoming_stream_reject_policy(ctx.qc)
-        == SSL_INCOMING_STREAM_REJECT_POLICY_REJECT)
+    if (qc_get_effective_incoming_stream_policy(ctx.qc)
+        == SSL_INCOMING_STREAM_POLICY_REJECT)
         goto out;
 
     qsm = ossl_quic_channel_get_qsm(ctx.qc->ch);
index 6e062089f060dda863783d3645484da61c2a0046..a23d039e9c5dc8a2d5f5b4c1107eb565a0a09fe2 100644 (file)
@@ -178,9 +178,9 @@ struct quic_conn_st {
     /* SSL_set_mode. This is not used directly but inherited by new XSOs. */
     uint32_t                        default_ssl_mode;
 
-    /* SSL_set_incoming_stream_reject_policy. */
-    int                             incoming_stream_reject_policy;
-    uint64_t                        incoming_stream_reject_aec;
+    /* SSL_set_incoming_stream_policy. */
+    int                             incoming_stream_policy;
+    uint64_t                        incoming_stream_aec;
 
     /*
      * Last 'normal' error during an app-level I/O operation, used by
index f7e3f497b8e304222acc4a967c2d422e9d8f3fdf..4be70ce60f368c4a68c9565eb73a5bc57f623703 100644 (file)
@@ -7385,13 +7385,13 @@ int SSL_attach_stream(SSL *conn, SSL *stream)
 #endif
 }
 
-int SSL_set_incoming_stream_reject_policy(SSL *s, int policy, uint64_t aec)
+int SSL_set_incoming_stream_policy(SSL *s, int policy, uint64_t aec)
 {
 #ifndef OPENSSL_NO_QUIC
     if (!IS_QUIC(s))
         return 0;
 
-    return ossl_quic_set_incoming_stream_reject_policy(s, policy, aec);
+    return ossl_quic_set_incoming_stream_policy(s, policy, aec);
 #else
     return 0;
 #endif
index 8cfc56e25364910bae6a295b727e4a56a63c92ee..dbfdde0f4c0c4712d9448b60d2cdcb69b643aa90 100644 (file)
@@ -70,7 +70,7 @@ struct script_op {
 #define OPK_C_ACCEPT_STREAM_NONE                    17
 #define OPK_C_FREE_STREAM                           18
 #define OPK_C_SET_DEFAULT_STREAM_MODE               19
-#define OPK_C_SET_INCOMING_STREAM_REJECT_POLICY     20
+#define OPK_C_SET_INCOMING_STREAM_POLICY            20
 #define OPK_C_SHUTDOWN                              21
 #define OPK_C_EXPECT_CONN_CLOSE_INFO                22
 #define OPK_S_EXPECT_CONN_CLOSE_INFO                23
@@ -137,8 +137,8 @@ struct script_op {
     {OPK_C_FREE_STREAM, NULL, 0, NULL, #stream_name},
 #define OP_C_SET_DEFAULT_STREAM_MODE(mode) \
     {OPK_C_SET_DEFAULT_STREAM_MODE, NULL, (mode), NULL, NULL},
-#define OP_C_SET_INCOMING_STREAM_REJECT_POLICY(policy) \
-    {OPK_C_SET_INCOMING_STREAM_REJECT_POLICY, NULL, (policy), NULL, NULL},
+#define OP_C_SET_INCOMING_STREAM_POLICY(policy) \
+    {OPK_C_SET_INCOMING_STREAM_POLICY, NULL, (policy), NULL, NULL},
 #define OP_C_SHUTDOWN() \
     {OPK_C_SHUTDOWN, NULL, 0, NULL, NULL},
 #define OP_C_EXPECT_CONN_CLOSE_INFO(ec, app, remote)                \
@@ -833,13 +833,13 @@ static int run_script(const struct script_op *script, int free_order)
             }
             break;
 
-        case OPK_C_SET_INCOMING_STREAM_REJECT_POLICY:
+        case OPK_C_SET_INCOMING_STREAM_POLICY:
             {
                 if (!TEST_ptr(c_tgt))
                     goto out;
 
-                if (!TEST_true(SSL_set_incoming_stream_reject_policy(c_tgt,
-                                                                     op->arg1, 0)))
+                if (!TEST_true(SSL_set_incoming_stream_policy(c_tgt,
+                                                              op->arg1, 0)))
                     goto out;
             }
             break;
@@ -996,7 +996,7 @@ static const struct script_op script_1[] = {
 static const struct script_op script_2[] = {
     OP_C_SET_ALPN           ("ossltest")
     OP_C_CONNECT_WAIT       ()
-    OP_C_SET_INCOMING_STREAM_REJECT_POLICY(SSL_INCOMING_STREAM_REJECT_POLICY_ACCEPT)
+    OP_C_SET_INCOMING_STREAM_POLICY(SSL_INCOMING_STREAM_POLICY_ACCEPT)
     OP_C_WRITE              (DEFAULT,  "apple", 5)
     OP_S_BIND_STREAM_ID     (a, C_BIDI_ID(0))
     OP_S_READ_EXPECT        (a, "apple", 5)
@@ -1055,14 +1055,14 @@ static const struct script_op script_2[] = {
     OP_C_EXPECT_FIN         (f)
     OP_C_WRITE_FAIL         (f)
 
-    OP_C_SET_INCOMING_STREAM_REJECT_POLICY(SSL_INCOMING_STREAM_REJECT_POLICY_REJECT)
+    OP_C_SET_INCOMING_STREAM_POLICY(SSL_INCOMING_STREAM_POLICY_REJECT)
     OP_S_NEW_STREAM_BIDI    (g, S_BIDI_ID(2))
     OP_S_WRITE              (g, "unseen", 6)
     OP_S_CONCLUDE           (g)
 
     OP_C_ACCEPT_STREAM_NONE ()
 
-    OP_C_SET_INCOMING_STREAM_REJECT_POLICY(SSL_INCOMING_STREAM_REJECT_POLICY_AUTO)
+    OP_C_SET_INCOMING_STREAM_POLICY(SSL_INCOMING_STREAM_POLICY_AUTO)
     OP_S_NEW_STREAM_BIDI    (h, S_BIDI_ID(3))
     OP_S_WRITE              (h, "UNSEEN", 6)
     OP_S_CONCLUDE           (h)
index 457e75f80101f0574ee2cd26ea99dfbd17ed0524..b8500456940ca1f28dfb473ccacacf77899111b8 100644 (file)
@@ -568,7 +568,6 @@ SSL_get_stream_id                       ?   3_2_0   EXIST::FUNCTION:
 SSL_set_default_stream_mode             ?      3_2_0   EXIST::FUNCTION:
 SSL_detach_stream                       ?      3_2_0   EXIST::FUNCTION:
 SSL_attach_stream                       ?      3_2_0   EXIST::FUNCTION:
-SSL_set_incoming_stream_reject_policy   ?      3_2_0   EXIST::FUNCTION:
 SSL_accept_stream                       ?      3_2_0   EXIST::FUNCTION:
 SSL_get_accept_stream_queue_len         ?      3_2_0   EXIST::FUNCTION:
 SSL_stream_reset                        ?      3_2_0   EXIST::FUNCTION:
@@ -577,3 +576,4 @@ SSL_get_stream_write_state              ?   3_2_0   EXIST::FUNCTION:
 SSL_get_stream_read_error_code          ?      3_2_0   EXIST::FUNCTION:
 SSL_get_stream_write_error_code         ?      3_2_0   EXIST::FUNCTION:
 SSL_get_conn_close_info                 ?      3_2_0   EXIST::FUNCTION:
+SSL_set_incoming_stream_policy          ?      3_2_0   EXIST::FUNCTION:
index cecfe4d7423ecc73c0ba0b7f3213a8f94bfef001..11393fe7ec69a392fb56205928a17880c703c81a 100644 (file)
@@ -662,9 +662,9 @@ SSL_ACCEPT_STREAM_NO_BLOCK              define
 SSL_DEFAULT_STREAM_MODE_AUTO_BIDI       define
 SSL_DEFAULT_STREAM_MODE_AUTO_UNI        define
 SSL_DEFAULT_STREAM_MODE_NONE            define
-SSL_INCOMING_STREAM_REJECT_POLICY_ACCEPT define
-SSL_INCOMING_STREAM_REJECT_POLICY_AUTO  define
-SSL_INCOMING_STREAM_REJECT_POLICY_REJECT define
+SSL_INCOMING_STREAM_POLICY_ACCEPT       define
+SSL_INCOMING_STREAM_POLICY_AUTO         define
+SSL_INCOMING_STREAM_POLICY_REJECT       define
 TLS_DEFAULT_CIPHERSUITES                define deprecated 3.0.0
 X509_CRL_http_nbio                      define deprecated 3.0.0
 X509_http_nbio                          define deprecated 3.0.0