diff options
Diffstat (limited to 'doc/man3/SSL_get_stream_id.pod')
-rw-r--r-- | doc/man3/SSL_get_stream_id.pod | 98 |
1 files changed, 98 insertions, 0 deletions
diff --git a/doc/man3/SSL_get_stream_id.pod b/doc/man3/SSL_get_stream_id.pod new file mode 100644 index 0000000000..b3ac31e3b2 --- /dev/null +++ b/doc/man3/SSL_get_stream_id.pod @@ -0,0 +1,98 @@ +=pod + +=head1 NAME + +SSL_get_stream_id, SSL_get_stream_type, SSL_STREAM_TYPE_NONE, +SSL_STREAM_TYPE_READ, SSL_STREAM_TYPE_WRITE, SSL_STREAM_TYPE_BIDI - get QUIC +stream ID and stream type information + +=head1 SYNOPSIS + + #include <openssl/ssl.h> + + uint64_t SSL_get_stream_id(SSL *ssl); + + #define SSL_STREAM_TYPE_NONE + #define SSL_STREAM_TYPE_BIDI + #define SSL_STREAM_TYPE_READ + #define SSL_STREAM_TYPE_WRITE + int SSL_get_stream_type(SSL *ssl); + +=head1 DESCRIPTION + +The SSL_get_stream_id() function returns the QUIC stream ID for a QUIC stream +SSL object, or for a QUIC connection SSL object which has a default stream +attached. + +The SSL_get_stream_type() function identifies what operations can be performed +on the stream, and returns one of the following values: + +=over 4 + +=item B<SSL_STREAM_TYPE_NONE> + +The SSL object is a non-QUIC SSL object, or is a QUIC connection SSL object +without a default stream attached (see L<SSL_attach_stream(3)>). + +=item B<SSL_STREAM_TYPE_BIDI> + +The SSL object is a QUIC stream object (or QUIC connection SSL object with a +default stream attached), and that stream is a bidirectional QUIC stream. + +=item B<SSL_STREAM_TYPE_READ> + +The SSL object is a QUIC stream object (or QUIC connection SSL object with a +default stream attached), and that stream is a unidirectional QUIC stream which +was initiated by the remote peer; thus, it can be read from, but not written to. + +=item B<SSL_STREAM_TYPE_WRITE> + +The SSL object is a QUIC stream object (or QUIC connection SSL object with a +default stream attached), and that stream is a unidirectional QUIC stream which +was initiated by the local application; thus, it can be written to, but not read +from. + +=back + +=head1 NOTES + +While QUICv1 assigns specific meaning to the low two bits of a QUIC stream ID, +QUIC stream IDs in future versions of QUIC are not required to have the same +semantics. Do not determine stream properties using these bits. Instead, use +SSL_get_stream_type() to determine the stream type. + +The SSL_get_stream_type() identifies the type of a QUIC stream based on its +identity, and does not indicate whether an operation can currently be +successfully performed on a stream. For example, you might locally initiate a +unidirectional stream, write to it, and then conclude the stream using +L<SSL_stream_conclude(3)>, meaning that it can no longer be written to, but +SSL_get_stream_type() would still return B<SSL_STREAM_TYPE_WRITE>. The value +returned by SSL_get_stream_type() does not vary over the lifespan of a stream. + +=head1 RETURN VALUES + +SSL_get_stream_id() returns a QUIC stream ID, or B<UINT64_MAX> if called on an +SSL object which is not a QUIC SSL object, or if called on a QUIC connection SSL +object without a default stream attached. Note that valid QUIC stream IDs are +always below 2**62. + +SSL_get_stream_type() returns one of the B<SSL_STREAM_TYPE> values. + +=head1 SEE ALSO + +L<SSL_attach_stream(3)>, L<SSL_new_stream(3)>, L<SSL_accept_stream(3)> + +=head1 HISTORY + +These functions were added in OpenSSL 3.2. + +=head1 COPYRIGHT + +Copyright 2002-2023 The OpenSSL Project Authors. All Rights Reserved. + +Licensed under the Apache License 2.0 (the "License"). You may not use +this file except in compliance with the License. You can obtain a copy +in the file LICENSE in the source distribution or at +L<https://www.openssl.org/source/license.html>. + +=cut |