summaryrefslogtreecommitdiffhomepage
path: root/src/http
diff options
context:
space:
mode:
authorSergey Kandaurov <pluknet@nginx.com>2026-04-02 17:41:56 +0400
committerSergey Kandaurov <s.kandaurov@f5.com>2026-04-02 20:54:32 +0400
commit7924a4ec6cb35291ea60a5f2a70ac0a034d94ff7 (patch)
treeaa064569be97067103c9ea023c1845cdfdcf174f /src/http
parent9fd94af4ddfca2f1f725744d6e4a578efef776e4 (diff)
downloadnginx-7924a4ec6cb35291ea60a5f2a70ac0a034d94ff7.tar.gz
nginx-7924a4ec6cb35291ea60a5f2a70ac0a034d94ff7.tar.bz2
Upstream: fixed processing multiple 103 (early hints) responses.
The second 103 response in a row was treated as the final response header.
Diffstat (limited to 'src/http')
-rw-r--r--src/http/ngx_http_upstream.c8
1 files changed, 3 insertions, 5 deletions
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;
}
}