comparison src/event/modules/ngx_rtsig_module.c @ 58:b55cbf18157e NGINX_0_1_29

nginx 0.1.29 *) Feature: the ngx_http_ssi_module supports "include virtual" command. *) Feature: the ngx_http_ssi_module supports the condition command like 'if expr="$NAME"' and "else" and "endif" commands. Only one nested level is supported. *) Feature: the ngx_http_ssi_module supports the DATE_LOCAL and DATE_GMT variables and "config timefmt" command. *) Feature: the "ssi_ignore_recycled_buffers" directive. *) Bugfix: the "echo" command did not show the default value for the empty QUERY_STRING variable. *) Change: the ngx_http_proxy_module was rewritten. *) Feature: the "proxy_redirect", "proxy_pass_request_headers", "proxy_pass_request_body", and "proxy_method" directives. *) Feature: the "proxy_set_header" directive. The "proxy_x_var" was canceled and must be replaced with the proxy_set_header directive. *) Change: the "proxy_preserve_host" is canceled and must be replaced with the "proxy_set_header Host $host" and the "proxy_redirect off" directives, the "proxy_set_header Host $host:$proxy_port" directive and the appropriate proxy_redirect directives. *) Change: the "proxy_set_x_real_ip" is canceled and must be replaced with the "proxy_set_header X-Real-IP $remote_addr" directive. *) Change: the "proxy_add_x_forwarded_for" is canceled and must be replaced with the "proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for" directive. *) Change: the "proxy_set_x_url" is canceled and must be replaced with the "proxy_set_header X-URL http://$host:$server_port$request_uri" directive. *) Feature: the "fastcgi_param" directive. *) Change: the "fastcgi_root", "fastcgi_set_var" and "fastcgi_params" directive are canceled and must be replaced with the fastcgi_param directives. *) Feature: the "index" directive can use the variables. *) Feature: the "index" directive can be used at http and server levels. *) Change: the last index only in the "index" directive can be absolute. *) Feature: the "rewrite" directive can use the variables. *) Feature: the "internal" directive. *) Feature: the CONTENT_LENGTH, CONTENT_TYPE, REMOTE_PORT, SERVER_ADDR, SERVER_PORT, SERVER_PROTOCOL, DOCUMENT_ROOT, SERVER_NAME, REQUEST_METHOD, REQUEST_URI, and REMOTE_USER variables. *) Change: nginx now passes the invalid lines in a client request headers or a backend response header. *) Bugfix: if the backend did not transfer response for a long time and the "send_timeout" was less than "proxy_read_timeout", then nginx returned the 408 response. *) Bugfix: the segmentation fault was occurred if the backend sent an invalid line in response header; bug appeared in 0.1.26. *) Bugfix: the segmentation fault may occurred in FastCGI fault tolerance configuration. *) Bugfix: the "expires" directive did not remove the previous "Expires" and "Cache-Control" headers. *) Bugfix: nginx did not take into account trailing dot in "Host" header line. *) Bugfix: the ngx_http_auth_module did not work under Linux. *) Bugfix: the rewrite directive worked incorrectly, if the arguments were in a request. *) Bugfix: nginx could not be built on MacOS X.
author Igor Sysoev <http://sysoev.ru>
date Thu, 12 May 2005 00:00:00 +0400
parents 72eb30262aac
children da9a3b14312d
comparison
equal deleted inserted replaced
57:5df375c55338 58:b55cbf18157e
116 } 116 }
117 117
118 }; 118 };
119 119
120 ngx_module_t ngx_rtsig_module = { 120 ngx_module_t ngx_rtsig_module = {
121 NGX_MODULE, 121 NGX_MODULE_V1,
122 &ngx_rtsig_module_ctx, /* module context */ 122 &ngx_rtsig_module_ctx, /* module context */
123 ngx_rtsig_commands, /* module directives */ 123 ngx_rtsig_commands, /* module directives */
124 NGX_EVENT_MODULE, /* module type */ 124 NGX_EVENT_MODULE, /* module type */
125 NULL, /* init module */ 125 NULL, /* init module */
126 NULL /* init process */ 126 NULL /* init process */
459 459
460 } else { 460 } else {
461 rev->ready = 1; 461 rev->ready = 1;
462 462
463 if (!ngx_threaded && !ngx_accept_mutex_held) { 463 if (!ngx_threaded && !ngx_accept_mutex_held) {
464 rev->event_handler(rev); 464 rev->handler(rev);
465 465
466 } else if (rev->accept) { 466 } else if (rev->accept) {
467 if (ngx_accept_disabled <= 0) { 467 if (ngx_accept_disabled <= 0) {
468 rev->event_handler(rev); 468 rev->handler(rev);
469 } 469 }
470 470
471 } else { 471 } else {
472 ngx_post_event(rev); 472 ngx_post_event(rev);
473 } 473 }
493 493
494 } else { 494 } else {
495 wev->ready = 1; 495 wev->ready = 1;
496 496
497 if (!ngx_threaded && !ngx_accept_mutex_held) { 497 if (!ngx_threaded && !ngx_accept_mutex_held) {
498 wev->event_handler(wev); 498 wev->handler(wev);
499 499
500 } else { 500 } else {
501 ngx_post_event(wev); 501 ngx_post_event(wev);
502 } 502 }
503 } 503 }
596 continue; 596 continue;
597 } 597 }
598 598
599 events = 0; 599 events = 0;
600 600
601 if (c->read->active && c->read->event_handler) { 601 if (c->read->active && c->read->handler) {
602 events |= POLLIN; 602 events |= POLLIN;
603 } 603 }
604 604
605 if (c->write->active && c->write->event_handler) { 605 if (c->write->active && c->write->handler) {
606 events |= POLLOUT; 606 events |= POLLOUT;
607 } 607 }
608 608
609 if (events == 0) { 609 if (events == 0) {
610 continue; 610 continue;
650 650
651 rev = c->read; 651 rev = c->read;
652 652
653 if (rev->active 653 if (rev->active
654 && !rev->closed 654 && !rev->closed
655 && rev->event_handler 655 && rev->handler
656 && (overflow_list[i].revents 656 && (overflow_list[i].revents
657 & (POLLIN|POLLERR|POLLHUP|POLLNVAL))) 657 & (POLLIN|POLLERR|POLLHUP|POLLNVAL)))
658 { 658 {
659 tested++; 659 tested++;
660 660
662 rev->posted_ready = 1; 662 rev->posted_ready = 1;
663 ngx_post_event(rev); 663 ngx_post_event(rev);
664 664
665 } else { 665 } else {
666 rev->ready = 1; 666 rev->ready = 1;
667 rev->event_handler(rev); 667 rev->handler(rev);
668 } 668 }
669 } 669 }
670 670
671 wev = c->write; 671 wev = c->write;
672 672
673 if (wev->active 673 if (wev->active
674 && !wev->closed 674 && !wev->closed
675 && wev->event_handler 675 && wev->handler
676 && (overflow_list[i].revents 676 && (overflow_list[i].revents
677 & (POLLOUT|POLLERR|POLLHUP|POLLNVAL))) 677 & (POLLOUT|POLLERR|POLLHUP|POLLNVAL)))
678 { 678 {
679 tested++; 679 tested++;
680 680
682 wev->posted_ready = 1; 682 wev->posted_ready = 1;
683 ngx_post_event(wev); 683 ngx_post_event(wev);
684 684
685 } else { 685 } else {
686 wev->ready = 1; 686 wev->ready = 1;
687 wev->event_handler(wev); 687 wev->handler(wev);
688 } 688 }
689 } 689 }
690 } 690 }
691 691
692 ngx_mutex_unlock(ngx_posted_events_mutex); 692 ngx_mutex_unlock(ngx_posted_events_mutex);