HEX
Server: nginx/1.28.3
System: Linux ip-172-31-12-242 6.17.0-1007-aws #7~24.04.1-Ubuntu SMP Thu Jan 22 21:04:49 UTC 2026 x86_64
User: root (0)
PHP: 7.4.33
Disabled: passthru,exec,system,putenv,chroot,chgrp,chown,shell_exec,popen,proc_open,pcntl_exec,ini_alter,ini_restore,dl,openlog,syslog,readlink,symlink,popepassthru,pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,imap_open,apache_setenv
Upload Files
File: //usr/local/openssl/man/man3/SSL_want_nothing.3
.\" -*- mode: troff; coding: utf-8 -*-
.\" Automatically generated by Pod::Man 5.01 (Pod::Simple 3.43)
.\"
.\" Standard preamble:
.\" ========================================================================
.de Sp \" Vertical space (when we can't use .PP)
.if t .sp .5v
.if n .sp
..
.de Vb \" Begin verbatim text
.ft CW
.nf
.ne \\$1
..
.de Ve \" End verbatim text
.ft R
.fi
..
.\" \*(C` and \*(C' are quotes in nroff, nothing in troff, for use with C<>.
.ie n \{\
.    ds C` ""
.    ds C' ""
'br\}
.el\{\
.    ds C`
.    ds C'
'br\}
.\"
.\" Escape single quotes in literal strings from groff's Unicode transform.
.ie \n(.g .ds Aq \(aq
.el       .ds Aq '
.\"
.\" If the F register is >0, we'll generate index entries on stderr for
.\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index
.\" entries marked with X<> in POD.  Of course, you'll have to process the
.\" output yourself in some meaningful fashion.
.\"
.\" Avoid warning from groff about undefined register 'F'.
.de IX
..
.nr rF 0
.if \n(.g .if rF .nr rF 1
.if (\n(rF:(\n(.g==0)) \{\
.    if \nF \{\
.        de IX
.        tm Index:\\$1\t\\n%\t"\\$2"
..
.        if !\nF==2 \{\
.            nr % 0
.            nr F 2
.        \}
.    \}
.\}
.rr rF
.\" ========================================================================
.\"
.IX Title "SSL_want 3"
.TH SSL_want 3 2019-12-20 1.0.2u OpenSSL
.\" For nroff, turn off justification.  Always turn off hyphenation; it makes
.\" way too many mistakes in technical documents.
.if n .ad l
.nh
.SH NAME
SSL_want, SSL_want_nothing, SSL_want_read, SSL_want_write, SSL_want_x509_lookup \- obtain state information TLS/SSL I/O operation
.SH SYNOPSIS
.IX Header "SYNOPSIS"
.Vb 1
\& #include <openssl/ssl.h>
\&
\& int SSL_want(const SSL *ssl);
\& int SSL_want_nothing(const SSL *ssl);
\& int SSL_want_read(const SSL *ssl);
\& int SSL_want_write(const SSL *ssl);
\& int SSL_want_x509_lookup(const SSL *ssl);
.Ve
.SH DESCRIPTION
.IX Header "DESCRIPTION"
\&\fBSSL_want()\fR returns state information for the SSL object \fBssl\fR.
.PP
The other SSL_want_*() calls are shortcuts for the possible states returned
by \fBSSL_want()\fR.
.SH NOTES
.IX Header "NOTES"
\&\fBSSL_want()\fR examines the internal state information of the SSL object. Its
return values are similar to that of \fBSSL_get_error\fR\|(3).
Unlike \fBSSL_get_error\fR\|(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 \fBSSL_get_error\fR\|(3).
.PP
The result returned by \fBSSL_want()\fR should always be consistent with
the result of \fBSSL_get_error\fR\|(3).
.SH "RETURN VALUES"
.IX Header "RETURN VALUES"
The following return values can currently occur for \fBSSL_want()\fR:
.IP SSL_NOTHING 4
.IX Item "SSL_NOTHING"
There is no data to be written or to be read.
.IP SSL_WRITING 4
.IX Item "SSL_WRITING"
There are data in the SSL buffer that must be written to the underlying
\&\fBBIO\fR layer in order to complete the actual SSL_*() operation.
A call to \fBSSL_get_error\fR\|(3) should return
SSL_ERROR_WANT_WRITE.
.IP SSL_READING 4
.IX Item "SSL_READING"
More data must be read from the underlying \fBBIO\fR layer in order to
complete the actual SSL_*() operation.
A call to \fBSSL_get_error\fR\|(3) should return
SSL_ERROR_WANT_READ.
.IP SSL_X509_LOOKUP 4
.IX Item "SSL_X509_LOOKUP"
The operation did not complete because an application callback set by
\&\fBSSL_CTX_set_client_cert_cb()\fR has asked to be called again.
A call to \fBSSL_get_error\fR\|(3) should return
SSL_ERROR_WANT_X509_LOOKUP.
.PP
\&\fBSSL_want_nothing()\fR, \fBSSL_want_read()\fR, \fBSSL_want_write()\fR, \fBSSL_want_x509_lookup()\fR
return 1, when the corresponding condition is true or 0 otherwise.
.SH "SEE ALSO"
.IX Header "SEE ALSO"
\&\fBssl\fR\|(3), \fBerr\fR\|(3), \fBSSL_get_error\fR\|(3)