SSL_get_event_timeout.3ossl 4.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131
  1. .\" -*- mode: troff; coding: utf-8 -*-
  2. .\" Automatically generated by Pod::Man 5.01 (Pod::Simple 3.43)
  3. .\"
  4. .\" Standard preamble:
  5. .\" ========================================================================
  6. .de Sp \" Vertical space (when we can't use .PP)
  7. .if t .sp .5v
  8. .if n .sp
  9. ..
  10. .de Vb \" Begin verbatim text
  11. .ft CW
  12. .nf
  13. .ne \\$1
  14. ..
  15. .de Ve \" End verbatim text
  16. .ft R
  17. .fi
  18. ..
  19. .\" \*(C` and \*(C' are quotes in nroff, nothing in troff, for use with C<>.
  20. .ie n \{\
  21. . ds C` ""
  22. . ds C' ""
  23. 'br\}
  24. .el\{\
  25. . ds C`
  26. . ds C'
  27. 'br\}
  28. .\"
  29. .\" Escape single quotes in literal strings from groff's Unicode transform.
  30. .ie \n(.g .ds Aq \(aq
  31. .el .ds Aq '
  32. .\"
  33. .\" If the F register is >0, we'll generate index entries on stderr for
  34. .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index
  35. .\" entries marked with X<> in POD. Of course, you'll have to process the
  36. .\" output yourself in some meaningful fashion.
  37. .\"
  38. .\" Avoid warning from groff about undefined register 'F'.
  39. .de IX
  40. ..
  41. .nr rF 0
  42. .if \n(.g .if rF .nr rF 1
  43. .if (\n(rF:(\n(.g==0)) \{\
  44. . if \nF \{\
  45. . de IX
  46. . tm Index:\\$1\t\\n%\t"\\$2"
  47. ..
  48. . if !\nF==2 \{\
  49. . nr % 0
  50. . nr F 2
  51. . \}
  52. . \}
  53. .\}
  54. .rr rF
  55. .\" ========================================================================
  56. .\"
  57. .IX Title "SSL_GET_EVENT_TIMEOUT 3ossl"
  58. .TH SSL_GET_EVENT_TIMEOUT 3ossl 2025-01-17 3.4.0 OpenSSL
  59. .\" For nroff, turn off justification. Always turn off hyphenation; it makes
  60. .\" way too many mistakes in technical documents.
  61. .if n .ad l
  62. .nh
  63. .SH NAME
  64. SSL_get_event_timeout \- determine when an SSL object next needs to have events
  65. handled
  66. .SH SYNOPSIS
  67. .IX Header "SYNOPSIS"
  68. .Vb 1
  69. \& #include <openssl/ssl.h>
  70. \&
  71. \& int SSL_get_event_timeout(SSL *s, struct timeval *tv, int *is_infinite);
  72. .Ve
  73. .SH DESCRIPTION
  74. .IX Header "DESCRIPTION"
  75. \&\fBSSL_get_event_timeout()\fR determines when the SSL object next needs to perform
  76. internal processing due to the passage of time.
  77. .PP
  78. All arguments are required; \fItv\fR and \fIis_infinite\fR must be non-NULL.
  79. .PP
  80. Upon the successful return of \fBSSL_get_event_timeout()\fR, one of the following
  81. cases applies:
  82. .IP \(bu 4
  83. The SSL object has events which need to be handled immediately; The fields of
  84. \&\fI*tv\fR are set to 0 and \fI*is_infinite\fR is set to 0.
  85. .IP \(bu 4
  86. The SSL object has events which need to be handled after some amount of time
  87. (relative to the time at which \fBSSL_get_event_timeout()\fR was called). \fI*tv\fR is
  88. set to the amount of time after which \fBSSL_handle_events\fR\|(3) should be called
  89. and \fI*is_infinite\fR is set to 0.
  90. .IP \(bu 4
  91. There are currently no timer events which require handling in the future. The
  92. value of \fI*tv\fR is unspecified and \fI*is_infinite\fR is set to 1.
  93. .PP
  94. This function is currently applicable only to DTLS and QUIC connection SSL
  95. objects. If it is called on any other kind of SSL object, it always outputs
  96. infinity. This is considered a success condition.
  97. .PP
  98. For DTLS, this function can be used instead of the older
  99. \&\fBDTLSv1_get_timeout\fR\|(3) function. Note that this function differs from
  100. \&\fBDTLSv1_get_timeout\fR\|(3) in that the case where no timeout is active is
  101. considered a success condition.
  102. .PP
  103. Note that the value output by a call to \fBSSL_get_event_timeout()\fR may change as a
  104. result of other calls to the SSL object.
  105. .PP
  106. Once the timeout expires, \fBSSL_handle_events\fR\|(3) should be called to handle any
  107. internal processing which is due; for more information, see
  108. \&\fBSSL_handle_events\fR\|(3).
  109. .PP
  110. Note that \fBSSL_get_event_timeout()\fR supersedes the older \fBDTLSv1_get_timeout\fR\|(3)
  111. function for all use cases.
  112. .PP
  113. If the call to \fBSSL_get_event_timeout()\fR fails, the values of \fI*tv\fR and
  114. \&\fI*is_infinite\fR may still be changed and their values become unspecified.
  115. .SH "RETURN VALUES"
  116. .IX Header "RETURN VALUES"
  117. Returns 1 on success and 0 on failure.
  118. .SH "SEE ALSO"
  119. .IX Header "SEE ALSO"
  120. \&\fBSSL_handle_events\fR\|(3), \fBDTLSv1_get_timeout\fR\|(3), \fBssl\fR\|(7)
  121. .SH HISTORY
  122. .IX Header "HISTORY"
  123. The \fBSSL_get_event_timeout()\fR function was added in OpenSSL 3.2.
  124. .SH COPYRIGHT
  125. .IX Header "COPYRIGHT"
  126. Copyright 2022\-2023 The OpenSSL Project Authors. All Rights Reserved.
  127. .PP
  128. Licensed under the Apache License 2.0 (the "License"). You may not use
  129. this file except in compliance with the License. You can obtain a copy
  130. in the file LICENSE in the source distribution or at
  131. <https://www.openssl.org/source/license.html>.