summaryrefslogtreecommitdiffhomepage
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/event/ngx_event_quic.c13
1 files changed, 9 insertions, 4 deletions
diff --git a/src/event/ngx_event_quic.c b/src/event/ngx_event_quic.c
index f0f07bf38..0781bcfb0 100644
--- a/src/event/ngx_event_quic.c
+++ b/src/event/ngx_event_quic.c
@@ -3781,11 +3781,19 @@ ngx_quic_detect_lost(ngx_connection_t *c)
ctx = &qc->send_ctx[i];
+ if (ctx->largest_ack == (uint64_t) -1) {
+ continue;
+ }
+
while (!ngx_queue_empty(&ctx->sent)) {
q = ngx_queue_head(&ctx->sent);
start = ngx_queue_data(q, ngx_quic_frame_t, queue);
+ if (start->pnum > ctx->largest_ack) {
+ break;
+ }
+
wait = start->last + thr - now;
ngx_log_debug4(NGX_LOG_DEBUG_EVENT, c->log, 0,
@@ -3798,10 +3806,7 @@ ngx_quic_detect_lost(ngx_connection_t *c)
min_wait = wait;
}
- if ((start->pnum > ctx->largest_ack)
- || ctx->largest_ack == (uint64_t) -1
- || ((ctx->largest_ack - start->pnum) < NGX_QUIC_PKT_THR))
- {
+ if (ctx->largest_ack - start->pnum < NGX_QUIC_PKT_THR) {
break;
}
}