X-Git-Url: https://git.openssl.org/gitweb/?a=blobdiff_plain;f=doc%2Fssl%2FSSL_write.pod;h=6e3ecffa1a439a11b31853a31b67b0f0c743df02;hb=b72ff47037804dfbe5ed884c59a68de6fe475821;hp=f95907981d6fd097e05dc2d0bee34ccdbc5bb45d;hpb=a2b03690a8057f6ed3f85afce93c490139f3305a;p=openssl.git diff --git a/doc/ssl/SSL_write.pod b/doc/ssl/SSL_write.pod index f95907981d..6e3ecffa1a 100644 --- a/doc/ssl/SSL_write.pod +++ b/doc/ssl/SSL_write.pod @@ -18,11 +18,19 @@ B connection. =head1 NOTES If necessary, SSL_write() will negotiate a TLS/SSL session, if -not already explicitly performed by SSL_connect() or SSL_accept(). If the +not already explicitly performed by L or +L. If the peer requests a re-negotiation, it will be performed transparently during the SSL_write() operation. The behaviour of SSL_write() depends on the underlying BIO. +For the transparent negotiation to succeed, the B must have been +initialized to client or server mode. This is not the case if a generic +method is being used (see L, so that +L or SSL_set_accept_state() +must be used before the first call to an L +or SSL_write() function. + If the underlying BIO is B, SSL_write() will only return, once the write operation has been finished or an error occurred, except when a renegotiation take place, in which case a SSL_ERROR_WANT_READ may occur. @@ -31,7 +39,8 @@ L call. If the underlying BIO is B, SSL_write() will also return, when the underlying BIO could not satisfy the needs of SSL_write() -to continue the operation. In this case a call to SSL_get_error() with the +to continue the operation. In this case a call to +L with the return value of SSL_write() will yield B or B. As at any time a re-negotiation is possible, a call to SSL_write() can also cause read operations! The calling process @@ -74,7 +83,9 @@ return value B to find out the reason. =head1 SEE ALSO L, L, -L, +L, L, +L, L +L, L, L =cut