Merge branch 'vendor/OPENSSL'
[dragonfly.git] / secure / lib / libssl / man / SSL_want.3
CommitLineData
e257b235 1.\" Automatically generated by Pod::Man 2.16 (Pod::Simple 3.05)
e056f0e0
JR
2.\"
3.\" Standard preamble:
4.\" ========================================================================
5.de Sh \" Subsection heading
984263bc
MD
6.br
7.if t .Sp
8.ne 5
9.PP
10\fB\\$1\fR
11.PP
12..
e056f0e0 13.de Sp \" Vertical space (when we can't use .PP)
984263bc
MD
14.if t .sp .5v
15.if n .sp
16..
e056f0e0 17.de Vb \" Begin verbatim text
984263bc
MD
18.ft CW
19.nf
20.ne \\$1
21..
e056f0e0 22.de Ve \" End verbatim text
984263bc 23.ft R
984263bc
MD
24.fi
25..
e056f0e0
JR
26.\" Set up some character translations and predefined strings. \*(-- will
27.\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left
e257b235
PA
28.\" double quote, and \*(R" will give a right double quote. \*(C+ will
29.\" give a nicer C++. Capital omega is used to do unbreakable dashes and
30.\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff,
31.\" nothing in troff, for use with C<>.
32.tr \(*W-
e056f0e0 33.ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p'
984263bc 34.ie n \{\
e056f0e0
JR
35. ds -- \(*W-
36. ds PI pi
37. if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch
38. if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch
39. ds L" ""
40. ds R" ""
41. ds C` ""
42. ds C' ""
984263bc
MD
43'br\}
44.el\{\
e056f0e0
JR
45. ds -- \|\(em\|
46. ds PI \(*p
47. ds L" ``
48. ds R" ''
984263bc 49'br\}
e056f0e0 50.\"
e257b235
PA
51.\" Escape single quotes in literal strings from groff's Unicode transform.
52.ie \n(.g .ds Aq \(aq
53.el .ds Aq '
54.\"
e056f0e0
JR
55.\" If the F register is turned on, we'll generate index entries on stderr for
56.\" titles (.TH), headers (.SH), subsections (.Sh), items (.Ip), and index
57.\" entries marked with X<> in POD. Of course, you'll have to process the
58.\" output yourself in some meaningful fashion.
e257b235 59.ie \nF \{\
e056f0e0
JR
60. de IX
61. tm Index:\\$1\t\\n%\t"\\$2"
984263bc 62..
e056f0e0
JR
63. nr % 0
64. rr F
984263bc 65.\}
e257b235
PA
66.el \{\
67. de IX
68..
69.\}
aac4ff6f 70.\"
e056f0e0
JR
71.\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2).
72.\" Fear. Run. Save yourself. No user-serviceable parts.
73. \" fudge factors for nroff and troff
984263bc 74.if n \{\
e056f0e0
JR
75. ds #H 0
76. ds #V .8m
77. ds #F .3m
78. ds #[ \f1
79. ds #] \fP
984263bc
MD
80.\}
81.if t \{\
e056f0e0
JR
82. ds #H ((1u-(\\\\n(.fu%2u))*.13m)
83. ds #V .6m
84. ds #F 0
85. ds #[ \&
86. ds #] \&
984263bc 87.\}
e056f0e0 88. \" simple accents for nroff and troff
984263bc 89.if n \{\
e056f0e0
JR
90. ds ' \&
91. ds ` \&
92. ds ^ \&
93. ds , \&
94. ds ~ ~
95. ds /
984263bc
MD
96.\}
97.if t \{\
e056f0e0
JR
98. ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u"
99. ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u'
100. ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u'
101. ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u'
102. ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u'
103. ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u'
984263bc 104.\}
e056f0e0 105. \" troff and (daisy-wheel) nroff accents
984263bc
MD
106.ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V'
107.ds 8 \h'\*(#H'\(*b\h'-\*(#H'
108.ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#]
109.ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H'
110.ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u'
111.ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#]
112.ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#]
113.ds ae a\h'-(\w'a'u*4/10)'e
114.ds Ae A\h'-(\w'A'u*4/10)'E
e056f0e0 115. \" corrections for vroff
984263bc
MD
116.if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u'
117.if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u'
e056f0e0 118. \" for low resolution devices (crt and lpr)
984263bc
MD
119.if \n(.H>23 .if \n(.V>19 \
120\{\
e056f0e0
JR
121. ds : e
122. ds 8 ss
123. ds o a
124. ds d- d\h'-1'\(ga
125. ds D- D\h'-1'\(hy
126. ds th \o'bp'
127. ds Th \o'LP'
128. ds ae ae
129. ds Ae AE
984263bc
MD
130.\}
131.rm #[ #] #H #V #F C
e056f0e0
JR
132.\" ========================================================================
133.\"
134.IX Title "SSL_want 3"
fc468453 135.TH SSL_want 3 "2010-02-27" "0.9.8m" "OpenSSL"
e257b235
PA
136.\" For nroff, turn off justification. Always turn off hyphenation; it makes
137.\" way too many mistakes in technical documents.
138.if n .ad l
139.nh
984263bc 140.SH "NAME"
a7d27d5a 141SSL_want, SSL_want_nothing, SSL_want_read, SSL_want_write, SSL_want_x509_lookup \- obtain state information TLS/SSL I/O operation
984263bc 142.SH "SYNOPSIS"
e056f0e0 143.IX Header "SYNOPSIS"
984263bc
MD
144.Vb 1
145\& #include <openssl/ssl.h>
e257b235 146\&
a561f9ff
SS
147\& int SSL_want(const SSL *ssl);
148\& int SSL_want_nothing(const SSL *ssl);
149\& int SSL_want_read(const SSL *ssl);
150\& int SSL_want_write(const SSL *ssl);
151\& int SSL_want_x509_lookup(const SSL *ssl);
984263bc
MD
152.Ve
153.SH "DESCRIPTION"
e056f0e0
JR
154.IX Header "DESCRIPTION"
155\&\fISSL_want()\fR returns state information for the \s-1SSL\s0 object \fBssl\fR.
984263bc
MD
156.PP
157The other SSL_want_*() calls are shortcuts for the possible states returned
158by \fISSL_want()\fR.
159.SH "NOTES"
e056f0e0
JR
160.IX Header "NOTES"
161\&\fISSL_want()\fR examines the internal state information of the \s-1SSL\s0 object. Its
162return values are similar to that of \fISSL_get_error\fR\|(3).
163Unlike \fISSL_get_error\fR\|(3), which also evaluates the
984263bc
MD
164error queue, the results are obtained by examining an internal state flag
165only. The information must therefore only be used for normal operation under
166non-blocking I/O. Error conditions are not handled and must be treated
e056f0e0 167using \fISSL_get_error\fR\|(3).
984263bc
MD
168.PP
169The result returned by \fISSL_want()\fR should always be consistent with
e056f0e0 170the result of \fISSL_get_error\fR\|(3).
984263bc 171.SH "RETURN VALUES"
e056f0e0 172.IX Header "RETURN VALUES"
984263bc 173The following return values can currently occur for \fISSL_want()\fR:
e056f0e0
JR
174.IP "\s-1SSL_NOTHING\s0" 4
175.IX Item "SSL_NOTHING"
984263bc 176There is no data to be written or to be read.
e056f0e0
JR
177.IP "\s-1SSL_WRITING\s0" 4
178.IX Item "SSL_WRITING"
984263bc 179There are data in the \s-1SSL\s0 buffer that must be written to the underlying
e056f0e0
JR
180\&\fB\s-1BIO\s0\fR layer in order to complete the actual SSL_*() operation.
181A call to \fISSL_get_error\fR\|(3) should return
182\&\s-1SSL_ERROR_WANT_WRITE\s0.
183.IP "\s-1SSL_READING\s0" 4
184.IX Item "SSL_READING"
984263bc 185More data must be read from the underlying \fB\s-1BIO\s0\fR layer in order to
e056f0e0
JR
186complete the actual SSL_*() operation.
187A call to \fISSL_get_error\fR\|(3) should return
188\&\s-1SSL_ERROR_WANT_READ\s0.
189.IP "\s-1SSL_X509_LOOKUP\s0" 4
190.IX Item "SSL_X509_LOOKUP"
984263bc 191The operation did not complete because an application callback set by
e056f0e0
JR
192\&\fISSL_CTX_set_client_cert_cb()\fR has asked to be called again.
193A call to \fISSL_get_error\fR\|(3) should return
194\&\s-1SSL_ERROR_WANT_X509_LOOKUP\s0.
984263bc 195.PP
e056f0e0 196\&\fISSL_want_nothing()\fR, \fISSL_want_read()\fR, \fISSL_want_write()\fR, \fISSL_want_x509_lookup()\fR
984263bc
MD
197return 1, when the corresponding condition is true or 0 otherwise.
198.SH "SEE ALSO"
a7d27d5a 199.IX Header "SEE ALSO"
e056f0e0 200\&\fIssl\fR\|(3), \fIerr\fR\|(3), \fISSL_get_error\fR\|(3)