aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorVladimir Homutov <vl@nginx.com>2020-10-21 20:39:25 +0300
committerVladimir Homutov <vl@nginx.com>2020-10-21 20:39:25 +0300
commitff26faaf77d9fa555ee7476a11a574cb3530228c (patch)
tree3d153a7a143b70eed8f65e836042f75ba2f499e5 /src
parent1506c7b825939cc603a826a4a31b3db2af658338 (diff)
downloadnginx-ff26faaf77d9fa555ee7476a11a574cb3530228c.tar.gz
nginx-ff26faaf77d9fa555ee7476a11a574cb3530228c.zip
QUIC: fixed dropping output ack ranges on input ack.
While there, additional debug messages were added.
Diffstat (limited to 'src')
-rw-r--r--src/event/ngx_event_quic.c17
1 files changed, 11 insertions, 6 deletions
diff --git a/src/event/ngx_event_quic.c b/src/event/ngx_event_quic.c
index 7face15cf..7848a77ac 100644
--- a/src/event/ngx_event_quic.c
+++ b/src/event/ngx_event_quic.c
@@ -2309,9 +2309,10 @@ ngx_quic_ack_packet(ngx_connection_t *c, ngx_quic_header_t *pkt)
ctx = ngx_quic_get_send_ctx(c->quic, pkt->level);
- ngx_log_debug3(NGX_LOG_DEBUG_EVENT, c->log, 0,
- "ngx_quic_ack_packet pn %uL largest %uL nranges %ui",
- pkt->pn, ctx->largest_range, ctx->nranges);
+ ngx_log_debug4(NGX_LOG_DEBUG_EVENT, c->log, 0,
+ "ngx_quic_ack_packet pn %uL largest %uL"
+ " first %uL nranges %ui", pkt->pn, ctx->largest_range,
+ ctx->first_range, ctx->nranges);
prev_pending = ctx->pending_ack;
@@ -2549,6 +2550,11 @@ ngx_quic_drop_ack_ranges(ngx_connection_t *c, ngx_quic_send_ctx_t *ctx,
ngx_uint_t i, smallest, largest;
ngx_quic_ack_range_t *r;
+ ngx_log_debug4(NGX_LOG_DEBUG_EVENT, c->log, 0,
+ "ngx_quic_drop_ack_ranges pn %uL largest %uL"
+ " first %uL nranges %ui", pn, ctx->largest_range,
+ ctx->first_range, ctx->nranges);
+
base = ctx->largest_range;
if (base == NGX_QUIC_UNSET_PN) {
@@ -2793,6 +2799,8 @@ ngx_quic_handle_ack_frame(ngx_connection_t *c, ngx_quic_header_t *pkt,
}
}
+ ngx_quic_drop_ack_ranges(c, ctx, ack->largest);
+
pos = ack->ranges_start;
end = ack->ranges_end;
@@ -2863,9 +2871,6 @@ ngx_quic_handle_ack_frame_range(ngx_connection_t *c, ngx_quic_send_ctx_t *ctx,
ngx_quic_congestion_ack(c, f);
switch (f->type) {
- case NGX_QUIC_FT_ACK:
- ngx_quic_drop_ack_ranges(c, ctx, f->u.ack.largest);
- break;
case NGX_QUIC_FT_STREAM0:
case NGX_QUIC_FT_STREAM1: