Mercurial > hg > nginx-vendor-current
comparison src/core/ngx_connection.c @ 480:549994537f15 NGINX_0_7_52
nginx 0.7.52
*) Feature: the first native Windows binary release.
*) Bugfix: in processing HEAD method while caching.
*) Bugfix: in processing the "If-Modified-Since", "If-Range", etc.
client request header lines while caching.
*) Bugfix: now the "Set-Cookie" and "P3P" header lines are hidden in
cacheable responses.
*) Bugfix: if nginx was built with the ngx_http_perl_module and with a
perl which supports threads, then during a master process exit the
message "panic: MUTEX_LOCK" might be issued.
*) Bugfix: nginx could not be built --without-http-cache; the bug had
appeared in 0.7.48.
*) Bugfix: nginx could not be built on platforms different from i386,
amd64, sparc, and ppc; the bug had appeared in 0.7.42.
author | Igor Sysoev <http://sysoev.ru> |
---|---|
date | Mon, 20 Apr 2009 00:00:00 +0400 |
parents | bb941a2996a6 |
children | ed5e10fb40fc |
comparison
equal
deleted
inserted
replaced
479:eb4fdebda673 | 480:549994537f15 |
---|---|
555 ls = cycle->listening.elts; | 555 ls = cycle->listening.elts; |
556 for (i = 0; i < cycle->listening.nelts; i++) { | 556 for (i = 0; i < cycle->listening.nelts; i++) { |
557 | 557 |
558 c = ls[i].connection; | 558 c = ls[i].connection; |
559 | 559 |
560 if (c->read->active) { | 560 if (c) { |
561 if (ngx_event_flags & NGX_USE_RTSIG_EVENT) { | 561 if (c->read->active) { |
562 ngx_del_conn(c, NGX_CLOSE_EVENT); | 562 if (ngx_event_flags & NGX_USE_RTSIG_EVENT) { |
563 | 563 ngx_del_conn(c, NGX_CLOSE_EVENT); |
564 } else if (ngx_event_flags & NGX_USE_EPOLL_EVENT) { | 564 |
565 | 565 } else if (ngx_event_flags & NGX_USE_EPOLL_EVENT) { |
566 /* | 566 |
567 * it seems that Linux-2.6.x OpenVZ sends events | 567 /* |
568 * for closed shared listening sockets unless | 568 * it seems that Linux-2.6.x OpenVZ sends events |
569 * the events was explicity deleted | 569 * for closed shared listening sockets unless |
570 */ | 570 * the events was explicity deleted |
571 | 571 */ |
572 ngx_del_event(c->read, NGX_READ_EVENT, 0); | 572 |
573 | 573 ngx_del_event(c->read, NGX_READ_EVENT, 0); |
574 } else { | 574 |
575 ngx_del_event(c->read, NGX_READ_EVENT, NGX_CLOSE_EVENT); | 575 } else { |
576 } | 576 ngx_del_event(c->read, NGX_READ_EVENT, NGX_CLOSE_EVENT); |
577 } | 577 } |
578 | 578 } |
579 ngx_free_connection(c); | 579 |
580 | 580 ngx_free_connection(c); |
581 c->fd = (ngx_socket_t) -1; | 581 |
582 c->fd = (ngx_socket_t) -1; | |
583 } | |
582 | 584 |
583 ngx_log_debug2(NGX_LOG_DEBUG_CORE, cycle->log, 0, | 585 ngx_log_debug2(NGX_LOG_DEBUG_CORE, cycle->log, 0, |
584 "close listening %V #%d ", &ls[i].addr_text, ls[i].fd); | 586 "close listening %V #%d ", &ls[i].addr_text, ls[i].fd); |
585 | 587 |
586 if (ngx_close_socket(ls[i].fd) == -1) { | 588 if (ngx_close_socket(ls[i].fd) == -1) { |