1=pod 2 3=head1 NAME 4 5SSL_want, SSL_want_nothing, SSL_want_read, SSL_want_write, SSL_want_x509_lookup - obtain state information TLS/SSL I/O operation 6 7=head1 SYNOPSIS 8 9 #include <openssl/ssl.h> 10 11 int SSL_want(const SSL *ssl); 12 int SSL_want_nothing(const SSL *ssl); 13 int SSL_want_read(const SSL *ssl); 14 int SSL_want_write(const SSL *ssl); 15 int SSL_want_x509_lookup(const SSL *ssl); 16 17=head1 DESCRIPTION 18 19SSL_want() returns state information for the SSL object B<ssl>. 20 21The other SSL_want_*() calls are shortcuts for the possible states returned 22by SSL_want(). 23 24=head1 NOTES 25 26SSL_want() examines the internal state information of the SSL object. Its 27return values are similar to that of L<SSL_get_error(3)|SSL_get_error(3)>. 28Unlike L<SSL_get_error(3)|SSL_get_error(3)>, which also evaluates the 29error queue, the results are obtained by examining an internal state flag 30only. The information must therefore only be used for normal operation under 31non-blocking I/O. Error conditions are not handled and must be treated 32using L<SSL_get_error(3)|SSL_get_error(3)>. 33 34The result returned by SSL_want() should always be consistent with 35the result of L<SSL_get_error(3)|SSL_get_error(3)>. 36 37=head1 RETURN VALUES 38 39The following return values can currently occur for SSL_want(): 40 41=over 4 42 43=item SSL_NOTHING 44 45There is no data to be written or to be read. 46 47=item SSL_WRITING 48 49There are data in the SSL buffer that must be written to the underlying 50B<BIO> layer in order to complete the actual SSL_*() operation. 51A call to L<SSL_get_error(3)|SSL_get_error(3)> should return 52SSL_ERROR_WANT_WRITE. 53 54=item SSL_READING 55 56More data must be read from the underlying B<BIO> layer in order to 57complete the actual SSL_*() operation. 58A call to L<SSL_get_error(3)|SSL_get_error(3)> should return 59SSL_ERROR_WANT_READ. 60 61=item SSL_X509_LOOKUP 62 63The operation did not complete because an application callback set by 64SSL_CTX_set_client_cert_cb() has asked to be called again. 65A call to L<SSL_get_error(3)|SSL_get_error(3)> should return 66SSL_ERROR_WANT_X509_LOOKUP. 67 68=back 69 70SSL_want_nothing(), SSL_want_read(), SSL_want_write(), SSL_want_x509_lookup() 71return 1, when the corresponding condition is true or 0 otherwise. 72 73=head1 SEE ALSO 74 75L<ssl(3)|ssl(3)>, L<err(3)|err(3)>, L<SSL_get_error(3)|SSL_get_error(3)> 76 77=cut 78