Mercurial > hg > nginx-vendor-1-0
comparison src/os/unix/ngx_process.c @ 638:692f4d4d7f10 NGINX_1_0_9
nginx 1.0.9
*) Change: now the 0x7F-0x1F characters are escaped as \xXX in an
access_log.
*) Change: now SIGWINCH signal works only in daemon mode.
*) Feature: "proxy/fastcgi/scgi/uwsgi_ignore_headers" directives support
the following additional values: X-Accel-Limit-Rate,
X-Accel-Buffering, X-Accel-Charset.
*) Feature: decrease of memory consumption if SSL is used.
*) Feature: accept filters are now supported on NetBSD.
*) Feature: the "uwsgi_buffering" and "scgi_buffering" directives.
Thanks to Peter Smit.
*) Bugfix: a segmentation fault occurred on start or while
reconfiguration if the "ssl" directive was used at http level and
there was no "ssl_certificate" defined.
*) Bugfix: some UTF-8 characters were processed incorrectly.
Thanks to Alexey Kuts.
*) Bugfix: the ngx_http_rewrite_module directives specified at "server"
level were executed twice if no matching locations were defined.
*) Bugfix: a socket leak might occurred if "aio sendfile" was used.
*) Bugfix: connections with fast clients might be closed after
send_timeout if file AIO was used.
*) Bugfix: in the ngx_http_autoindex_module.
*) Bugfix: the module ngx_http_mp4_module did not support seeking on
32-bit platforms.
*) Bugfix: non-cacheable responses might be cached if
"proxy_cache_bypass" directive was used.
Thanks to John Ferlito.
*) Bugfix: cached responses with an empty body were returned
incorrectly; the bug had appeared in 0.8.31.
*) Bugfix: 201 responses of the ngx_http_dav_module were incorrect; the
bug had appeared in 0.8.32.
*) Bugfix: in the "return" directive.
*) Bugfix: the "ssl_verify_client", "ssl_verify_depth", and
"ssl_prefer_server_ciphers" directives might work incorrectly if SNI
was used.
author | Igor Sysoev <http://sysoev.ru> |
---|---|
date | Tue, 01 Nov 2011 00:00:00 +0400 |
parents | 428c6e58046a |
children | ad25218fd14b |
comparison
equal
deleted
inserted
replaced
637:ea7441793bba | 638:692f4d4d7f10 |
---|---|
337 ngx_terminate = 1; | 337 ngx_terminate = 1; |
338 action = ", exiting"; | 338 action = ", exiting"; |
339 break; | 339 break; |
340 | 340 |
341 case ngx_signal_value(NGX_NOACCEPT_SIGNAL): | 341 case ngx_signal_value(NGX_NOACCEPT_SIGNAL): |
342 ngx_noaccept = 1; | 342 if (ngx_daemonized) { |
343 action = ", stop accepting connections"; | 343 ngx_noaccept = 1; |
344 action = ", stop accepting connections"; | |
345 } | |
344 break; | 346 break; |
345 | 347 |
346 case ngx_signal_value(NGX_RECONFIGURE_SIGNAL): | 348 case ngx_signal_value(NGX_RECONFIGURE_SIGNAL): |
347 ngx_reconfigure = 1; | 349 ngx_reconfigure = 1; |
348 action = ", reconfiguring"; | 350 action = ", reconfiguring"; |
390 case NGX_PROCESS_WORKER: | 392 case NGX_PROCESS_WORKER: |
391 case NGX_PROCESS_HELPER: | 393 case NGX_PROCESS_HELPER: |
392 switch (signo) { | 394 switch (signo) { |
393 | 395 |
394 case ngx_signal_value(NGX_NOACCEPT_SIGNAL): | 396 case ngx_signal_value(NGX_NOACCEPT_SIGNAL): |
397 if (!ngx_daemonized) { | |
398 break; | |
399 } | |
395 ngx_debug_quit = 1; | 400 ngx_debug_quit = 1; |
396 case ngx_signal_value(NGX_SHUTDOWN_SIGNAL): | 401 case ngx_signal_value(NGX_SHUTDOWN_SIGNAL): |
397 ngx_quit = 1; | 402 ngx_quit = 1; |
398 action = ", shutting down"; | 403 action = ", shutting down"; |
399 break; | 404 break; |
534 } | 539 } |
535 | 540 |
536 if (WEXITSTATUS(status) == 2 && ngx_processes[i].respawn) { | 541 if (WEXITSTATUS(status) == 2 && ngx_processes[i].respawn) { |
537 ngx_log_error(NGX_LOG_ALERT, ngx_cycle->log, 0, | 542 ngx_log_error(NGX_LOG_ALERT, ngx_cycle->log, 0, |
538 "%s %P exited with fatal code %d " | 543 "%s %P exited with fatal code %d " |
539 "and can not be respawn", | 544 "and cannot be respawned", |
540 process, pid, WEXITSTATUS(status)); | 545 process, pid, WEXITSTATUS(status)); |
541 ngx_processes[i].respawn = 0; | 546 ngx_processes[i].respawn = 0; |
542 } | 547 } |
543 } | 548 } |
544 } | 549 } |