Welcome! Log In Create A New Profile

Advanced

[nginx] QUIC: prevent deleted stream frame retransmissions.

Anonymous User
October 08, 2024 11:56AM
details: https://github.com/nginx/nginx/commit/3f6d94d8881ca6755b1baa4dd6248a7b7ed15735
branches: master
commit: 3f6d94d8881ca6755b1baa4dd6248a7b7ed15735
user: nandsky <lishu.zy@alibaba-inc.com>
date: Mon, 30 Sep 2024 20:51:17 +0800
description:
QUIC: prevent deleted stream frame retransmissions.

Since a2a513b93cae, stream frames no longer need to be retransmitted after it
was deleted. The frames which were retransmitted before, could be stream data
frames sent prior to a RESET_STREAM. Such retransmissions are explicitly
prohibited by RFC 9000, Section 19.4.

---
src/event/quic/ngx_event_quic_ack.c | 13 ++++++-------
1 file changed, 6 insertions(+), 7 deletions(-)

diff --git a/src/event/quic/ngx_event_quic_ack.c b/src/event/quic/ngx_event_quic_ack.c
index c7ffd44dd..c953b8042 100644
--- a/src/event/quic/ngx_event_quic_ack.c
+++ b/src/event/quic/ngx_event_quic_ack.c
@@ -631,13 +631,12 @@ ngx_quic_resend_frames(ngx_connection_t *c, ngx_quic_send_ctx_t *ctx)
case NGX_QUIC_FT_STREAM:
qs = ngx_quic_find_stream(&qc->streams.tree, f->u.stream.stream_id);

- if (qs) {
- if (qs->send_state == NGX_QUIC_STREAM_SEND_RESET_SENT
- || qs->send_state == NGX_QUIC_STREAM_SEND_RESET_RECVD)
- {
- ngx_quic_free_frame(c, f);
- break;
- }
+ if (qs == NULL
+ || qs->send_state == NGX_QUIC_STREAM_SEND_RESET_SENT
+ || qs->send_state == NGX_QUIC_STREAM_SEND_RESET_RECVD)
+ {
+ ngx_quic_free_frame(c, f);
+ break;
}

/* fall through */
_______________________________________________
nginx-devel mailing list
nginx-devel@nginx.org
https://mailman.nginx.org/mailman/listinfo/nginx-devel
Subject Author Views Posted

[nginx] QUIC: prevent deleted stream frame retransmissions.

Anonymous User 212 October 08, 2024 11:56AM



Sorry, you do not have permission to post/reply in this forum.

Online Users

Guests: 263
Record Number of Users: 8 on April 13, 2023
Record Number of Guests: 500 on July 15, 2024
Powered by nginx      Powered by FreeBSD      PHP Powered      Powered by MariaDB      ipv6 ready