From 6919b235143105d947118e924b25bebc09f1822f Mon Sep 17 00:00:00 2001 From: TheBitBrine Date: Sun, 26 Oct 2025 00:46:23 +0000 Subject: [PATCH] QUIC: handle ACK frames with ECN counts RFC 9000 section 19.3 requires implementations to accept both ACK frame types: 0x02 (without ECN counts) and 0x03 (with ECN counts). Previously, nginx would close the connection with "missing frame handler" error when receiving ACK frames with ECN counts, even though the parser already correctly handles them. This adds the missing case to handle NGX_QUIC_FT_ACK_ECN frames, treating them identically to NGX_QUIC_FT_ACK frames. The ECN counters are parsed but not used, which is compliant with the specification. Fixes #945 --- src/event/quic/ngx_event_quic.c | 1 + 1 file changed, 1 insertion(+) diff --git a/src/event/quic/ngx_event_quic.c b/src/event/quic/ngx_event_quic.c index 6a59aaf93..fc7e82320 100644 --- a/src/event/quic/ngx_event_quic.c +++ b/src/event/quic/ngx_event_quic.c @@ -1231,6 +1231,7 @@ ngx_quic_handle_frames(ngx_connection_t *c, ngx_quic_header_t *pkt) switch (frame.type) { case NGX_QUIC_FT_ACK: + case NGX_QUIC_FT_ACK_ECN: if (ngx_quic_handle_ack_frame(c, pkt, &frame) != NGX_OK) { return NGX_ERROR; }