[nginx] Upstream: all known headers in u->headers_in are linked lists now.

Sergey Kandaurov pluknet at nginx.com
Mon May 30 22:32:48 UTC 2022


details:   https://hg.nginx.org/nginx/rev/2025aae94739
branches:  
changeset: 8032:2025aae94739
user:      Maxim Dounin <mdounin at mdounin.ru>
date:      Mon May 30 21:25:46 2022 +0300
description:
Upstream: all known headers in u->headers_in are linked lists now.

diffstat:

 src/http/modules/ngx_http_proxy_module.c |  2 ++
 src/http/ngx_http_upstream.c             |  9 +++++++++
 2 files changed, 11 insertions(+), 0 deletions(-)

diffs (94 lines):

diff -r d26db4f82d7d -r 2025aae94739 src/http/modules/ngx_http_proxy_module.c
--- a/src/http/modules/ngx_http_proxy_module.c	Mon May 30 21:25:45 2022 +0300
+++ b/src/http/modules/ngx_http_proxy_module.c	Mon May 30 21:25:46 2022 +0300
@@ -1965,6 +1965,7 @@ ngx_http_proxy_process_header(ngx_http_r
                 ngx_str_set(&h->key, "Server");
                 ngx_str_null(&h->value);
                 h->lowcase_key = (u_char *) "server";
+                h->next = NULL;
             }
 
             if (r->upstream->headers_in.date == NULL) {
@@ -1978,6 +1979,7 @@ ngx_http_proxy_process_header(ngx_http_r
                 ngx_str_set(&h->key, "Date");
                 ngx_str_null(&h->value);
                 h->lowcase_key = (u_char *) "date";
+                h->next = NULL;
             }
 
             /* clear content length if response is chunked */
diff -r d26db4f82d7d -r 2025aae94739 src/http/ngx_http_upstream.c
--- a/src/http/ngx_http_upstream.c	Mon May 30 21:25:45 2022 +0300
+++ b/src/http/ngx_http_upstream.c	Mon May 30 21:25:46 2022 +0300
@@ -4610,6 +4610,7 @@ ngx_http_upstream_process_header_line(ng
 
     if (*ph == NULL) {
         *ph = h;
+        h->next = NULL;
     }
 
     return NGX_OK;
@@ -4632,6 +4633,7 @@ ngx_http_upstream_process_content_length
 
     u = r->upstream;
 
+    h->next = NULL;
     u->headers_in.content_length = h;
     u->headers_in.content_length_n = ngx_atoof(h->value.data, h->value.len);
 
@@ -4647,6 +4649,7 @@ ngx_http_upstream_process_last_modified(
 
     u = r->upstream;
 
+    h->next = NULL;
     u->headers_in.last_modified = h;
     u->headers_in.last_modified_time = ngx_parse_http_time(h->value.data,
                                                            h->value.len);
@@ -4816,6 +4819,7 @@ ngx_http_upstream_process_expires(ngx_ht
 
     u = r->upstream;
     u->headers_in.expires = h;
+    h->next = NULL;
 
 #if (NGX_HTTP_CACHE)
     {
@@ -4856,6 +4860,7 @@ ngx_http_upstream_process_accel_expires(
 
     u = r->upstream;
     u->headers_in.x_accel_expires = h;
+    h->next = NULL;
 
 #if (NGX_HTTP_CACHE)
     {
@@ -4915,6 +4920,7 @@ ngx_http_upstream_process_limit_rate(ngx
 
     u = r->upstream;
     u->headers_in.x_accel_limit_rate = h;
+    h->next = NULL;
 
     if (u->conf->ignore_headers & NGX_HTTP_UPSTREAM_IGN_XA_LIMIT_RATE) {
         return NGX_OK;
@@ -4995,6 +5001,7 @@ ngx_http_upstream_process_connection(ngx
 
     u = r->upstream;
     u->headers_in.connection = h;
+    h->next = NULL;
 
     if (ngx_strlcasestrn(h->value.data, h->value.data + h->value.len,
                          (u_char *) "close", 5 - 1)
@@ -5015,6 +5022,7 @@ ngx_http_upstream_process_transfer_encod
 
     u = r->upstream;
     u->headers_in.transfer_encoding = h;
+    h->next = NULL;
 
     if (ngx_strlcasestrn(h->value.data, h->value.data + h->value.len,
                          (u_char *) "chunked", 7 - 1)
@@ -5035,6 +5043,7 @@ ngx_http_upstream_process_vary(ngx_http_
 
     u = r->upstream;
     u->headers_in.vary = h;
+    h->next = NULL;
 
 #if (NGX_HTTP_CACHE)
 



More information about the nginx-devel mailing list