xref: /freebsd/secure/lib/libcrypto/man/man3/SSL_accept_stream.3 (revision 4757b351ea9d59d71d4a38b82506d2d16fcd560d)
-*- mode: troff; coding: utf-8 -*-
Automatically generated by Pod::Man 5.0102 (Pod::Simple 3.45)

Standard preamble:
========================================================================
..
..
.. \*(C` and \*(C' are quotes in nroff, nothing in troff, for use with C<>.
. ds C` "" . ds C' "" 'br\} . ds C` . ds C' 'br\}
Escape single quotes in literal strings from groff's Unicode transform.

If the F register is >0, we'll generate index entries on stderr for
titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index
entries marked with X<> in POD. Of course, you'll have to process the
output yourself in some meaningful fashion.

Avoid warning from groff about undefined register 'F'.
.. .nr rF 0 . if \nF \{\ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{\ . nr % 0 . nr F 2 . \} . \} .\} .rr rF ========================================================================

Title "SSL_ACCEPT_STREAM 3ossl"
SSL_ACCEPT_STREAM 3ossl 2025-07-01 3.5.1 OpenSSL
For nroff, turn off justification. Always turn off hyphenation; it makes
way too many mistakes in technical documents.
NAME
SSL_accept_stream, SSL_get_accept_stream_queue_len, SSL_ACCEPT_STREAM_NO_BLOCK - accept an incoming QUIC stream from a QUIC peer
SYNOPSIS
Header "SYNOPSIS" .Vb 1 #include <openssl/ssl.h> \& #define SSL_ACCEPT_STREAM_NO_BLOCK \& SSL *SSL_accept_stream(SSL *ssl, uint64_t flags); \& size_t SSL_get_accept_stream_queue_len(SSL *ssl); .Ve
DESCRIPTION
Header "DESCRIPTION" The SSL_accept_stream() function attempts to dequeue an incoming stream from the given QUIC connection SSL object and returns the newly allocated QUIC stream SSL object.

If the queue of incoming streams is empty, this function returns NULL (in nonblocking mode) or waits for an incoming stream (in blocking mode). This function may still return NULL in blocking mode, for example if the underlying connection is terminated.

The caller is responsible for managing the lifetime of the returned QUIC stream SSL object; for more information, see SSL_free\|(3).

This function will block if the QUIC connection SSL object is configured in blocking mode (see SSL_set_blocking_mode\|(3)), but this may be bypassed by passing the flag SSL_ACCEPT_STREAM_NO_BLOCK in flags. If this flag is set, this function never blocks.

Calling SSL_accept_stream() if there is no default stream already present inhibits the future creation of a default stream. See openssl-quic\|(7).

\fBSSL_get_accept_stream_queue_len() returns the number of incoming streams currently waiting in the accept queue.

These functions can be used from multiple threads for the same QUIC connection.

Depending on whether default stream functionality is being used, it may be necessary to explicitly configure the incoming stream policy before streams can be accepted; see SSL_set_incoming_stream_policy\|(3). See also "MODES OF OPERATION" in openssl-quic\|(7) for more information on default stream functionality.

"RETURN VALUES"
Header "RETURN VALUES" \fBSSL_accept_stream() returns a newly allocated QUIC stream SSL object, or NULL if no new incoming streams are available, or if the connection has been terminated, or if called on an SSL object other than a QUIC connection SSL object. \fBSSL_get_error\|(3) can be used to obtain further information in this case.

\fBSSL_get_accept_stream_queue_len() returns the number of incoming streams currently waiting in the accept queue, or 0 if called on an SSL object other than a QUIC connection SSL object.

"SEE ALSO"
Header "SEE ALSO" "MODES OF OPERATION" in openssl-quic\|(7), SSL_new_stream\|(3), \fBSSL_set_blocking_mode\|(3), SSL_free\|(3)
HISTORY
Header "HISTORY" \fBSSL_accept_stream() and SSL_get_accept_stream_queue_len() were added in OpenSSL 3.2.
COPYRIGHT
Header "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 <https://www.openssl.org/source/license.html>.