diff options
author | Hugo Landau <hlandau@openssl.org> | 2023-08-22 16:59:57 +0100 |
---|---|---|
committer | Hugo Landau <hlandau@openssl.org> | 2023-08-30 08:28:22 +0100 |
commit | 96fe5e5f964d44dfff8667fb3c0111a25be58c87 (patch) | |
tree | a5bcbd1732db161f17bc3fb071851d78c27ec786 | |
parent | a2608e4bc430d6216bbf36f50a29278e8759103a (diff) |
QUIC APL: Implement backpressure on stream creation
Reviewed-by: Tomas Mraz <tomas@openssl.org>
Reviewed-by: Matt Caswell <matt@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/21815)
-rw-r--r-- | crypto/err/openssl.txt | 2 | ||||
-rw-r--r-- | include/openssl/sslerr.h | 2 | ||||
-rw-r--r-- | ssl/quic/quic_impl.c | 6 |
3 files changed, 5 insertions, 5 deletions
diff --git a/crypto/err/openssl.txt b/crypto/err/openssl.txt index 3eeaa6d5d5..b725032254 100644 --- a/crypto/err/openssl.txt +++ b/crypto/err/openssl.txt @@ -1563,7 +1563,7 @@ SSL_R_SSL_SESSION_ID_HAS_BAD_LENGTH:303:ssl session id has bad length SSL_R_SSL_SESSION_ID_TOO_LONG:408:ssl session id too long SSL_R_SSL_SESSION_VERSION_MISMATCH:210:ssl session version mismatch SSL_R_STILL_IN_INIT:121:still in init -SSL_R_STREAM_COUNT_LIMITED:411:stream count limited +SSL_R_STREAM_COUNT_LIMITED:395:stream count limited SSL_R_STREAM_FINISHED:365:stream finished SSL_R_STREAM_RECV_ONLY:366:stream recv only SSL_R_STREAM_RESET:375:stream reset diff --git a/include/openssl/sslerr.h b/include/openssl/sslerr.h index e1eb9a5692..0a4079b5c8 100644 --- a/include/openssl/sslerr.h +++ b/include/openssl/sslerr.h @@ -290,7 +290,7 @@ # define SSL_R_SSL_SESSION_ID_TOO_LONG 408 # define SSL_R_SSL_SESSION_VERSION_MISMATCH 210 # define SSL_R_STILL_IN_INIT 121 -# define SSL_R_STREAM_COUNT_LIMITED 411 +# define SSL_R_STREAM_COUNT_LIMITED 395 # define SSL_R_STREAM_FINISHED 365 # define SSL_R_STREAM_RECV_ONLY 366 # define SSL_R_STREAM_RESET 375 diff --git a/ssl/quic/quic_impl.c b/ssl/quic/quic_impl.c index 2314cbb819..da4d179ccb 100644 --- a/ssl/quic/quic_impl.c +++ b/ssl/quic/quic_impl.c @@ -1780,7 +1780,7 @@ static SSL *quic_conn_stream_new(QCTX *ctx, uint64_t flags, int need_lock) * opened. */ if (no_blocking || !qc_blocking_mode(qc)) { - QUIC_RAISE_NON_IO_ERROR(ctx, SSL_R_STREAM_COUNT_LIMITED, NULL); + QUIC_RAISE_NON_NORMAL_ERROR(ctx, SSL_R_STREAM_COUNT_LIMITED, NULL); goto err; } @@ -1790,10 +1790,10 @@ static SSL *quic_conn_stream_new(QCTX *ctx, uint64_t flags, int need_lock) /* Blocking mode - wait until we can get a stream. */ ret = block_until_pred(ctx->qc, quic_new_stream_wait, &args, 0); if (!quic_mutation_allowed(qc, /*req_active=*/1)) { - QUIC_RAISE_NON_IO_ERROR(ctx, SSL_R_PROTOCOL_IS_SHUTDOWN, NULL); + QUIC_RAISE_NON_NORMAL_ERROR(ctx, SSL_R_PROTOCOL_IS_SHUTDOWN, NULL); goto err; /* Shutdown before completion */ } else if (ret <= 0) { - QUIC_RAISE_NON_IO_ERROR(ctx, ERR_R_INTERNAL_ERROR, NULL); + QUIC_RAISE_NON_NORMAL_ERROR(ctx, ERR_R_INTERNAL_ERROR, NULL); goto err; /* Non-protocol error */ } } |