comparison src/core/ngx_cycle.c @ 502:89dc5654117c NGINX_0_7_63

nginx 0.7.63 *) Security: now "/../" are disabled in "Destination" request header line. *) Change: minimum supported OpenSSL version is 0.9.7. *) Change: the "ask" parameter of the "ssl_verify_client" directive was changed to the "optional" parameter and now it checks a client certificate if it was offered. Thanks to Brice Figureau. *) Feature: now the "-V" switch shows TLS SNI support. *) Feature: the $ssl_client_verify variable. Thanks to Brice Figureau. *) Feature: the "ssl_crl" directive. Thanks to Brice Figureau. *) Bugfix: the $ssl_client_cert variable usage corrupted memory; the bug had appeared in 0.7.7. Thanks to Sergey Zhuravlev. *) Feature: now the start cache loader runs in a separate process; this should improve large caches handling. *) Feature: now temporary files and permanent storage area may reside at different file systems. *) Bugfix: nginx counted incorrectly disk cache size. *) Change: now directive "gzip_disable msie6" does not disable gzipping for MSIE 6.0 SV1. *) Bugfix: nginx always added "Vary: Accept-Encoding" response header line, if both "gzip_static" and "gzip_vary" were on. *) Feature: the "proxy" parameter of the "geo" directive. *) Feature: the ngx_http_geoip_module. *) Feature: the "limit_rate_after" directive. Thanks to Ivan Debnar. *) Feature: the "limit_req_log_level" and "limit_conn_log_level" directives. *) Bugfix: now "limit_req" directive conforms to the leaky bucket algorithm. Thanks to Maxim Dounin. *) Bugfix: in ngx_http_limit_req_module. Thanks to Maxim Dounin. *) Bugfix: now nginx allows underscores in a request method. *) Bugfix: "proxy_pass_header" and "fastcgi_pass_header" directives did not pass to a client the "X-Accel-Redirect", "X-Accel-Limit-Rate", "X-Accel-Buffering", and "X-Accel-Charset" lines from backend response header. Thanks to Maxim Dounin. *) Bugfix: in handling "Last-Modified" and "Accept-Ranges" backend response header lines; the bug had appeared in 0.7.44. Thanks to Maxim Dounin. *) Feature: the "image_filter_transparency" directive. *) Feature: the "image_filter" directive supports variables for setting size. *) Bugfix: in PNG alpha-channel support in the ngx_http_image_filter_module. *) Bugfix: in transparency support in the ngx_http_image_filter_module. *) Feature: now several "perl_modules" directives may be used. *) Bugfix: ngx_http_perl_module responses did not work in subrequests. *) Bugfix: nginx sent '\0' in a "Location" response header line on MKCOL request. Thanks to Xie Zhenye. *) Bugfix: an "error_page" directive did not redirect a 413 error; the bug had appeared in 0.6.10. *) Bugfix: in memory allocation error handling. Thanks to Maxim Dounin and Kirill A. Korinskiy.
author Igor Sysoev <http://sysoev.ru>
date Mon, 26 Oct 2009 00:00:00 +0300
parents 116d5de7cbb6
children 68c0ae0a4959
comparison
equal deleted inserted replaced
501:dc87c92181c7 502:89dc5654117c
214 214
215 module = ngx_modules[i]->ctx; 215 module = ngx_modules[i]->ctx;
216 216
217 if (module->create_conf) { 217 if (module->create_conf) {
218 rv = module->create_conf(cycle); 218 rv = module->create_conf(cycle);
219 if (rv == NGX_CONF_ERROR) { 219 if (rv == NULL) {
220 ngx_destroy_pool(pool); 220 ngx_destroy_pool(pool);
221 return NULL; 221 return NULL;
222 } 222 }
223 cycle->conf_ctx[ngx_modules[i]->index] = rv; 223 cycle->conf_ctx[ngx_modules[i]->index] = rv;
224 } 224 }
253 #if 0 253 #if 0
254 log->log_level = NGX_LOG_DEBUG_ALL; 254 log->log_level = NGX_LOG_DEBUG_ALL;
255 #endif 255 #endif
256 256
257 if (ngx_conf_param(&conf) != NGX_CONF_OK) { 257 if (ngx_conf_param(&conf) != NGX_CONF_OK) {
258 environ = senv;
258 ngx_destroy_cycle_pools(&conf); 259 ngx_destroy_cycle_pools(&conf);
259 return NULL; 260 return NULL;
260 } 261 }
261 262
262 if (ngx_conf_parse(&conf, &cycle->conf_file) != NGX_CONF_OK) { 263 if (ngx_conf_parse(&conf, &cycle->conf_file) != NGX_CONF_OK) {
264 environ = senv;
263 ngx_destroy_cycle_pools(&conf); 265 ngx_destroy_cycle_pools(&conf);
264 return NULL; 266 return NULL;
265 } 267 }
266 268
267 if (ngx_test_config) { 269 if (ngx_test_config) {
278 280
279 if (module->init_conf) { 281 if (module->init_conf) {
280 if (module->init_conf(cycle, cycle->conf_ctx[ngx_modules[i]->index]) 282 if (module->init_conf(cycle, cycle->conf_ctx[ngx_modules[i]->index])
281 == NGX_CONF_ERROR) 283 == NGX_CONF_ERROR)
282 { 284 {
285 environ = senv;
283 ngx_destroy_cycle_pools(&conf); 286 ngx_destroy_cycle_pools(&conf);
284 return NULL; 287 return NULL;
285 } 288 }
286 } 289 }
287 } 290 }
696 ngx_destroy_pool(conf.temp_pool); 699 ngx_destroy_pool(conf.temp_pool);
697 700
698 if (ngx_process == NGX_PROCESS_MASTER || ngx_is_init_cycle(old_cycle)) { 701 if (ngx_process == NGX_PROCESS_MASTER || ngx_is_init_cycle(old_cycle)) {
699 702
700 /* 703 /*
701 * perl_destruct() frees environ if it is not the same as it was at 704 * perl_destruct() frees environ, if it is not the same as it was at
702 * perl_construct() time. So we have saved an previous cycle 705 * perl_construct() time, therefore we save the previous cycle
703 * environment before ngx_conf_parse() where it will be changed. 706 * environment before ngx_conf_parse() where it will be changed.
704 */ 707 */
705 708
706 env = environ; 709 env = environ;
707 environ = senv; 710 environ = senv;