]> git.kaiwu.me - nginx.git/commitdiff
QUIC: fixed dropping output ack ranges on input ack.
authorVladimir Homutov <vl@nginx.com>
Wed, 21 Oct 2020 17:39:25 +0000 (20:39 +0300)
committerVladimir Homutov <vl@nginx.com>
Wed, 21 Oct 2020 17:39:25 +0000 (20:39 +0300)
While there, additional debug messages were added.

src/event/ngx_event_quic.c

index 7face15cff4512bdc0b729d5b9d41e101e95de42..7848a77ac9faade50bef44818992ce40dc358926 100644 (file)
@@ -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: