summaryrefslogtreecommitdiff
path: root/src/core/nginx.c
diff options
context:
space:
mode:
authorIgor Sysoev <igor@sysoev.ru>2006-11-27 11:18:50 +0000
committerJonathan Kolb <jon@b0g.us>2006-11-27 11:18:50 +0000
commit03789a0a1c208ac62bee429497b9f6a46c0aa5ff (patch)
tree32f1bb5197e419a4dc9c8d7fa2e05eaf86c1998f /src/core/nginx.c
parente0cae6b0a5df2466cdb9749dc1a37664fff21ff5 (diff)
downloadnginx-0.4.tar.gz
Changes with nginx 0.4.14 27 Nov 2006v0.4.14nginx-0.4
*) 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.c36
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;