Ticket #2532: quic-old-path-validation

File quic-old-path-validation, 1.2 KB (added by Roman Arutyunyan, 3 years ago)
Line 
1# HG changeset patch
2# User Roman Arutyunyan <arut@nginx.com>
3# Date 1693294448 -14400
4# Tue Aug 29 11:34:08 2023 +0400
5# Node ID 31823ea0fd2ee88b5399f387587f9e11f48ae1fc
6# Parent 7f451ca6f449958011e29aee5231e70be4992374
7QUIC: ignore old path validation error (ticket #2532).
8
9After apparent client migration, nginx validates the old path. However, this
10path may already be unavailable by the time of validation, which may result
11in a socket error returned directly by sendmsg(). In this case nginx used to
12close the connection. Now the error is ignored and path validation proceeds
13as usual, with several retries and a timeout.
14
15diff --git a/src/event/quic/ngx_event_quic_migration.c b/src/event/quic/ngx_event_quic_migration.c
16--- a/src/event/quic/ngx_event_quic_migration.c
17+++ b/src/event/quic/ngx_event_quic_migration.c
18@@ -518,9 +518,7 @@ ngx_quic_validate_path(ngx_connection_t
19 return NGX_ERROR;
20 }
21
22- if (ngx_quic_send_path_challenge(c, path) != NGX_OK) {
23- return NGX_ERROR;
24- }
25+ (void) ngx_quic_send_path_challenge(c, path);
26
27 ctx = ngx_quic_get_send_ctx(qc, ssl_encryption_application);
28 pto = ngx_max(ngx_quic_pto(c, ctx), 1000);