summaryrefslogtreecommitdiffstats
path: root/ssl/quic/quic_impl.c
diff options
context:
space:
mode:
Diffstat (limited to 'ssl/quic/quic_impl.c')
-rw-r--r--ssl/quic/quic_impl.c34
1 files changed, 34 insertions, 0 deletions
diff --git a/ssl/quic/quic_impl.c b/ssl/quic/quic_impl.c
index 4550ee3be0..e76526a1b9 100644
--- a/ssl/quic/quic_impl.c
+++ b/ssl/quic/quic_impl.c
@@ -296,6 +296,8 @@ 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->last_error = SSL_ERROR_NONE;
if (!create_channel(qc))
@@ -2094,6 +2096,38 @@ int ossl_quic_attach_stream(SSL *conn, SSL *stream)
}
/*
+ * SSL_set_incoming_stream_reject_policy
+ * -------------------------------------
+ */
+int ossl_quic_set_incoming_stream_reject_policy(SSL *s, int policy,
+ uint64_t aec)
+{
+ int ret = 1;
+ QCTX ctx;
+
+ if (!expect_quic_conn_only(s, &ctx))
+ return 0;
+
+ 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;
+ break;
+
+ default:
+ ret = 0;
+ break;
+ }
+
+ quic_unlock(ctx.qc);
+ return ret;
+}
+
+/*
* QUIC Front-End I/O API: SSL_CTX Management
* ==========================================
*/