mirror of
https://gitea.invidious.io/iv-org/litespeed-quic.git
synced 2024-08-15 00:53:43 +00:00
Release 2.25.0
- [API, FEATURE] Add es_delay_onclose option to delay on_close until all data is ACKed. Use new function lsquic_stream_has_unacked_data() to learn whether peer acknowledged all data written to stream. - [API] Add optional on_reset() stream callback to get notifications when RESET or STOP_SENDING frames are received. - [BUGFIX] On STOP_SENDING, make conn tickable is _writeable_, not readable.
This commit is contained in:
parent
57fe5a13ac
commit
7f96c7c7f3
13 changed files with 300 additions and 58 deletions
|
@ -856,6 +856,16 @@ settings structure:
|
|||
|
||||
Default value is :macro:`LSQUIC_DF_QPACK_EXPERIMENT`
|
||||
|
||||
.. member:: int es_delay_onclose
|
||||
|
||||
When set to true, :member:`lsquic_stream_if.on_close` will be delayed until the
|
||||
peer acknowledges all data sent on the stream. (Or until the connection
|
||||
is destroyed in some manner -- either explicitly closed by the user or
|
||||
as a result of an engine shutdown.) To find out whether all data written
|
||||
to peer has been acknowledged, use `lsquic_stream_has_unacked_data()`.
|
||||
|
||||
Default value is :macro:`LSQUIC_DF_DELAY_ONCLOSE`
|
||||
|
||||
To initialize the settings structure to library defaults, use the following
|
||||
convenience function:
|
||||
|
||||
|
@ -1088,6 +1098,10 @@ out of date. Please check your :file:`lsquic.h` for actual values.*
|
|||
|
||||
By default, QPACK experiments are turned off.
|
||||
|
||||
.. macro:: LSQUIC_DF_DELAY_ONCLOSE
|
||||
|
||||
By default, calling :member:`lsquic_stream_if.on_close()` is not delayed.
|
||||
|
||||
Receiving Packets
|
||||
-----------------
|
||||
|
||||
|
@ -1272,6 +1286,20 @@ the engine to communicate with the user code:
|
|||
|
||||
This callback is mandatory.
|
||||
|
||||
.. member:: void (*on_reset) (lsquic_stream_t *s, lsquic_stream_ctx_t *h, int how)
|
||||
|
||||
This callback is called as soon as the peer resets a stream.
|
||||
The argument `how` is either 0, 1, or 2, meaning "read", "write", and
|
||||
"read and write", respectively (just like in ``shutdown(2)``). This
|
||||
signals the user to stop reading, writing, or both.
|
||||
|
||||
Note that resets differ in gQUIC and IETF QUIC. In gQUIC, `how` is
|
||||
always 2; in IETF QUIC, `how` is either 0 or 1 because on can reset
|
||||
just one direction in IETF QUIC.
|
||||
|
||||
This callback is optional. The reset error can still be collected
|
||||
during next "on read" or "on write" event.
|
||||
|
||||
.. member:: void (*on_hsk_done)(lsquic_conn_t *c, enum lsquic_hsk_status s)
|
||||
|
||||
When handshake is completed, this callback is called.
|
||||
|
@ -1945,6 +1973,11 @@ Miscellaneous Stream Functions
|
|||
Returns true if this stream was rejected, false otherwise. Use this as
|
||||
an aid to distinguish between errors.
|
||||
|
||||
.. function:: int lsquic_stream_has_unacked_data (const lsquic_stream_t *stream)
|
||||
|
||||
Return true if peer has not ACKed all data written to the stream. This
|
||||
includes both packetized and buffered data.
|
||||
|
||||
Other Functions
|
||||
---------------
|
||||
|
||||
|
|
|
@ -24,9 +24,9 @@ copyright = u'2020, LiteSpeed Technologies'
|
|||
author = u'LiteSpeed Technologies'
|
||||
|
||||
# The short X.Y version
|
||||
version = u'2.24'
|
||||
version = u'2.25'
|
||||
# The full version, including alpha/beta/rc tags
|
||||
release = u'2.24.5'
|
||||
release = u'2.25.0'
|
||||
|
||||
|
||||
# -- General configuration ---------------------------------------------------
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue