.\" .\" $OpenBSD: SSL_want.3,v 1.2 2014/12/02 14:11:01 jmc Exp $ .\" .Dd $Mdocdate: December 2 2014 $ .Dt SSL_WANT 3 .Os .Sh NAME .Nm SSL_want , .Nm SSL_want_nothing , .Nm SSL_want_read , .Nm SSL_want_write , .Nm SSL_want_x509_lookup .Nd obtain state information TLS/SSL I/O operation .Sh SYNOPSIS .In openssl/ssl.h .Ft int .Fn SSL_want "const SSL *ssl" .Ft int .Fn SSL_want_nothing "const SSL *ssl" .Ft int .Fn SSL_want_read "const SSL *ssl" .Ft int .Fn SSL_want_write "const SSL *ssl" .Ft int .Fn SSL_want_x509_lookup "const SSL *ssl" .Sh DESCRIPTION .Fn SSL_want returns state information for the .Vt SSL object .Fa ssl . .Pp The other .Fn SSL_want_* calls are shortcuts for the possible states returned by .Fn SSL_want . .Sh NOTES .Fn SSL_want examines the internal state information of the .Vt SSL object. Its return values are similar to those of .Xr SSL_get_error 3 . Unlike .Xr SSL_get_error 3 , which also evaluates the error queue, the results are obtained by examining an internal state flag only. The information must therefore only be used for normal operation under non-blocking I/O. Error conditions are not handled and must be treated using .Xr SSL_get_error 3 . .Pp The result returned by .Fn SSL_want should always be consistent with the result of .Xr SSL_get_error 3 . .Sh RETURN VALUES The following return values can currently occur for .Fn SSL_want : .Bl -tag -width Ds .It .Dv SSL_NOTHING There is no data to be written or to be read. .It .Dv SSL_WRITING There are data in the SSL buffer that must be written to the underlying .Vt BIO layer in order to complete the actual .Fn SSL_* operation. A call to .Xr SSL_get_error 3 should return .Dv SSL_ERROR_WANT_WRITE . .It Dv SSL_READING More data must be read from the underlying .Vt BIO layer in order to complete the actual .Fn SSL_* operation. A call to .Xr SSL_get_error 3 should return .Dv SSL_ERROR_WANT_READ. .It Dv SSL_X509_LOOKUP The operation did not complete because an application callback set by .Xr SSL_CTX_set_client_cert_cb 3 has asked to be called again. A call to .Xr SSL_get_error 3 should return .Dv SSL_ERROR_WANT_X509_LOOKUP . .El .Pp .Fn SSL_want_nothing , .Fn SSL_want_read , .Fn SSL_want_write , and .Fn SSL_want_x509_lookup return 1 when the corresponding condition is true or 0 otherwise. .Sh SEE ALSO .Xr err 3 , .Xr ssl 3 , .Xr SSL_get_error 3