Mercurial > hg > nginx-vendor-0-8
comparison src/event/modules/ngx_rtsig_module.c @ 122:d25a1d6034f1 NGINX_0_3_8
nginx 0.3.8
*) Security: nginx now checks URI got from a backend in
"X-Accel-Redirect" header line or in SSI file for the "/../" paths
and zeroes.
*) Change: nginx now does not treat the empty user name in the
"Authorization" header line as valid one.
*) Feature: the "ssl_session_timeout" directives of the
ngx_http_ssl_module and ngx_imap_ssl_module.
*) Feature: the "auth_http_header" directive of the
ngx_imap_auth_http_module.
*) Feature: the "add_header" directive.
*) Feature: the ngx_http_realip_module.
*) Feature: the new variables to use in the "log_format" directive:
$bytes_sent, $apache_bytes_sent, $status, $time_gmt, $uri,
$request_time, $request_length, $upstream_status,
$upstream_response_time, $gzip_ratio, $uid_got, $uid_set,
$connection, $pipe, and $msec. The parameters in the "%name" form
will be canceled soon.
*) Change: now the false variable values in the "if" directive are the
empty string "" and string starting with "0".
*) Bugfix: while using proxied or FastCGI-server nginx may leave
connections and temporary files with client requests in open state.
*) Bugfix: the worker processes did not flush the buffered logs on
graceful exit.
*) Bugfix: if the request URI was changes by the "rewrite" directive
and the request was proxied in location given by regular expression,
then the incorrect request was transferred to backend; bug appeared
in 0.2.6.
*) Bugfix: the "expires" directive did not remove the previous
"Expires" header.
*) Bugfix: nginx may stop to accept requests if the "rtsig" method and
several worker processes were used.
*) Bugfix: the "\"" and "\'" escape symbols were incorrectly handled in
SSI commands.
*) Bugfix: if the response was ended just after the SSI command and
gzipping was used, then the response did not transferred complete or
did not transferred at all.
author | Igor Sysoev <http://sysoev.ru> |
---|---|
date | Wed, 09 Nov 2005 00:00:00 +0300 |
parents | e38f51cd0905 |
children | df17fbafec8f |
comparison
equal
deleted
inserted
replaced
121:737953b238a4 | 122:d25a1d6034f1 |
---|---|
286 { | 286 { |
287 int signo; | 287 int signo; |
288 ngx_int_t instance; | 288 ngx_int_t instance; |
289 ngx_err_t err; | 289 ngx_err_t err; |
290 siginfo_t si; | 290 siginfo_t si; |
291 ngx_event_t *rev, *wev; | 291 ngx_event_t *rev, *wev, **queue; |
292 struct timespec ts, *tp; | 292 struct timespec ts, *tp; |
293 struct sigaction sa; | 293 struct sigaction sa; |
294 ngx_connection_t *c; | 294 ngx_connection_t *c; |
295 ngx_rtsig_conf_t *rtscf; | 295 ngx_rtsig_conf_t *rtscf; |
296 | 296 |
379 | 379 |
380 return NGX_OK; | 380 return NGX_OK; |
381 } | 381 } |
382 | 382 |
383 if ((si.si_band & (POLLIN|POLLHUP|POLLERR)) && rev->active) { | 383 if ((si.si_band & (POLLIN|POLLHUP|POLLERR)) && rev->active) { |
384 | |
384 rev->ready = 1; | 385 rev->ready = 1; |
385 rev->handler(rev); | 386 |
387 if (flags & NGX_POST_EVENTS) { | |
388 queue = (ngx_event_t **) (rev->accept ? | |
389 &ngx_posted_accept_events : &ngx_posted_events); | |
390 | |
391 ngx_locked_post_event(rev, queue); | |
392 | |
393 } else { | |
394 rev->handler(rev); | |
395 } | |
386 } | 396 } |
387 | 397 |
388 wev = c->write; | 398 wev = c->write; |
389 | 399 |
390 if ((si.si_band & (POLLOUT|POLLHUP|POLLERR)) && wev->active) { | 400 if ((si.si_band & (POLLOUT|POLLHUP|POLLERR)) && wev->active) { |
401 | |
391 wev->ready = 1; | 402 wev->ready = 1; |
392 wev->handler(wev); | 403 |
404 if (flags & NGX_POST_EVENTS) { | |
405 ngx_locked_post_event(wev, &ngx_posted_events); | |
406 | |
407 } else { | |
408 wev->handler(wev); | |
409 } | |
393 } | 410 } |
394 | 411 |
395 return NGX_OK; | 412 return NGX_OK; |
396 | 413 |
397 } else if (signo == SIGALRM) { | 414 } else if (signo == SIGALRM) { |