diff options
author | Hugo Landau <hlandau@openssl.org> | 2023-04-18 19:30:56 +0100 |
---|---|---|
committer | Hugo Landau <hlandau@openssl.org> | 2023-05-12 14:47:13 +0100 |
commit | 9cacba434b027bc6f3a3f3c4255c2453935e5357 (patch) | |
tree | 244af72fc1efc6c6f0f82ae71263761498baacfb /include | |
parent | c3a04ea2fdd073e55b57e70e4f17f3ccbaa8c8a6 (diff) |
QUIC FIFD: Add support for callback on frame ACK
We need to get acknowledgement notifications for our STOP_SENDING and
STREAM_RESET frames as this information is needed to know when we can
delete a QUIC_STREAM object.
Reviewed-by: Matt Caswell <matt@openssl.org>
Reviewed-by: Tomas Mraz <tomas@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/20765)
Diffstat (limited to 'include')
-rw-r--r-- | include/internal/quic_fifd.h | 10 | ||||
-rw-r--r-- | include/internal/quic_stream_map.h | 4 |
2 files changed, 14 insertions, 0 deletions
diff --git a/include/internal/quic_fifd.h b/include/internal/quic_fifd.h index ae9e32882a..b395865f2e 100644 --- a/include/internal/quic_fifd.h +++ b/include/internal/quic_fifd.h @@ -37,6 +37,11 @@ struct quic_fifd_st { QUIC_TXPIM_PKT *pkt, void *arg); void *regen_frame_arg; + void (*confirm_frame)(uint64_t frame_type, + uint64_t stream_id, + QUIC_TXPIM_PKT *pkt, + void *arg); + void *confirm_frame_arg; void (*sstream_updated)(uint64_t stream_id, void *arg); void *sstream_updated_arg; @@ -57,6 +62,11 @@ int ossl_quic_fifd_init(QUIC_FIFD *fifd, QUIC_TXPIM_PKT *pkt, void *arg), void *regen_frame_arg, + void (*confirm_frame)(uint64_t frame_type, + uint64_t stream_id, + QUIC_TXPIM_PKT *pkt, + void *arg), + void *confirm_frame_arg, void (*sstream_updated)(uint64_t stream_id, void *arg), void *sstream_updated_arg); diff --git a/include/internal/quic_stream_map.h b/include/internal/quic_stream_map.h index 152a21108d..0f2732a6fc 100644 --- a/include/internal/quic_stream_map.h +++ b/include/internal/quic_stream_map.h @@ -112,6 +112,10 @@ struct quic_stream_st { unsigned int want_stop_sending : 1; /* used for gen or regen */ unsigned int want_reset_stream : 1; /* used for gen or regen */ + /* Flags set when frames *we* sent were acknowledged. */ + unsigned int acked_stop_sending : 1; + unsigned int acked_reset_stream : 1; + /* A FIN has been retired from the rstream buffer. */ unsigned int recv_fin_retired : 1; |