xref: /openssl/doc/man3/SSL_stream_conclude.pod (revision da1c088f)
1=pod
2
3=head1 NAME
4
5SSL_stream_conclude - conclude the sending part of a QUIC stream
6
7=head1 SYNOPSIS
8
9 #include <openssl/ssl.h>
10
11 __owur int SSL_stream_conclude(SSL *s, uint64_t flags);
12
13=head1 DESCRIPTION
14
15SSL_stream_conclude() signals the normal end-of-stream condition for the send
16part of a QUIC stream. If called on a QUIC connection SSL object with an
17associated default stream, it signals the end of the single stream to the peer.
18
19Any data already queued for transmission via a call to SSL_write() will still be
20written in a reliable manner before the end-of-stream is signalled, assuming the
21connection remains healthy. This function can be thought of as appending a
22logical end-of-stream marker after any data which has previously been written to
23the stream via calls to SSL_write(). Further attempts to call SSL_write() after
24calling this function will fail.
25
26When calling this on a stream, the receive part of the stream remains
27unaffected, and the peer may continue to send data until it also signals the end
28of the stream. Thus, SSL_read() can still be used.
29
30I<flags> is reserved and should be set to 0.
31
32Only the first call to this function has any effect for a given stream;
33subsequent calls are no-ops. This is considered a success case.
34
35This function is not supported on an object other than a QUIC stream SSL object.
36
37=head1 RETURN VALUES
38
39Returns 1 on success and 0 on failure.
40
41Returns 0 if called on an SSL object not representing a QUIC stream.
42
43=head1 SEE ALSO
44
45L<openssl-quic(7)>, L<ssl(7)>, L<SSL_shutdown_ex(3)>
46
47=head1 HISTORY
48
49The SSL_stream_conclude() function was added in OpenSSL 3.2.
50
51=head1 COPYRIGHT
52
53Copyright 2022-2023 The OpenSSL Project Authors. All Rights Reserved.
54
55Licensed under the Apache License 2.0 (the "License").  You may not use
56this file except in compliance with the License.  You can obtain a copy
57in the file LICENSE in the source distribution or at
58L<https://www.openssl.org/source/license.html>.
59
60=cut
61