summaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
authorHugo Landau <hlandau@openssl.org>2023-04-18 19:30:56 +0100
committerHugo Landau <hlandau@openssl.org>2023-05-12 14:47:13 +0100
commit9cacba434b027bc6f3a3f3c4255c2453935e5357 (patch)
tree244af72fc1efc6c6f0f82ae71263761498baacfb /include
parentc3a04ea2fdd073e55b57e70e4f17f3ccbaa8c8a6 (diff)
downloadopenssl-new-9cacba434b027bc6f3a3f3c4255c2453935e5357.tar.gz
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.h10
-rw-r--r--include/internal/quic_stream_map.h4
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;