SSL_set_shutdown.3ossl 7.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214
  1. .\" Automatically generated by Pod::Man 4.14 (Pod::Simple 3.42)
  2. .\"
  3. .\" Standard preamble:
  4. .\" ========================================================================
  5. .de Sp \" Vertical space (when we can't use .PP)
  6. .if t .sp .5v
  7. .if n .sp
  8. ..
  9. .de Vb \" Begin verbatim text
  10. .ft CW
  11. .nf
  12. .ne \\$1
  13. ..
  14. .de Ve \" End verbatim text
  15. .ft R
  16. .fi
  17. ..
  18. .\" Set up some character translations and predefined strings. \*(-- will
  19. .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left
  20. .\" double quote, and \*(R" will give a right double quote. \*(C+ will
  21. .\" give a nicer C++. Capital omega is used to do unbreakable dashes and
  22. .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff,
  23. .\" nothing in troff, for use with C<>.
  24. .tr \(*W-
  25. .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p'
  26. .ie n \{\
  27. . ds -- \(*W-
  28. . ds PI pi
  29. . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch
  30. . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch
  31. . ds L" ""
  32. . ds R" ""
  33. . ds C` ""
  34. . ds C' ""
  35. 'br\}
  36. .el\{\
  37. . ds -- \|\(em\|
  38. . ds PI \(*p
  39. . ds L" ``
  40. . ds R" ''
  41. . ds C`
  42. . ds C'
  43. 'br\}
  44. .\"
  45. .\" Escape single quotes in literal strings from groff's Unicode transform.
  46. .ie \n(.g .ds Aq \(aq
  47. .el .ds Aq '
  48. .\"
  49. .\" If the F register is >0, we'll generate index entries on stderr for
  50. .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index
  51. .\" entries marked with X<> in POD. Of course, you'll have to process the
  52. .\" output yourself in some meaningful fashion.
  53. .\"
  54. .\" Avoid warning from groff about undefined register 'F'.
  55. .de IX
  56. ..
  57. .nr rF 0
  58. .if \n(.g .if rF .nr rF 1
  59. .if (\n(rF:(\n(.g==0)) \{\
  60. . if \nF \{\
  61. . de IX
  62. . tm Index:\\$1\t\\n%\t"\\$2"
  63. ..
  64. . if !\nF==2 \{\
  65. . nr % 0
  66. . nr F 2
  67. . \}
  68. . \}
  69. .\}
  70. .rr rF
  71. .\"
  72. .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2).
  73. .\" Fear. Run. Save yourself. No user-serviceable parts.
  74. . \" fudge factors for nroff and troff
  75. .if n \{\
  76. . ds #H 0
  77. . ds #V .8m
  78. . ds #F .3m
  79. . ds #[ \f1
  80. . ds #] \fP
  81. .\}
  82. .if t \{\
  83. . ds #H ((1u-(\\\\n(.fu%2u))*.13m)
  84. . ds #V .6m
  85. . ds #F 0
  86. . ds #[ \&
  87. . ds #] \&
  88. .\}
  89. . \" simple accents for nroff and troff
  90. .if n \{\
  91. . ds ' \&
  92. . ds ` \&
  93. . ds ^ \&
  94. . ds , \&
  95. . ds ~ ~
  96. . ds /
  97. .\}
  98. .if t \{\
  99. . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u"
  100. . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u'
  101. . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u'
  102. . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u'
  103. . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u'
  104. . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u'
  105. .\}
  106. . \" troff and (daisy-wheel) nroff accents
  107. .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V'
  108. .ds 8 \h'\*(#H'\(*b\h'-\*(#H'
  109. .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#]
  110. .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H'
  111. .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u'
  112. .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#]
  113. .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#]
  114. .ds ae a\h'-(\w'a'u*4/10)'e
  115. .ds Ae A\h'-(\w'A'u*4/10)'E
  116. . \" corrections for vroff
  117. .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u'
  118. .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u'
  119. . \" for low resolution devices (crt and lpr)
  120. .if \n(.H>23 .if \n(.V>19 \
  121. \{\
  122. . ds : e
  123. . ds 8 ss
  124. . ds o a
  125. . ds d- d\h'-1'\(ga
  126. . ds D- D\h'-1'\(hy
  127. . ds th \o'bp'
  128. . ds Th \o'LP'
  129. . ds ae ae
  130. . ds Ae AE
  131. .\}
  132. .rm #[ #] #H #V #F C
  133. .\" ========================================================================
  134. .\"
  135. .IX Title "SSL_SET_SHUTDOWN 3ossl"
  136. .TH SSL_SET_SHUTDOWN 3ossl "2024-09-03" "3.3.2" "OpenSSL"
  137. .\" For nroff, turn off justification. Always turn off hyphenation; it makes
  138. .\" way too many mistakes in technical documents.
  139. .if n .ad l
  140. .nh
  141. .SH "NAME"
  142. SSL_set_shutdown, SSL_get_shutdown \- manipulate shutdown state of an SSL connection
  143. .SH "SYNOPSIS"
  144. .IX Header "SYNOPSIS"
  145. .Vb 1
  146. \& #include <openssl/ssl.h>
  147. \&
  148. \& void SSL_set_shutdown(SSL *ssl, int mode);
  149. \&
  150. \& int SSL_get_shutdown(const SSL *ssl);
  151. .Ve
  152. .SH "DESCRIPTION"
  153. .IX Header "DESCRIPTION"
  154. \&\fBSSL_set_shutdown()\fR sets the shutdown state of \fBssl\fR to \fBmode\fR.
  155. .PP
  156. \&\fBSSL_get_shutdown()\fR returns the shutdown mode of \fBssl\fR.
  157. .SH "NOTES"
  158. .IX Header "NOTES"
  159. The shutdown state of an ssl connection is a bit-mask of:
  160. .IP "0" 4
  161. No shutdown setting, yet.
  162. .IP "\s-1SSL_SENT_SHUTDOWN\s0" 4
  163. .IX Item "SSL_SENT_SHUTDOWN"
  164. A close_notify shutdown alert was sent to the peer, the connection is being
  165. considered closed and the session is closed and correct.
  166. .IP "\s-1SSL_RECEIVED_SHUTDOWN\s0" 4
  167. .IX Item "SSL_RECEIVED_SHUTDOWN"
  168. A shutdown alert was received form the peer, either a normal close_notify
  169. or a fatal error.
  170. .PP
  171. \&\s-1SSL_SENT_SHUTDOWN\s0 and \s-1SSL_RECEIVED_SHUTDOWN\s0 can be set at the same time.
  172. .PP
  173. The shutdown state of the connection is used to determine the state of
  174. the ssl session. If the session is still open, when
  175. \&\fBSSL_clear\fR\|(3) or \fBSSL_free\fR\|(3) is called,
  176. it is considered bad and removed according to \s-1RFC2246.\s0
  177. The actual condition for a correctly closed session is \s-1SSL_SENT_SHUTDOWN\s0
  178. (according to the \s-1TLS RFC,\s0 it is acceptable to only send the close_notify
  179. alert but to not wait for the peer's answer, when the underlying connection
  180. is closed).
  181. \&\fBSSL_set_shutdown()\fR can be used to set this state without sending a
  182. close alert to the peer (see \fBSSL_shutdown\fR\|(3)).
  183. .PP
  184. If a close_notify was received, \s-1SSL_RECEIVED_SHUTDOWN\s0 will be set,
  185. for setting \s-1SSL_SENT_SHUTDOWN\s0 the application must however still call
  186. \&\fBSSL_shutdown\fR\|(3) or \fBSSL_set_shutdown()\fR itself.
  187. .PP
  188. \&\fBSSL_set_shutdown()\fR is not supported for \s-1QUIC SSL\s0 objects.
  189. .SH "RETURN VALUES"
  190. .IX Header "RETURN VALUES"
  191. \&\fBSSL_set_shutdown()\fR does not return diagnostic information.
  192. .PP
  193. \&\fBSSL_get_shutdown()\fR returns the current shutdown state as set or based
  194. on the actual connection state.
  195. .PP
  196. \&\fBSSL_get_shutdown()\fR returns 0 if called on a \s-1QUIC\s0 stream \s-1SSL\s0 object. If it
  197. is called on a \s-1QUIC\s0 connection \s-1SSL\s0 object, it returns a value with
  198. \&\s-1SSL_SENT_SHUTDOWN\s0 set if \s-1CONNECTION_CLOSE\s0 has been sent to the peer and
  199. it returns a value with \s-1SSL_RECEIVED_SHUTDOWN\s0 set if \s-1CONNECTION_CLOSE\s0
  200. has been received from the peer or the \s-1QUIC\s0 connection is fully terminated
  201. for other reasons.
  202. .SH "SEE ALSO"
  203. .IX Header "SEE ALSO"
  204. \&\fBssl\fR\|(7), \fBSSL_shutdown\fR\|(3),
  205. \&\fBSSL_CTX_set_quiet_shutdown\fR\|(3),
  206. \&\fBSSL_clear\fR\|(3), \fBSSL_free\fR\|(3)
  207. .SH "COPYRIGHT"
  208. .IX Header "COPYRIGHT"
  209. Copyright 2001\-2023 The OpenSSL Project Authors. All Rights Reserved.
  210. .PP
  211. Licensed under the Apache License 2.0 (the \*(L"License\*(R"). You may not use
  212. this file except in compliance with the License. You can obtain a copy
  213. in the file \s-1LICENSE\s0 in the source distribution or at
  214. <https://www.openssl.org/source/license.html>.