From 7924a4ec6cb35291ea60a5f2a70ac0a034d94ff7 Mon Sep 17 00:00:00 2001 From: Sergey Kandaurov Date: Thu, 2 Apr 2026 17:41:56 +0400 Subject: Upstream: fixed processing multiple 103 (early hints) responses. The second 103 response in a row was treated as the final response header. --- src/http/ngx_http_upstream.c | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) (limited to 'src/http') diff --git a/src/http/ngx_http_upstream.c b/src/http/ngx_http_upstream.c index f177f0a28..c84defaa9 100644 --- a/src/http/ngx_http_upstream.c +++ b/src/http/ngx_http_upstream.c @@ -2550,6 +2550,8 @@ ngx_http_upstream_process_header(ngx_http_request_t *r, ngx_http_upstream_t *u) u->response_received = 1; +again: + rc = u->process_header(r); if (rc == NGX_AGAIN) { @@ -2570,11 +2572,7 @@ ngx_http_upstream_process_header(ngx_http_request_t *r, ngx_http_upstream_t *u) rc = ngx_http_upstream_process_early_hints(r, u); if (rc == NGX_OK) { - rc = u->process_header(r); - - if (rc == NGX_AGAIN) { - continue; - } + goto again; } } -- cgit