mirror of
https://github.com/openssl/openssl.git
synced 2025-01-24 13:55:42 +08:00
QUIC APL: Fix logic of SSL_get_stream_type
Reviewed-by: Matt Caswell <matt@openssl.org> Reviewed-by: Tomas Mraz <tomas@openssl.org> (Merged from https://github.com/openssl/openssl/pull/20765)
This commit is contained in:
parent
22b1a96ff7
commit
59c5c016e5
@ -2009,18 +2009,21 @@ int ossl_quic_get_stream_type(SSL *s)
|
||||
QCTX ctx;
|
||||
|
||||
if (!expect_quic(s, &ctx))
|
||||
return SSL_STREAM_TYPE_NONE;
|
||||
return SSL_STREAM_TYPE_BIDI;
|
||||
|
||||
if (ctx.xso == NULL) {
|
||||
/*
|
||||
* If we are deferring XSO creation, assume single stream mode and
|
||||
* default to BIDI, as the deferred XSO which will be created will be
|
||||
* bidirectional.
|
||||
* If deferred XSO creation has yet to occur, proceed according to the
|
||||
* default stream mode. If AUTO_BIDI or AUTO_UNI is set, we cannot know
|
||||
* what kind of stream will be created yet, so return BIDI on the basis
|
||||
* that at this time, the client still has the option of calling
|
||||
* SSL_read() or SSL_write() first.
|
||||
*/
|
||||
if (!ctx.qc->default_xso_created)
|
||||
return SSL_STREAM_TYPE_BIDI;
|
||||
else
|
||||
if (ctx.qc->default_xso_created
|
||||
|| ctx.qc->default_stream_mode == SSL_DEFAULT_STREAM_MODE_NONE)
|
||||
return SSL_STREAM_TYPE_NONE;
|
||||
else
|
||||
return SSL_STREAM_TYPE_BIDI;
|
||||
}
|
||||
|
||||
if (ossl_quic_stream_is_bidi(ctx.xso->stream))
|
||||
|
Loading…
Reference in New Issue
Block a user