提交 2984b0ae 编写于 作者: B Bodo Möller

Additional explanations for SSL_ERROR_WANT_READ/WRITE.

上级 3d6001f7
...@@ -48,16 +48,26 @@ has been closed. ...@@ -48,16 +48,26 @@ has been closed.
=item SSL_ERROR_WANT_READ, SSL_ERROR_WANT_WRITE =item SSL_ERROR_WANT_READ, SSL_ERROR_WANT_WRITE
The operation did not complete; the same TLS/SSL I/O function should be The operation did not complete; the same TLS/SSL I/O function should be
called again later. There will be protocol progress if, by then, the called again later. If, by then, the underlying B<BIO> has data
underlying B<BIO> has data available for reading (if the result code is available for reading (if the result code is B<SSL_ERROR_WANT_READ>)
B<SSL_ERROR_WANT_READ>) or allows writing data (B<SSL_ERROR_WANT_WRITE>). or allows writing data (B<SSL_ERROR_WANT_WRITE>), then some TLS/SSL
For socket B<BIO>s (e.g. when SSL_set_fd() was used) this means that protocol progress will take place, i.e. at least part of an TLS/SSL
select() or poll() on the underlying socket can be used to find out record will be read or written. Note that the retry may again lead to
when the TLS/SSL I/O function should be retried. a 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.
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 Caveat: Any TLS/SSL I/O function can lead to either of
B<SSL_ERROR_WANT_READ> and B<SSL_ERROR_WANT_WRITE>, i.e. SSL_read() B<SSL_ERROR_WANT_READ> and B<SSL_ERROR_WANT_WRITE>. In particular,
may want to write data and SSL_write() may want to read data. SSL_read() may want to write data and SSL_write() may want to read
data. This is because TLS/SSL handshakes may occur at any time
during the protocol (initiated by either the client or the server);
SSL_read() and SSL_write() will handle any pending handshakes.
=item SSL_ERROR_WANT_X509_LOOKUP =item SSL_ERROR_WANT_X509_LOOKUP
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册