diff options
author | Igor Sysoev <igor@sysoev.ru> | 2006-11-27 11:18:50 +0000 |
---|---|---|
committer | Jonathan Kolb <jon@b0g.us> | 2006-11-27 11:18:50 +0000 |
commit | 03789a0a1c208ac62bee429497b9f6a46c0aa5ff (patch) | |
tree | 32f1bb5197e419a4dc9c8d7fa2e05eaf86c1998f /src/core/nginx.c | |
parent | e0cae6b0a5df2466cdb9749dc1a37664fff21ff5 (diff) | |
download | nginx-0.4.tar.gz |
*) Feature: the "proxy_pass_error_message" directive in IMAP/POP3 proxy.
*) Bugfix: ngx_http_perl_module did nto work with perl built with the
threads support; bug appeared in 0.3.38.
*) Bugfix: !!!!!!!!!! segfault perl.
*) Bugfix: !!!!!!!!!! recursive perl.
*) Bugfix: nginx ignored a host name in an request line.
*) Bugfix: !!!!!!!!!! endless loop when too many FastCGI sent too many
to stderr
*) Bugfix: !!!!!!!! negative upstream response time
*) 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.
Diffstat (limited to 'src/core/nginx.c')
-rw-r--r-- | src/core/nginx.c | 36 |
1 files changed, 36 insertions, 0 deletions
diff --git a/src/core/nginx.c b/src/core/nginx.c index a3f9ce3d8..83b088ba8 100644 --- a/src/core/nginx.c +++ b/src/core/nginx.c @@ -621,6 +621,7 @@ ngx_core_module_init_conf(ngx_cycle_t *cycle, void *conf) ngx_core_conf_t *ccf = conf; #if !(NGX_WIN32) + ngx_str_t lock_file; struct passwd *pwd; struct group *grp; #endif @@ -697,6 +698,7 @@ ngx_core_module_init_conf(ngx_cycle_t *cycle, void *conf) ngx_memcpy(ngx_cpymem(ccf->oldpid.data, ccf->pid.data, ccf->pid.len), NGX_OLDPID_EXT, sizeof(NGX_OLDPID_EXT)); + if (ccf->lock_file.len == 0) { ccf->lock_file.len = sizeof(NGX_LOCK_PATH) - 1; ccf->lock_file.data = (u_char *) NGX_LOCK_PATH; @@ -706,6 +708,40 @@ ngx_core_module_init_conf(ngx_cycle_t *cycle, void *conf) return NGX_CONF_ERROR; } + lock_file = cycle->old_cycle->lock_file; + + if (lock_file.len) { + lock_file.len--; + + if (ccf->lock_file.len != lock_file.len + || ngx_strncmp(ccf->lock_file.data, lock_file.data, lock_file.len) + != 0) + { + ngx_log_error(NGX_LOG_EMERG, cycle->log, 0, + "\"lock_file\" could not be changed, ignored"); + } + + cycle->lock_file.len = lock_file.len + 1; + lock_file.len += sizeof(".accept"); + + cycle->lock_file.data = ngx_pstrdup(cycle->pool, &lock_file); + if (cycle->lock_file.data == NULL) { + return NGX_CONF_ERROR; + } + + } else { + cycle->lock_file.len = ccf->lock_file.len + 1; + cycle->lock_file.data = ngx_palloc(cycle->pool, + ccf->lock_file.len + sizeof(".accept")); + if (cycle->lock_file.data == NULL) { + return NGX_CONF_ERROR; + } + + ngx_memcpy(ngx_cpymem(cycle->lock_file.data, ccf->lock_file.data, + ccf->lock_file.len), + ".accept", sizeof(".accept")); + } + #endif return NGX_CONF_OK; |