comparison src/core/nginx.c @ 258:6ae1357b7b7c NGINX_0_4_14

nginx 0.4.14 *) Feature: the "proxy_pass_error_message" directive in IMAP/POP3 proxy. *) Feature: now configure detects system PCRE library on FreeBSD, Linux, and NetBSD. *) Bugfix: ngx_http_perl_module did not work with perl built with the threads support; bug appeared in 0.3.38. *) Bugfix: ngx_http_perl_module did not work if perl was called recursively. *) Bugfix: nginx ignored a host name in an request line. *) Bugfix: a worker process may got caught in an endless loop, if a FastCGI server sent too many data to the stderr. *) Bugfix: the $upstream_response_time variable may be negative if the system time was changed backward. *) Bugfix: the "Auth-Login-Attempt" parameter was not sent to IMAP/POP3 proxy authentication server when POP3 was used. *) Bugfix: a segmentation fault might occur if connect to IMAP/POP3 proxy authentication server failed.
author Igor Sysoev <http://sysoev.ru>
date Mon, 27 Nov 2006 00:00:00 +0300
parents fbf2b2f66c9f
children 6eb1e38f0f1f
comparison
equal deleted inserted replaced
257:0e566ee1bcd5 258:6ae1357b7b7c
619 ngx_core_module_init_conf(ngx_cycle_t *cycle, void *conf) 619 ngx_core_module_init_conf(ngx_cycle_t *cycle, void *conf)
620 { 620 {
621 ngx_core_conf_t *ccf = conf; 621 ngx_core_conf_t *ccf = conf;
622 622
623 #if !(NGX_WIN32) 623 #if !(NGX_WIN32)
624 ngx_str_t lock_file;
624 struct passwd *pwd; 625 struct passwd *pwd;
625 struct group *grp; 626 struct group *grp;
626 #endif 627 #endif
627 628
628 ngx_conf_init_value(ccf->daemon, 1); 629 ngx_conf_init_value(ccf->daemon, 1);
695 } 696 }
696 697
697 ngx_memcpy(ngx_cpymem(ccf->oldpid.data, ccf->pid.data, ccf->pid.len), 698 ngx_memcpy(ngx_cpymem(ccf->oldpid.data, ccf->pid.data, ccf->pid.len),
698 NGX_OLDPID_EXT, sizeof(NGX_OLDPID_EXT)); 699 NGX_OLDPID_EXT, sizeof(NGX_OLDPID_EXT));
699 700
701
700 if (ccf->lock_file.len == 0) { 702 if (ccf->lock_file.len == 0) {
701 ccf->lock_file.len = sizeof(NGX_LOCK_PATH) - 1; 703 ccf->lock_file.len = sizeof(NGX_LOCK_PATH) - 1;
702 ccf->lock_file.data = (u_char *) NGX_LOCK_PATH; 704 ccf->lock_file.data = (u_char *) NGX_LOCK_PATH;
703 } 705 }
704 706
705 if (ngx_conf_full_name(cycle, &ccf->lock_file) == NGX_ERROR) { 707 if (ngx_conf_full_name(cycle, &ccf->lock_file) == NGX_ERROR) {
706 return NGX_CONF_ERROR; 708 return NGX_CONF_ERROR;
709 }
710
711 lock_file = cycle->old_cycle->lock_file;
712
713 if (lock_file.len) {
714 lock_file.len--;
715
716 if (ccf->lock_file.len != lock_file.len
717 || ngx_strncmp(ccf->lock_file.data, lock_file.data, lock_file.len)
718 != 0)
719 {
720 ngx_log_error(NGX_LOG_EMERG, cycle->log, 0,
721 "\"lock_file\" could not be changed, ignored");
722 }
723
724 cycle->lock_file.len = lock_file.len + 1;
725 lock_file.len += sizeof(".accept");
726
727 cycle->lock_file.data = ngx_pstrdup(cycle->pool, &lock_file);
728 if (cycle->lock_file.data == NULL) {
729 return NGX_CONF_ERROR;
730 }
731
732 } else {
733 cycle->lock_file.len = ccf->lock_file.len + 1;
734 cycle->lock_file.data = ngx_palloc(cycle->pool,
735 ccf->lock_file.len + sizeof(".accept"));
736 if (cycle->lock_file.data == NULL) {
737 return NGX_CONF_ERROR;
738 }
739
740 ngx_memcpy(ngx_cpymem(cycle->lock_file.data, ccf->lock_file.data,
741 ccf->lock_file.len),
742 ".accept", sizeof(".accept"));
707 } 743 }
708 744
709 #endif 745 #endif
710 746
711 return NGX_CONF_OK; 747 return NGX_CONF_OK;