INSTALL: clarify 386 and no-sse2 options.
[oweals/openssl.git] / doc / ssl / SSL_write.pod
index 7299f6e2ee28f9f96e36498cfa1d1aaa455149af..4c1a7ee71f3cce02b5412cccd8f4c3a4348408fa 100644 (file)
@@ -65,37 +65,33 @@ When an SSL_write() operation has to be repeated because of
 B<SSL_ERROR_WANT_READ> or B<SSL_ERROR_WANT_WRITE>, it must be repeated
 with the same arguments.
 
+When calling SSL_write() with num=0 bytes to be sent the behaviour is
+undefined.
+
 =head1 RETURN VALUES
 
 The following return values can occur:
 
 =over 4
 
-=item E<gt>0
+=item E<gt> 0
 
 The write operation was successful, the return value is the number of
 bytes actually written to the TLS/SSL connection.
 
-=item 0
+=item Z<><= 0
 
-The write operation was not successful, because the write side of the
-SSL connection was shut down (the SSL_SENT_SHUTDOWN flag in the shutdown
-state is set) by calling L<SSL_shutdown(3)|SSL_shutdown(3)> or
-L<SSL_set_shutdown(3)|SSL_set_shutdown(3)>. It is also possible, that the
-underlying connection was closed.
-Call SSL_get_error() with the return value B<ret> 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<ret> to find out the reason.
 
 SSLv2 (deprecated) does not support a shutdown alert protocol, so it can
 only be detected, whether the underlying connection was closed. It cannot
 be checked, why the closure happened.
 
-=item E<lt>0
-
-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<ret> 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