comparison src/core/nginx.c @ 356:b743d290eb3b NGINX_0_6_22

nginx 0.6.22 *) Change: now all ngx_http_perl_module methods return values copied to perl's allocated memory. *) Bugfix: if nginx was built with ngx_http_perl_module, the perl before 5.8.6 was used, and perl supported threads, then during reconfiguration the master process aborted; bug appeared in 0.5.9. Thanks to Boris Zhmurov. *) Bugfix: the ngx_http_perl_module methods may get invalid values of the regex captures. *) Bugfix: a segmentation fault occurred in worker process, if the $r->has_request_body() method was called for a request whose small request body was already received. *) Bugfix: large_client_header_buffers did not freed before going to keep-alive state. Thanks to Olexander Shtepa. *) Bugfix: the last address was missed in the $upstream_addr variable; bug appeared in 0.6.18. *) Bugfix: the "fastcgi_catch_stderr" directive did return error code; now it returns 502 code, that can be rerouted to a next server using the "fastcgi_next_upstream invalid_header" directive. *) Bugfix: a segmentation fault occurred in master process if the "fastcgi_catch_stderr" directive was used; bug appeared in 0.6.10. Thanks to Manlio Perillo.
author Igor Sysoev <http://sysoev.ru>
date Wed, 19 Dec 2007 00:00:00 +0300
parents 390b8f8309d6
children 820f6378fc00
comparison
equal deleted inserted replaced
355:3ac45897a61c 356:b743d290eb3b
271 271
272 if (ngx_os_init(log) != NGX_OK) { 272 if (ngx_os_init(log) != NGX_OK) {
273 return 1; 273 return 1;
274 } 274 }
275 275
276 /* ngx_crc32_init() requires ngx_cacheline_size set in ngx_os_init() */ 276 /*
277 277 * ngx_crc32_table_init() requires ngx_cacheline_size set in ngx_os_init()
278 if (ngx_crc32_init() != NGX_OK) { 278 */
279
280 if (ngx_crc32_table_init() != NGX_OK) {
279 return 1; 281 return 1;
280 } 282 }
281 283
282 if (ngx_add_inherited_sockets(&init_cycle) != NGX_OK) { 284 if (ngx_add_inherited_sockets(&init_cycle) != NGX_OK) {
283 return 1; 285 return 1;
754 static char * 756 static char *
755 ngx_core_module_init_conf(ngx_cycle_t *cycle, void *conf) 757 ngx_core_module_init_conf(ngx_cycle_t *cycle, void *conf)
756 { 758 {
757 ngx_core_conf_t *ccf = conf; 759 ngx_core_conf_t *ccf = conf;
758 760
759 #if !(NGX_WIN32)
760 ngx_str_t lock_file;
761 struct group *grp;
762 struct passwd *pwd;
763 #endif
764
765 ngx_conf_init_value(ccf->daemon, 1); 761 ngx_conf_init_value(ccf->daemon, 1);
766 ngx_conf_init_value(ccf->master, 1); 762 ngx_conf_init_value(ccf->master, 1);
767 ngx_conf_init_msec_value(ccf->timer_resolution, 0); 763 ngx_conf_init_msec_value(ccf->timer_resolution, 0);
768 764
769 ngx_conf_init_value(ccf->worker_processes, 1); 765 ngx_conf_init_value(ccf->worker_processes, 1);
792 #endif 788 #endif
793 789
794 #if !(NGX_WIN32) 790 #if !(NGX_WIN32)
795 791
796 if (ccf->user == (uid_t) NGX_CONF_UNSET_UINT && geteuid() == 0) { 792 if (ccf->user == (uid_t) NGX_CONF_UNSET_UINT && geteuid() == 0) {
793 struct group *grp;
794 struct passwd *pwd;
797 795
798 ngx_set_errno(0); 796 ngx_set_errno(0);
799 pwd = getpwnam(NGX_USER); 797 pwd = getpwnam(NGX_USER);
800 if (pwd == NULL) { 798 if (pwd == NULL) {
801 ngx_log_error(NGX_LOG_EMERG, cycle->log, ngx_errno, 799 ngx_log_error(NGX_LOG_EMERG, cycle->log, ngx_errno,
844 842
845 if (ngx_conf_full_name(cycle, &ccf->lock_file, 0) == NGX_ERROR) { 843 if (ngx_conf_full_name(cycle, &ccf->lock_file, 0) == NGX_ERROR) {
846 return NGX_CONF_ERROR; 844 return NGX_CONF_ERROR;
847 } 845 }
848 846
847 {
848 ngx_str_t lock_file;
849
849 lock_file = cycle->old_cycle->lock_file; 850 lock_file = cycle->old_cycle->lock_file;
850 851
851 if (lock_file.len) { 852 if (lock_file.len) {
852 lock_file.len--; 853 lock_file.len--;
853 854
877 878
878 ngx_memcpy(ngx_cpymem(cycle->lock_file.data, ccf->lock_file.data, 879 ngx_memcpy(ngx_cpymem(cycle->lock_file.data, ccf->lock_file.data,
879 ccf->lock_file.len), 880 ccf->lock_file.len),
880 ".accept", sizeof(".accept")); 881 ".accept", sizeof(".accept"));
881 } 882 }
883 }
882 884
883 #endif 885 #endif
884 886
885 return NGX_CONF_OK; 887 return NGX_CONF_OK;
886 } 888 }