X-Git-Url: https://git.openssl.org/?a=blobdiff_plain;f=doc%2Fman3%2FSSL_write.pod;h=d52844281fc703b05569ff32189bc0048a578d0b;hb=b5cd751c695602cba4fbe67e590fc8112bf5d8fa;hp=c860ed7978188d3d747bb40dbf133c16618fe5ba;hpb=ed9fa2c74bbb9da312aa82865aeb3f9b75a8167b;p=openssl.git diff --git a/doc/man3/SSL_write.pod b/doc/man3/SSL_write.pod index c860ed7978..d52844281f 100644 --- a/doc/man3/SSL_write.pod +++ b/doc/man3/SSL_write.pod @@ -25,7 +25,7 @@ SSL_write_ex(), or SSL_write(). If necessary, a write function will negotiate a TLS/SSL session, if not already explicitly performed by L or L. If the peer requests a re-negotiation, it will be performed transparently during -the write functio operation. The behaviour of the write functions depends on the +the write function operation. The behaviour of the write functions depends on the underlying BIO. For the transparent negotiation to succeed, the B must have been @@ -34,10 +34,7 @@ L or SSL_set_accept_state() before the first call to a write function. If the underlying BIO is B, the write functions 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. -This behaviour can be controlled with the SSL_MODE_AUTO_RETRY flag of the -L call. +the write operation has been finished or an error occurred. If the underlying BIO is B the write functions will also return when the underlying BIO could not satisfy the needs of the function to continue @@ -65,9 +62,13 @@ write is performed with the size of a message block, which is 16kB. When a write function call has to be repeated because L returned B or B, it must be repeated with the same arguments. +The data that was passed might have been partially processed. +When B was set using L +the pointer can be different, but the data and length should still be the same. -When calling the write functions with num=0 bytes to be sent the behaviour is -undefined. +You should not call SSL_write() with num=0, it will return an error. +SSL_write_ex() can be called with num=0, but will not send application data to +the peer. =head1 RETURN VALUES @@ -86,33 +87,34 @@ For SSL_write() the following return values can occur: =over 4 -=item E0 +=item E 0 The write operation was successful, the return value is the number of bytes actually written to the TLS/SSL connection. -=item Z<>0 +=item Z<><= 0 -The write operation was not successful. Probably the underlying connection -was closed. Call SSL_get_error() with the return value B to find out, -whether an error occurred or the connection was shut down cleanly -(SSL_ERROR_ZERO_RETURN). +The write operation was not successful, because either the connection was +closed, an error occurred or action must be taken by the calling process. +Call SSL_get_error() with the return value B to find out the reason. -=item E0 - -The write operation was not successful, because either an error occurred -or action must be taken by the calling process. Call SSL_get_error() with the -return value B to find out the reason. +Old documentation indicated a difference between 0 and -1, and that -1 was +retryable. +You should instead call SSL_get_error() to find out if it's retryable. =back +=head1 HISTORY + +SSL_write_ex() was added in OpenSSL 1.1.1. + =head1 SEE ALSO L, L, L L, L, L, L L, -L, L +L, L =head1 COPYRIGHT