[nginx] svn commit: r4276 - trunk/src/http/modules
mdounin at mdounin.ru
mdounin at mdounin.ru
Mon Nov 14 13:19:57 UTC 2011
Author: mdounin
Date: 2011-11-14 13:19:56 +0000 (Mon, 14 Nov 2011)
New Revision: 4276
Log:
Fixed proxy_set_header inheritance with proxy_set_body.
Modified:
trunk/src/http/modules/ngx_http_proxy_module.c
Modified: trunk/src/http/modules/ngx_http_proxy_module.c
===================================================================
--- trunk/src/http/modules/ngx_http_proxy_module.c 2011-11-14 13:18:15 UTC (rev 4275)
+++ trunk/src/http/modules/ngx_http_proxy_module.c 2011-11-14 13:19:56 UTC (rev 4276)
@@ -2493,7 +2493,6 @@
u_char *p;
size_t size;
- ngx_keyval_t *s;
ngx_hash_init_t hash;
ngx_http_core_loc_conf_t *clcf;
ngx_http_proxy_redirect_t *pr;
@@ -2841,22 +2840,6 @@
if (ngx_http_script_compile(&sc) != NGX_OK) {
return NGX_CONF_ERROR;
}
-
- if (conf->headers_source == NULL) {
- conf->headers_source = ngx_array_create(cf->pool, 4,
- sizeof(ngx_keyval_t));
- if (conf->headers_source == NULL) {
- return NGX_CONF_ERROR;
- }
- }
-
- s = ngx_array_push(conf->headers_source);
- if (s == NULL) {
- return NGX_CONF_ERROR;
- }
-
- ngx_str_set(&s->key, "Content-Length");
- ngx_str_set(&s->value, "$proxy_internal_body_length");
}
if (ngx_http_proxy_merge_headers(cf, conf, prev) != NGX_OK) {
@@ -2891,6 +2874,8 @@
}
if (conf->headers_set_hash.buckets
+ && ((conf->body_source.data == NULL)
+ == (prev->body_source.data == NULL))
#if (NGX_HTTP_CACHE)
&& ((conf->upstream.cache == NULL) == (prev->upstream.cache == NULL))
#endif
@@ -2973,7 +2958,17 @@
h++;
}
+ if (conf->body_source.data) {
+ s = ngx_array_push(&headers_merged);
+ if (s == NULL) {
+ return NGX_ERROR;
+ }
+ ngx_str_set(&s->key, "Content-Length");
+ ngx_str_set(&s->value, "$proxy_internal_body_length");
+ }
+
+
src = headers_merged.elts;
for (i = 0; i < headers_merged.nelts; i++) {
More information about the nginx-devel
mailing list