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