aboutsummaryrefslogtreecommitdiff
path: root/src/http/modules/ngx_http_fastcgi_module.c
diff options
context:
space:
mode:
authorMaxim Dounin <mdounin@mdounin.ru>2016-10-14 19:48:26 +0300
committerMaxim Dounin <mdounin@mdounin.ru>2016-10-14 19:48:26 +0300
commit948a18ed542a86fd2389986bd0cbb7da1cfac1b7 (patch)
treee80f1e47b65badbc63fd0d67054a9bf6dfca6f16 /src/http/modules/ngx_http_fastcgi_module.c
parent97fc4ab790a564ea35aabdb6573ff2afd30e83e0 (diff)
downloadnginx-948a18ed542a86fd2389986bd0cbb7da1cfac1b7.tar.gz
nginx-948a18ed542a86fd2389986bd0cbb7da1cfac1b7.zip
Upstream: handling of proxy_set_header at http level.
When headers are set at the "http" level and not redefined in a server block, we now preserve conf->headers into the "http" section configuration to inherit it to all servers. The same applies to conf->headers_cache, though it may not be effective if no servers use cache at the "server" level as conf->headers_cache is only initialized if cache is enabled on a given level. Similar changes made in fastcgi/scgi/uwsgi to preserve conf->params and conf->params_cache.
Diffstat (limited to 'src/http/modules/ngx_http_fastcgi_module.c')
-rw-r--r--src/http/modules/ngx_http_fastcgi_module.c14
1 files changed, 14 insertions, 0 deletions
diff --git a/src/http/modules/ngx_http_fastcgi_module.c b/src/http/modules/ngx_http_fastcgi_module.c
index 62502b04f..f6a8c6086 100644
--- a/src/http/modules/ngx_http_fastcgi_module.c
+++ b/src/http/modules/ngx_http_fastcgi_module.c
@@ -3127,6 +3127,20 @@ ngx_http_fastcgi_merge_loc_conf(ngx_conf_t *cf, void *parent, void *child)
#endif
+ /*
+ * special handling to preserve conf->params in the "http" section
+ * to inherit it to all servers
+ */
+
+ if (prev->params.hash.buckets == NULL
+ && conf->params_source == prev->params_source)
+ {
+ prev->params = conf->params;
+#if (NGX_HTTP_CACHE)
+ prev->params_cache = conf->params_cache;
+#endif
+ }
+
return NGX_CONF_OK;
}