Mercurial > hg > nginx-vendor-0-5
comparison src/event/modules/ngx_poll_module.c @ 92:45945fa8b8ba NGINX_0_2_0
nginx 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.
author | Igor Sysoev <http://sysoev.ru> |
---|---|
date | Fri, 23 Sep 2005 00:00:00 +0400 |
parents | 71c46860eb55 |
children | 45f7329b4bd0 |
comparison
equal
deleted
inserted
replaced
91:c3eee83ea942 | 92:45945fa8b8ba |
---|---|
107 | 107 |
108 ngx_io = ngx_os_io; | 108 ngx_io = ngx_os_io; |
109 | 109 |
110 ngx_event_actions = ngx_poll_module_ctx.actions; | 110 ngx_event_actions = ngx_poll_module_ctx.actions; |
111 | 111 |
112 ngx_event_flags = NGX_USE_LEVEL_EVENT|NGX_USE_ONESHOT_EVENT; | 112 ngx_event_flags = NGX_USE_LEVEL_EVENT |
113 |NGX_USE_ONESHOT_EVENT | |
114 |NGX_USE_FD_EVENT; | |
113 | 115 |
114 return NGX_OK; | 116 return NGX_OK; |
115 } | 117 } |
116 | 118 |
117 | 119 |
227 ngx_log_debug2(NGX_LOG_DEBUG_EVENT, ev->log, 0, | 229 ngx_log_debug2(NGX_LOG_DEBUG_EVENT, ev->log, 0, |
228 "index: copy event %d to %d", nevents, ev->index); | 230 "index: copy event %d to %d", nevents, ev->index); |
229 | 231 |
230 event_list[ev->index] = event_list[nevents]; | 232 event_list[ev->index] = event_list[nevents]; |
231 | 233 |
232 c = &ngx_cycle->connections[event_list[nevents].fd]; | 234 c = ngx_cycle->files[event_list[nevents].fd]; |
233 | 235 |
234 if (c->fd == -1) { | 236 if (c->fd == -1) { |
235 cycle = ngx_old_cycles.elts; | 237 cycle = ngx_old_cycles.elts; |
236 for (i = 0; i < ngx_old_cycles.nelts; i++) { | 238 for (i = 0; i < ngx_old_cycles.nelts; i++) { |
237 if (cycle[i] == NULL) { | 239 if (cycle[i] == NULL) { |
238 continue; | 240 continue; |
239 } | 241 } |
240 c = &cycle[i]->connections[event_list[nevents].fd]; | 242 c = cycle[i]->files[event_list[nevents].fd]; |
241 if (c->fd != -1) { | 243 if (c->fd != -1) { |
242 break; | 244 break; |
243 } | 245 } |
244 } | 246 } |
245 } | 247 } |
423 * see the comment below | 425 * see the comment below |
424 */ | 426 */ |
425 continue; | 427 continue; |
426 } | 428 } |
427 | 429 |
428 c = &ngx_cycle->connections[event_list[i].fd]; | 430 c = ngx_cycle->files[event_list[i].fd]; |
429 | 431 |
430 if (c->fd == -1) { | 432 if (c->fd == -1) { |
431 old_cycle = ngx_old_cycles.elts; | 433 old_cycle = ngx_old_cycles.elts; |
432 for (n = 0; n < ngx_old_cycles.nelts; n++) { | 434 for (n = 0; n < ngx_old_cycles.nelts; n++) { |
433 if (old_cycle[n] == NULL) { | 435 if (old_cycle[n] == NULL) { |
434 continue; | 436 continue; |
435 } | 437 } |
436 c = &old_cycle[n]->connections[event_list[i].fd]; | 438 c = old_cycle[n]->files[event_list[i].fd]; |
437 if (c->fd != -1) { | 439 if (c->fd != -1) { |
438 break; | 440 break; |
439 } | 441 } |
440 } | 442 } |
441 } | 443 } |