Update pre9
This commit is contained in:
@@ -46,25 +46,45 @@ indicate that the underlying transport has been closed.
|
||||
|
||||
=item SSL_ERROR_WANT_READ, SSL_ERROR_WANT_WRITE
|
||||
|
||||
The operation did not complete; the same TLS/SSL I/O function should be
|
||||
called again later. If, by then, the underlying B<BIO> has data
|
||||
available for reading (if the result code is B<SSL_ERROR_WANT_READ>)
|
||||
or allows writing data (B<SSL_ERROR_WANT_WRITE>), then some TLS/SSL
|
||||
protocol progress will take place, i.e. at least part of an TLS/SSL
|
||||
record will be read or written. Note that the retry may again lead to
|
||||
a B<SSL_ERROR_WANT_READ> or B<SSL_ERROR_WANT_WRITE> condition.
|
||||
The operation did not complete and can be retried later.
|
||||
|
||||
B<SSL_ERROR_WANT_READ> is returned when the last operation was a read
|
||||
operation from a non-blocking B<BIO>.
|
||||
It means that not enough data was available at this time to complete the
|
||||
operation.
|
||||
If at a later time the underlying B<BIO> has data available for reading the same
|
||||
function can be called again.
|
||||
|
||||
SSL_read() and SSL_read_ex() can also set B<SSL_ERROR_WANT_READ> when there is
|
||||
still unprocessed data available at either the B<SSL> or the B<BIO> layer, even
|
||||
for a blocking B<BIO>.
|
||||
See L<SSL_read(3)> for more information.
|
||||
|
||||
B<SSL_ERROR_WANT_WRITE> is returned when the last operation was a write
|
||||
to a non-blocking B<BIO> and it was unable to sent all data to the B<BIO>.
|
||||
When the B<BIO> is writeable again, the same function can be called again.
|
||||
|
||||
Note that the retry may again lead to an B<SSL_ERROR_WANT_READ> or
|
||||
B<SSL_ERROR_WANT_WRITE> condition.
|
||||
There is no fixed upper limit for the number of iterations that
|
||||
may be necessary until progress becomes visible at application
|
||||
protocol level.
|
||||
|
||||
It is safe to call SSL_read() or SSL_read_ex() when more data is available
|
||||
even when the call that set this error was an SSL_write() or SSL_write_ex().
|
||||
However if the call was an SSL_write() or SSL_write_ex(), it should be called
|
||||
again to continue sending the application data.
|
||||
|
||||
For socket B<BIO>s (e.g. when SSL_set_fd() was used), select() or
|
||||
poll() on the underlying socket can be used to find out when the
|
||||
TLS/SSL I/O function should be retried.
|
||||
|
||||
Caveat: Any TLS/SSL I/O function can lead to either of
|
||||
B<SSL_ERROR_WANT_READ> and B<SSL_ERROR_WANT_WRITE>. In particular,
|
||||
B<SSL_ERROR_WANT_READ> and B<SSL_ERROR_WANT_WRITE>.
|
||||
In particular,
|
||||
SSL_read_ex(), SSL_read(), SSL_peek_ex(), or SSL_peek() may want to write data
|
||||
and SSL_write() or SSL_write_ex() may want to read data. This is mainly because
|
||||
and SSL_write() or SSL_write_ex() may want to read data.
|
||||
This is mainly because
|
||||
TLS/SSL handshakes may occur at any time during the protocol (initiated by
|
||||
either the client or the server); SSL_read_ex(), SSL_read(), SSL_peek_ex(),
|
||||
SSL_peek(), SSL_write_ex(), and SSL_write() will handle any pending handshakes.
|
||||
@@ -122,6 +142,9 @@ Some non-recoverable I/O error occurred.
|
||||
The OpenSSL error queue may contain more information on the error.
|
||||
For socket I/O on Unix systems, consult B<errno> for details.
|
||||
|
||||
This value can also be returned for other errors, check the error queue for
|
||||
details.
|
||||
|
||||
=item SSL_ERROR_SSL
|
||||
|
||||
A failure in the SSL library occurred, usually a protocol error. The
|
||||
|
||||
Reference in New Issue
Block a user