aboutsummaryrefslogtreecommitdiff
path: root/src/core/ngx_cycle.c
diff options
context:
space:
mode:
authorIgor Sysoev <igor@sysoev.ru>2005-09-23 11:02:22 +0000
committerIgor Sysoev <igor@sysoev.ru>2005-09-23 11:02:22 +0000
commit31eb8c015d58a5b36b9578d4ee6c217e16cb776f (patch)
tree28ebccc10deba4132e05414aac1874d5013fdf58 /src/core/ngx_cycle.c
parentf44a1f5f579e19441db2d477a7c81d8894ba2262 (diff)
downloadnginx-31eb8c015d58a5b36b9578d4ee6c217e16cb776f.tar.gz
nginx-31eb8c015d58a5b36b9578d4ee6c217e16cb776f.zip
nginx-0.2.0-RELEASE importrelease-0.2.0
*) The pid-file names used during online upgrade was changed and now is not required a manual rename operation. The old master process adds the ".oldbin" suffix to its pid-file and executes a new binary file. The new master process creates usual pid-file without the ".newbin" suffix. If the master process exits, then old master process renames back its pid-file with the ".oldbin" suffix to the pid-file without suffix. *) Change: the "worker_connections" directive, new name of the "connections" directive; now the directive specifies maximum number of connections, but not maximum socket descriptor number. *) Feature: SSL supports the session cache inside one worker process. *) Feature: the "satisfy_any" directive. *) Change: the ngx_http_access_module and ngx_http_auth_basic_module do not run for subrequests. *) Feature: the "worker_rlimit_nofile" and "worker_rlimit_sigpending" directives. *) Bugfix: if all backend using in load-balancing failed after one error, then nginx did not try do connect to them during 60 seconds. *) Bugfix: in IMAP/POP3 command argument parsing. Thanks to Rob Mueller. *) Bugfix: errors while using SSL in IMAP/POP3 proxy. *) Bugfix: errors while using SSI and gzipping. *) Bugfix: the "Expires" and "Cache-Control" header lines were omitted from the 304 responses. Thanks to Alexandr Kukushkin.
Diffstat (limited to 'src/core/ngx_cycle.c')
-rw-r--r--src/core/ngx_cycle.c18
1 files changed, 7 insertions, 11 deletions
diff --git a/src/core/ngx_cycle.c b/src/core/ngx_cycle.c
index 2c7823557..839843f2b 100644
--- a/src/core/ngx_cycle.c
+++ b/src/core/ngx_cycle.c
@@ -336,7 +336,7 @@ ngx_cycle_t *ngx_init_cycle(ngx_cycle_t *old_cycle)
}
nls[n].fd = ls[i].fd;
- nls[n].remain = 1;
+ nls[n].previous = &ls[i];
ls[i].remain = 1;
if (ls[n].backlog != nls[i].backlog) {
@@ -594,7 +594,7 @@ ngx_cycle_t *ngx_init_cycle(ngx_cycle_t *old_cycle)
if (ngx_close_socket(ls[i].fd) == -1) {
ngx_log_error(NGX_LOG_EMERG, log, ngx_socket_errno,
- ngx_close_socket_n " %V failed",
+ ngx_close_socket_n " listening socket on %V failed",
&ls[i].addr_text);
}
}
@@ -627,7 +627,7 @@ ngx_cycle_t *ngx_init_cycle(ngx_cycle_t *old_cycle)
}
}
- if (old_cycle->connections == NULL) {
+ if (old_cycle->connections0 == NULL) {
/* an old cycle is an init cycle */
ngx_destroy_pool(old_cycle->pool);
return cycle;
@@ -742,7 +742,8 @@ ngx_int_t ngx_create_pidfile(ngx_cycle_t *cycle, ngx_cycle_t *old_cycle)
}
ngx_memzero(&file, sizeof(ngx_file_t));
- file.name = (ngx_inherited && getppid() > 1) ? ccf->newpid : ccf->pid;
+
+ file.name = ccf->pid;
file.log = cycle->log;
trunc = ngx_test_config ? 0: NGX_FILE_TRUNCATE;
@@ -786,12 +787,7 @@ void ngx_delete_pidfile(ngx_cycle_t *cycle)
ccf = (ngx_core_conf_t *) ngx_get_conf(cycle->conf_ctx, ngx_core_module);
- if (ngx_inherited && getppid() > 1) {
- name = ccf->newpid.data;
-
- } else {
- name = ccf->pid.data;
- }
+ name = ngx_new_binary ? ccf->oldpid.data : ccf->pid.data;
if (ngx_delete_file(name) == NGX_FILE_ERROR) {
ngx_log_error(NGX_LOG_ALERT, cycle->log, ngx_errno,
@@ -963,7 +959,7 @@ static void ngx_clean_old_cycles(ngx_event_t *ev)
found = 0;
for (n = 0; n < cycle[i]->connection_n; n++) {
- if (cycle[i]->connections[n].fd != (ngx_socket_t) -1) {
+ if (cycle[i]->connections0[n].fd != (ngx_socket_t) -1) {
found = 1;
ngx_log_debug1(NGX_LOG_DEBUG_CORE, log, 0, "live fd:%d", n);