From: Roman Arutyunyan Date: Thu, 10 Aug 2023 16:11:29 +0000 (+0400) Subject: QUIC: always add ACK frame to the queue head. X-Git-Url: http://www.kaiwu.me/postgresql/commit/?a=commitdiff_plain;h=6f5f17358ee6286e491f287eeda5cf2b3946bab6;p=nginx.git QUIC: always add ACK frame to the queue head. Previously it was added to the tail as all other frames. However, if the amount of queued data is large, it could delay the delivery of ACK, which could trigger frames retransmissions and slow down the connection. --- diff --git a/src/event/quic/ngx_event_quic_output.c b/src/event/quic/ngx_event_quic_output.c index 38006a9a5..88b7df6ab 100644 --- a/src/event/quic/ngx_event_quic_output.c +++ b/src/event/quic/ngx_event_quic_output.c @@ -1174,8 +1174,9 @@ ngx_quic_send_ack(ngx_connection_t *c, ngx_quic_send_ctx_t *ctx) frame->u.ack.delay = ack_delay; frame->u.ack.range_count = ctx->nranges; frame->u.ack.first_range = ctx->first_range; + frame->len = ngx_quic_create_frame(NULL, frame); - ngx_quic_queue_frame(qc, frame); + ngx_queue_insert_head(&ctx->frames, &frame->queue); return NGX_OK; }