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) {