| 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
|
|---|
| 7 | QUIC: ignore old path validation error (ticket #2532).
|
|---|
| 8 |
|
|---|
| 9 | After apparent client migration, nginx validates the old path. However, this
|
|---|
| 10 | path may already be unavailable by the time of validation, which may result
|
|---|
| 11 | in a socket error returned directly by sendmsg(). In this case nginx used to
|
|---|
| 12 | close the connection. Now the error is ignored and path validation proceeds
|
|---|
| 13 | as usual, with several retries and a timeout.
|
|---|
| 14 |
|
|---|
| 15 | diff --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);
|
|---|