diff options
author | Igor Sysoev <igor@sysoev.ru> | 2005-08-30 10:55:07 +0000 |
---|---|---|
committer | Igor Sysoev <igor@sysoev.ru> | 2005-08-30 10:55:07 +0000 |
commit | e5035397b01ec12f351a6a984f83091b821978cc (patch) | |
tree | 9e65f1b24c595346b666559264878cbb911bfcf7 /src/core/ngx_cycle.c | |
parent | e3c2cf87e537aba572b08afccabcb64976d43079 (diff) | |
download | nginx-e5035397b01ec12f351a6a984f83091b821978cc.tar.gz nginx-e5035397b01ec12f351a6a984f83091b821978cc.zip |
nginx-0.1.43-RELEASE importrelease-0.1.43
*) Feature: the listen(2) backlog in the "listen" directive can be
changed using the -HUP signal.
*) Feature: the geo2nginx.pl script was added to contrib.
*) Change: the FastCGI parameters with the empty values now are passed
to a server.
*) Bugfix: the segmentation fault occurred or the worker process may
got caught in an endless loop if the proxied or FastCGI server sent
the "Cache-Control" header line and the "expires" directive was
used; in the proxied mode the the bug had appeared in 0.1.29.
Diffstat (limited to 'src/core/ngx_cycle.c')
-rw-r--r-- | src/core/ngx_cycle.c | 19 |
1 files changed, 16 insertions, 3 deletions
diff --git a/src/core/ngx_cycle.c b/src/core/ngx_cycle.c index b67223a69..2c7823557 100644 --- a/src/core/ngx_cycle.c +++ b/src/core/ngx_cycle.c @@ -339,6 +339,10 @@ ngx_cycle_t *ngx_init_cycle(ngx_cycle_t *old_cycle) nls[n].remain = 1; ls[i].remain = 1; + if (ls[n].backlog != nls[i].backlog) { + nls[n].change_backlog = 1; + } + #if (NGX_HAVE_DEFERRED_ACCEPT && defined SO_ACCEPTFILTER) /* @@ -405,12 +409,21 @@ ngx_cycle_t *ngx_init_cycle(ngx_cycle_t *old_cycle) failed = 1; } -#if (NGX_HAVE_DEFERRED_ACCEPT) - if (!failed) { ls = cycle->listening.elts; for (i = 0; i < cycle->listening.nelts; i++) { + if (ls[i].change_backlog) { + if (listen(ls[i].fd, ls[i].backlog) == -1) { + ngx_log_error(NGX_LOG_ALERT, log, ngx_socket_errno, + "changing the listen() backlog to %d " + "for %V failed, ignored", + &ls[i].addr_text, ls[i].backlog); + } + } + +#if (NGX_HAVE_DEFERRED_ACCEPT) + #ifdef SO_ACCEPTFILTER if (ls[i].delete_deferred) { if (setsockopt(ls[i].fd, SOL_SOCKET, SO_ACCEPTFILTER, @@ -476,9 +489,9 @@ ngx_cycle_t *ngx_init_cycle(ngx_cycle_t *old_cycle) ls[i].deferred_accept = 1; } #endif +#endif } } -#endif } } |