SSL_stream_reset.3ossl 4.2 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_STREAM_RESET 3ossl"
  58. .TH SSL_STREAM_RESET 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_stream_reset \- reset a QUIC stream
  65. .SH SYNOPSIS
  66. .IX Header "SYNOPSIS"
  67. .Vb 1
  68. \& #include <openssl/ssl.h>
  69. \&
  70. \& typedef struct ssl_stream_reset_args_st {
  71. \& uint64_t quic_error_code;
  72. \& } SSL_STREAM_RESET_ARGS;
  73. \&
  74. \& int SSL_stream_reset(SSL *ssl,
  75. \& const SSL_STREAM_RESET_ARGS *args,
  76. \& size_t args_len);
  77. .Ve
  78. .SH DESCRIPTION
  79. .IX Header "DESCRIPTION"
  80. The \fBSSL_stream_reset()\fR function resets the send part of a QUIC stream when
  81. called on a QUIC stream SSL object, or on a QUIC connection SSL object with a
  82. default stream attached.
  83. .PP
  84. If \fIargs\fR is non-NULL, \fIargs_len\fR must be set to \f(CWsizeof(*args)\fR.
  85. .PP
  86. \&\fIquic_error_code\fR is an application-specified error code, which must be in the
  87. range [0, 2**62\-1]. If \fIargs\fR is NULL, a value of 0 is used.
  88. .PP
  89. Resetting a stream indicates to an application that the sending part of the
  90. stream is terminating abnormally. When a stream is reset, the implementation
  91. does not guarantee that any data already passed to \fBSSL_write\fR\|(3) will be
  92. received by the peer, and data already passed to \fBSSL_write\fR\|(3) but not yet
  93. transmitted may or may not be discarded. As such, you should only reset
  94. a stream when the information transmitted on the stream no longer matters, for
  95. example due to an error condition.
  96. .PP
  97. This function cannot be called on a unidirectional stream initiated by the peer,
  98. as only the sending side of a stream can initiate a stream reset.
  99. .PP
  100. It is also possible to trigger a stream reset by calling \fBSSL_free\fR\|(3); see the
  101. documentation for \fBSSL_free\fR\|(3) for details.
  102. .PP
  103. The receiving part of the stream (for bidirectional streams) continues to
  104. function normally.
  105. .SH NOTES
  106. .IX Header "NOTES"
  107. This function corresponds to the QUIC \fBRESET_STREAM\fR frame.
  108. .SH "RETURN VALUES"
  109. .IX Header "RETURN VALUES"
  110. Returns 1 on success and 0 on failure.
  111. .PP
  112. This function fails if called on a QUIC connection SSL object without a default
  113. stream attached, or on a non-QUIC SSL object.
  114. .PP
  115. After the first call to this function succeeds for a given stream,
  116. subsequent calls succeed but are ignored. The application error code
  117. used is that passed to the first successful call to this function.
  118. .SH "SEE ALSO"
  119. .IX Header "SEE ALSO"
  120. \&\fBSSL_free\fR\|(3)
  121. .SH HISTORY
  122. .IX Header "HISTORY"
  123. \&\fBSSL_stream_reset()\fR was added in OpenSSL 3.2.
  124. .SH COPYRIGHT
  125. .IX Header "COPYRIGHT"
  126. Copyright 2002\-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>.