From 31eb8c015d58a5b36b9578d4ee6c217e16cb776f Mon Sep 17 00:00:00 2001 From: Igor Sysoev Date: Fri, 23 Sep 2005 11:02:22 +0000 Subject: nginx-0.2.0-RELEASE import *) 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. --- src/event/modules/ngx_devpoll_module.c | 26 +++----------------------- src/event/modules/ngx_poll_module.c | 12 +++++++----- src/event/modules/ngx_rtsig_module.c | 10 ++++++---- 3 files changed, 16 insertions(+), 32 deletions(-) (limited to 'src/event/modules') diff --git a/src/event/modules/ngx_devpoll_module.c b/src/event/modules/ngx_devpoll_module.c index 413b0def4..5faa1fbcd 100644 --- a/src/event/modules/ngx_devpoll_module.c +++ b/src/event/modules/ngx_devpoll_module.c @@ -177,7 +177,7 @@ ngx_devpoll_init(ngx_cycle_t *cycle) ngx_event_actions = ngx_devpoll_module_ctx.actions; - ngx_event_flags = NGX_USE_LEVEL_EVENT; + ngx_event_flags = NGX_USE_LEVEL_EVENT|NGX_USE_FD_EVENT; return NGX_OK; } @@ -449,10 +449,10 @@ ngx_devpoll_process_events(ngx_cycle_t *cycle) lock = 1; for (i = 0; i < events; i++) { - c = &ngx_cycle->connections[event_list[i].fd]; + c = ngx_cycle->files[event_list[i].fd]; if (c->fd == -1) { - if (ngx_cycle->read_events[event_list[i].fd].closed) { + if (c->read->closed) { continue; } @@ -460,26 +460,6 @@ ngx_devpoll_process_events(ngx_cycle_t *cycle) continue; } -#if 0 - if (c->fd == -1) { - old_cycle = ngx_old_cycles.elts; - for (j = 0; j < ngx_old_cycles.nelts; j++) { - if (old_cycle[j] == NULL) { - continue; - } - c = &old_cycle[j]->connections[event_list[i].fd]; - if (c->fd != -1) { - break; - } - } - } - - if (c->fd == -1) { - ngx_log_error(NGX_LOG_EMERG, cycle->log, 0, "unknown cycle"); - exit(1); - } -#endif - revents = event_list[i].revents; ngx_log_debug3(NGX_LOG_DEBUG_EVENT, cycle->log, 0, diff --git a/src/event/modules/ngx_poll_module.c b/src/event/modules/ngx_poll_module.c index 68d592cca..7de0e4ba6 100644 --- a/src/event/modules/ngx_poll_module.c +++ b/src/event/modules/ngx_poll_module.c @@ -109,7 +109,9 @@ ngx_poll_init(ngx_cycle_t *cycle) ngx_event_actions = ngx_poll_module_ctx.actions; - ngx_event_flags = NGX_USE_LEVEL_EVENT|NGX_USE_ONESHOT_EVENT; + ngx_event_flags = NGX_USE_LEVEL_EVENT + |NGX_USE_ONESHOT_EVENT + |NGX_USE_FD_EVENT; return NGX_OK; } @@ -229,7 +231,7 @@ ngx_poll_del_event(ngx_event_t *ev, int event, u_int flags) event_list[ev->index] = event_list[nevents]; - c = &ngx_cycle->connections[event_list[nevents].fd]; + c = ngx_cycle->files[event_list[nevents].fd]; if (c->fd == -1) { cycle = ngx_old_cycles.elts; @@ -237,7 +239,7 @@ ngx_poll_del_event(ngx_event_t *ev, int event, u_int flags) if (cycle[i] == NULL) { continue; } - c = &cycle[i]->connections[event_list[nevents].fd]; + c = cycle[i]->files[event_list[nevents].fd]; if (c->fd != -1) { break; } @@ -425,7 +427,7 @@ ngx_poll_process_events(ngx_cycle_t *cycle) continue; } - c = &ngx_cycle->connections[event_list[i].fd]; + c = ngx_cycle->files[event_list[i].fd]; if (c->fd == -1) { old_cycle = ngx_old_cycles.elts; @@ -433,7 +435,7 @@ ngx_poll_process_events(ngx_cycle_t *cycle) if (old_cycle[n] == NULL) { continue; } - c = &old_cycle[n]->connections[event_list[i].fd]; + c = old_cycle[n]->files[event_list[i].fd]; if (c->fd != -1) { break; } diff --git a/src/event/modules/ngx_rtsig_module.c b/src/event/modules/ngx_rtsig_module.c index 69792c67c..92e33a013 100644 --- a/src/event/modules/ngx_rtsig_module.c +++ b/src/event/modules/ngx_rtsig_module.c @@ -165,7 +165,9 @@ ngx_rtsig_init(ngx_cycle_t *cycle) ngx_event_actions = ngx_rtsig_module_ctx.actions; - ngx_event_flags = NGX_USE_RTSIG_EVENT|NGX_USE_GREEDY_EVENT; + ngx_event_flags = NGX_USE_RTSIG_EVENT + |NGX_USE_GREEDY_EVENT + |NGX_USE_FD_EVENT; return NGX_OK; } @@ -428,7 +430,7 @@ ngx_rtsig_process_events(ngx_cycle_t *cycle) /* TODO: old_cycles */ - c = &ngx_cycle->connections[si.si_fd]; + c = ngx_cycle->files[si.si_fd]; instance = signo - rtscf->signo; @@ -596,7 +598,7 @@ ngx_rtsig_process_overflow(ngx_cycle_t *cycle) break; } - c = &cycle->connections[overflow_current++]; + c = cycle->files[overflow_current++]; if (c->fd == -1) { continue; @@ -652,7 +654,7 @@ ngx_rtsig_process_overflow(ngx_cycle_t *cycle) } for (i = 0; i < n; i++) { - c = &cycle->connections[overflow_list[i].fd]; + c = cycle->files[overflow_list[i].fd]; rev = c->read; -- cgit