diff options
| author | Sergey Kandaurov <pluknet@nginx.com> | 2026-04-02 17:41:56 +0400 |
|---|---|---|
| committer | Sergey Kandaurov <s.kandaurov@f5.com> | 2026-04-02 20:54:32 +0400 |
| commit | 7924a4ec6cb35291ea60a5f2a70ac0a034d94ff7 (patch) | |
| tree | aa064569be97067103c9ea023c1845cdfdcf174f /src/http | |
| parent | 9fd94af4ddfca2f1f725744d6e4a578efef776e4 (diff) | |
| download | nginx-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.c | 8 |
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; } } |
