Skip to main content
  • Home
  • login
  • Browse the archive

    swh mirror partner logo
swh logo
SoftwareHeritage
Software
Heritage
Mirror
Features
  • Search

  • Downloads

  • Save code now

  • Add forge now

  • Help

  • 796efcf
  • /
  • doc
  • /
  • man3
  • /
  • SSL_accept_stream.pod
Raw File
Permalinks

To reference or cite the objects present in the Software Heritage archive, permalinks based on SoftWare Hash IDentifiers (SWHIDs) must be used.
Select below a type of object currently browsed in order to display its associated SWHID and permalink.

  • content
  • directory
content badge Iframe embedding
swh:1:cnt:d5055f5071046b3c5eb8a9781a329f879d1b918a
directory badge Iframe embedding
swh:1:dir:824a99e9eb1eef93d48b8907bd1e34d2a8d3282c
SSL_accept_stream.pod
=pod

=head1 NAME

SSL_accept_stream, SSL_get_accept_stream_queue_len, SSL_ACCEPT_STREAM_NO_BLOCK -
accept an incoming QUIC stream from a QUIC peer

=head1 SYNOPSIS

 #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);

=head1 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 L<SSL_free(3)>.

This function will block if the QUIC connection SSL object is configured in
blocking mode (see L<SSL_set_blocking_mode(3)>), but this may be bypassed by
passing the flag B<SSL_ACCEPT_STREAM_NO_BLOCK> in I<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 L<openssl-quic(7)>.

SSL_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 L<SSL_set_incoming_stream_policy(3)>. See also
L<openssl-quic(7)/MODES OF OPERATION> for more information on default stream
functionality.

=head1 RETURN VALUES

SSL_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 a SSL object other than a QUIC connection SSL object.
L<SSL_get_error(3)> can be used to obtain further information in this case.

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

=head1 SEE ALSO

L<openssl-quic(7)/MODES OF OPERATION>, L<SSL_new_stream(3)>,
L<SSL_set_blocking_mode(3)>, L<SSL_free(3)>

=head1 HISTORY

SSL_accept_stream() and SSL_get_accept_stream_queue_len() 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

ENEA — Copyright (C), ENEA. License: GNU AGPLv3+.
Legal notes  ::  JavaScript license information ::  Web API

back to top