summaryrefslogtreecommitdiffstats
path: root/upstream/debian-unstable/man3/SSL_get_error.3ssl
diff options
context:
space:
mode:
Diffstat (limited to 'upstream/debian-unstable/man3/SSL_get_error.3ssl')
-rw-r--r--upstream/debian-unstable/man3/SSL_get_error.3ssl22
1 files changed, 16 insertions, 6 deletions
diff --git a/upstream/debian-unstable/man3/SSL_get_error.3ssl b/upstream/debian-unstable/man3/SSL_get_error.3ssl
index e01d2f02..61e6c276 100644
--- a/upstream/debian-unstable/man3/SSL_get_error.3ssl
+++ b/upstream/debian-unstable/man3/SSL_get_error.3ssl
@@ -55,7 +55,7 @@
.\" ========================================================================
.\"
.IX Title "SSL_GET_ERROR 3SSL"
-.TH SSL_GET_ERROR 3SSL 2024-02-03 3.1.5 OpenSSL
+.TH SSL_GET_ERROR 3SSL 2024-04-04 3.2.2-dev OpenSSL
.\" For nroff, turn off justification. Always turn off hyphenation; it makes
.\" way too many mistakes in technical documents.
.if n .ad l
@@ -114,8 +114,8 @@ is set. See \fBSSL_CTX_set_options\fR\|(3) for more details.
.IX Item "SSL_ERROR_WANT_READ, SSL_ERROR_WANT_WRITE"
The operation did not complete and can be retried later.
.Sp
-\&\fBSSL_ERROR_WANT_READ\fR is returned when the last operation was a read
-operation from a nonblocking \fBBIO\fR.
+For non-QUIC SSL objects, \fBSSL_ERROR_WANT_READ\fR is returned when the last
+operation was a read operation from a nonblocking \fBBIO\fR.
It means that not enough data was available at this time to complete the
operation.
If at a later time the underlying \fBBIO\fR has data available for reading the same
@@ -126,9 +126,10 @@ still unprocessed data available at either the \fBSSL\fR or the \fBBIO\fR layer,
for a blocking \fBBIO\fR.
See \fBSSL_read\fR\|(3) for more information.
.Sp
-\&\fBSSL_ERROR_WANT_WRITE\fR is returned when the last operation was a write
-to a nonblocking \fBBIO\fR and it was unable to sent all data to the \fBBIO\fR.
-When the \fBBIO\fR is writable again, the same function can be called again.
+For non-QUIC SSL objects, \fBSSL_ERROR_WANT_WRITE\fR is returned when the last
+operation was a write to a nonblocking \fBBIO\fR and it was unable to send all data
+to the \fBBIO\fR. When the \fBBIO\fR is writable again, the same function can be
+called again.
.Sp
Note that the retry may again lead to an \fBSSL_ERROR_WANT_READ\fR or
\&\fBSSL_ERROR_WANT_WRITE\fR condition.
@@ -136,6 +137,15 @@ There is no fixed upper limit for the number of iterations that
may be necessary until progress becomes visible at application
protocol level.
.Sp
+For QUIC SSL objects, the meaning of \fBSSL_ERROR_WANT_READ\fR and
+\&\fBSSL_ERROR_WANT_WRITE\fR have different but largely compatible semantics. Since
+QUIC implements its own flow control and uses UDP datagrams, backpressure
+conditions in terms of the underlying BIO providing network I/O are not directly
+relevant to the circumstances in which these errors are produced. In particular,
+\&\fBSSL_ERROR_WANT_WRITE\fR indicates that the OpenSSL internal send buffer for a
+given QUIC stream has been filled. Likewise, \fBSSL_ERROR_WANT_READ\fR indicates
+that the OpenSSL internal receive buffer for a given QUIC stream is empty.
+.Sp
It is safe to call \fBSSL_read()\fR or \fBSSL_read_ex()\fR when more data is available
even when the call that set this error was an \fBSSL_write()\fR or \fBSSL_write_ex()\fR.
However, if the call was an \fBSSL_write()\fR or \fBSSL_write_ex()\fR, it should be called