comparison src/http/modules/ngx_http_fastcgi_module.c @ 484:ed5e10fb40fc NGINX_0_7_54

nginx 0.7.54 *) Feature: the ngx_http_image_filter_module. *) Feature: the "proxy_ignore_headers" and "fastcgi_ignore_headers" directives. *) Bugfix: a segmentation fault might occur in worker process, if an "open_file_cache_errors off" directive was used; the bug had appeared in 0.7.53. *) Bugfix: the "port_in_redirect off" directive did not work; the bug had appeared in 0.7.39. *) Bugfix: improve handling of "select" method errors. *) Bugfix: of "select() failed (10022: ...)" error in nginx/Windows. *) Bugfix: in error text descriptions in nginx/Windows; the bug had appeared in 0.7.53.
author Igor Sysoev <http://sysoev.ru>
date Fri, 01 May 2009 00:00:00 +0400
parents 392c16f2d858
children 499474178a11
comparison
equal deleted inserted replaced
483:0a2f4b42ddad 484:ed5e10fb40fc
181 { ngx_string("off"), NGX_HTTP_UPSTREAM_FT_OFF }, 181 { ngx_string("off"), NGX_HTTP_UPSTREAM_FT_OFF },
182 { ngx_null_string, 0 } 182 { ngx_null_string, 0 }
183 }; 183 };
184 184
185 185
186 static ngx_conf_bitmask_t ngx_http_fastcgi_ignore_headers_masks[] = {
187 { ngx_string("X-Accel-Redirect"), NGX_HTTP_UPSTREAM_IGN_XA_REDIRECT },
188 { ngx_string("X-Accel-Expires"), NGX_HTTP_UPSTREAM_IGN_XA_EXPIRES },
189 { ngx_string("Expires"), NGX_HTTP_UPSTREAM_IGN_EXPIRES },
190 { ngx_string("Cache-Control"), NGX_HTTP_UPSTREAM_IGN_CACHE_CONTROL },
191 { ngx_null_string, 0 }
192 };
193
194
186 ngx_module_t ngx_http_fastcgi_module; 195 ngx_module_t ngx_http_fastcgi_module;
187 196
188 197
189 static ngx_command_t ngx_http_fastcgi_commands[] = { 198 static ngx_command_t ngx_http_fastcgi_commands[] = {
190 199
406 NGX_HTTP_MAIN_CONF|NGX_HTTP_SRV_CONF|NGX_HTTP_LOC_CONF|NGX_CONF_FLAG, 415 NGX_HTTP_MAIN_CONF|NGX_HTTP_SRV_CONF|NGX_HTTP_LOC_CONF|NGX_CONF_FLAG,
407 ngx_conf_set_str_array_slot, 416 ngx_conf_set_str_array_slot,
408 NGX_HTTP_LOC_CONF_OFFSET, 417 NGX_HTTP_LOC_CONF_OFFSET,
409 offsetof(ngx_http_fastcgi_loc_conf_t, upstream.hide_headers), 418 offsetof(ngx_http_fastcgi_loc_conf_t, upstream.hide_headers),
410 NULL }, 419 NULL },
420
421 { ngx_string("fastcgi_ignore_headers"),
422 NGX_HTTP_MAIN_CONF|NGX_HTTP_SRV_CONF|NGX_HTTP_LOC_CONF|NGX_CONF_1MORE,
423 ngx_conf_set_bitmask_slot,
424 NGX_HTTP_LOC_CONF_OFFSET,
425 offsetof(ngx_http_fastcgi_loc_conf_t, upstream.ignore_headers),
426 &ngx_http_fastcgi_ignore_headers_masks },
411 427
412 { ngx_string("fastcgi_catch_stderr"), 428 { ngx_string("fastcgi_catch_stderr"),
413 NGX_HTTP_MAIN_CONF|NGX_HTTP_SRV_CONF|NGX_HTTP_LOC_CONF|NGX_CONF_FLAG, 429 NGX_HTTP_MAIN_CONF|NGX_HTTP_SRV_CONF|NGX_HTTP_LOC_CONF|NGX_CONF_FLAG,
414 ngx_conf_set_str_array_slot, 430 ngx_conf_set_str_array_slot,
415 NGX_HTTP_LOC_CONF_OFFSET, 431 NGX_HTTP_LOC_CONF_OFFSET,
1815 1831
1816 /* 1832 /*
1817 * set by ngx_pcalloc(): 1833 * set by ngx_pcalloc():
1818 * 1834 *
1819 * conf->upstream.bufs.num = 0; 1835 * conf->upstream.bufs.num = 0;
1836 * conf->upstream.ignore_headers = 0;
1820 * conf->upstream.next_upstream = 0; 1837 * conf->upstream.next_upstream = 0;
1821 * conf->upstream.use_stale_cache = 0; 1838 * conf->upstream.use_stale_cache = 0;
1822 * conf->upstream.temp_path = NULL; 1839 * conf->upstream.temp_path = NULL;
1823 * conf->upstream.hide_headers_hash = { NULL, 0 }; 1840 * conf->upstream.hide_headers_hash = { NULL, 0 };
1824 * conf->upstream.uri = { 0, NULL }; 1841 * conf->upstream.uri = { 0, NULL };
2010 2027
2011 return NGX_CONF_ERROR; 2028 return NGX_CONF_ERROR;
2012 } 2029 }
2013 2030
2014 2031
2032 ngx_conf_merge_bitmask_value(conf->upstream.ignore_headers,
2033 prev->upstream.ignore_headers,
2034 NGX_CONF_BITMASK_SET);
2035
2036
2015 ngx_conf_merge_bitmask_value(conf->upstream.next_upstream, 2037 ngx_conf_merge_bitmask_value(conf->upstream.next_upstream,
2016 prev->upstream.next_upstream, 2038 prev->upstream.next_upstream,
2017 (NGX_CONF_BITMASK_SET 2039 (NGX_CONF_BITMASK_SET
2018 |NGX_HTTP_UPSTREAM_FT_ERROR 2040 |NGX_HTTP_UPSTREAM_FT_ERROR
2019 |NGX_HTTP_UPSTREAM_FT_TIMEOUT)); 2041 |NGX_HTTP_UPSTREAM_FT_TIMEOUT));