From 899b44eab259f32af5c6e3da342f430c654528ce Mon Sep 17 00:00:00 2001 From: Igor Sysoev Date: Thu, 12 May 2005 14:58:06 +0000 Subject: nginx-0.1.29-RELEASE import *) 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; the bug had 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. --- src/event/modules/ngx_aio_module.c | 2 +- src/event/modules/ngx_devpoll_module.c | 8 ++++---- src/event/modules/ngx_epoll_module.c | 8 ++++---- src/event/modules/ngx_iocp_module.c | 6 +++--- src/event/modules/ngx_kqueue_module.c | 12 +++++++++--- src/event/modules/ngx_poll_module.c | 6 +++--- src/event/modules/ngx_rtsig_module.c | 20 ++++++++++---------- src/event/modules/ngx_select_module.c | 6 +++--- 8 files changed, 37 insertions(+), 31 deletions(-) (limited to 'src/event/modules') diff --git a/src/event/modules/ngx_aio_module.c b/src/event/modules/ngx_aio_module.c index 37a3a4499..37d520a96 100644 --- a/src/event/modules/ngx_aio_module.c +++ b/src/event/modules/ngx_aio_module.c @@ -54,7 +54,7 @@ ngx_event_module_t ngx_aio_module_ctx = { }; ngx_module_t ngx_aio_module = { - NGX_MODULE, + NGX_MODULE_V1, &ngx_aio_module_ctx, /* module context */ NULL, /* module directives */ NGX_EVENT_MODULE, /* module type */ diff --git a/src/event/modules/ngx_devpoll_module.c b/src/event/modules/ngx_devpoll_module.c index 57b6b1239..cab5af074 100644 --- a/src/event/modules/ngx_devpoll_module.c +++ b/src/event/modules/ngx_devpoll_module.c @@ -91,7 +91,7 @@ ngx_event_module_t ngx_devpoll_module_ctx = { }; ngx_module_t ngx_devpoll_module = { - NGX_MODULE, + NGX_MODULE_V1, &ngx_devpoll_module_ctx, /* module context */ ngx_devpoll_commands, /* module directives */ NGX_EVENT_MODULE, /* module type */ @@ -511,7 +511,7 @@ ngx_devpoll_process_events(ngx_cycle_t *cycle) wev->ready = 1; if (!ngx_threaded && !ngx_accept_mutex_held) { - wev->event_handler(wev); + wev->handler(wev); } else { ngx_post_event(wev); @@ -530,7 +530,7 @@ ngx_devpoll_process_events(ngx_cycle_t *cycle) rev->ready = 1; if (!ngx_threaded && !ngx_accept_mutex_held) { - rev->event_handler(rev); + rev->handler(rev); } else if (!rev->accept) { ngx_post_event(rev); @@ -538,7 +538,7 @@ ngx_devpoll_process_events(ngx_cycle_t *cycle) } else if (ngx_accept_disabled <= 0) { ngx_mutex_unlock(ngx_posted_events_mutex); - c->read->event_handler(rev); + c->read->handler(rev); if (ngx_accept_disabled > 0) { ngx_accept_mutex_unlock(); diff --git a/src/event/modules/ngx_epoll_module.c b/src/event/modules/ngx_epoll_module.c index 14b77508c..9847e0fe4 100644 --- a/src/event/modules/ngx_epoll_module.c +++ b/src/event/modules/ngx_epoll_module.c @@ -121,7 +121,7 @@ ngx_event_module_t ngx_epoll_module_ctx = { }; ngx_module_t ngx_epoll_module = { - NGX_MODULE, + NGX_MODULE_V1, &ngx_epoll_module_ctx, /* module context */ ngx_epoll_commands, /* module directives */ NGX_EVENT_MODULE, /* module type */ @@ -573,7 +573,7 @@ ngx_epoll_process_events(ngx_cycle_t *cycle) wev->ready = 1; if (!ngx_accept_mutex_held) { - wev->event_handler(wev); + wev->handler(wev); } else { ngx_post_event(wev); @@ -600,7 +600,7 @@ ngx_epoll_process_events(ngx_cycle_t *cycle) rev->ready = 1; if (!ngx_threaded && !ngx_accept_mutex_held) { - rev->event_handler(rev); + rev->handler(rev); } else if (!rev->accept) { ngx_post_event(rev); @@ -609,7 +609,7 @@ ngx_epoll_process_events(ngx_cycle_t *cycle) ngx_mutex_unlock(ngx_posted_events_mutex); - rev->event_handler(rev); + rev->handler(rev); if (ngx_accept_disabled > 0) { ngx_accept_mutex_unlock(); diff --git a/src/event/modules/ngx_iocp_module.c b/src/event/modules/ngx_iocp_module.c index 0a04a209a..1bb677c63 100644 --- a/src/event/modules/ngx_iocp_module.c +++ b/src/event/modules/ngx_iocp_module.c @@ -69,7 +69,7 @@ ngx_event_module_t ngx_iocp_module_ctx = { }; ngx_module_t ngx_iocp_module = { - NGX_MODULE, + NGX_MODULE_V1, &ngx_iocp_module_ctx, /* module context */ ngx_iocp_commands, /* module directives */ NGX_EVENT_MODULE, /* module type */ @@ -294,9 +294,9 @@ ngx_int_t ngx_iocp_process_events(ngx_cycle_t *cycle) ev->available = bytes; ngx_log_debug1(NGX_LOG_DEBUG_EVENT, cycle->log, 0, - "iocp event handler: %p", ev->event_handler); + "iocp event handler: %p", ev->handler); - ev->event_handler(ev); + ev->handler(ev); if (timer != INFINITE && delta) { ngx_event_expire_timers((ngx_msec_t) delta); diff --git a/src/event/modules/ngx_kqueue_module.c b/src/event/modules/ngx_kqueue_module.c index 14bbfaf27..713ea1a07 100644 --- a/src/event/modules/ngx_kqueue_module.c +++ b/src/event/modules/ngx_kqueue_module.c @@ -94,7 +94,7 @@ ngx_event_module_t ngx_kqueue_module_ctx = { }; ngx_module_t ngx_kqueue_module = { - NGX_MODULE, + NGX_MODULE_V1, &ngx_kqueue_module_ctx, /* module context */ ngx_kqueue_commands, /* module directives */ NGX_EVENT_MODULE, /* module type */ @@ -192,11 +192,13 @@ ngx_kqueue_init(ngx_cycle_t *cycle) ngx_event_actions = ngx_kqueue_module_ctx.actions; ngx_event_flags = NGX_USE_ONESHOT_EVENT +#if 1 #if (NGX_HAVE_CLEAR_EVENT) |NGX_USE_CLEAR_EVENT #else |NGX_USE_LEVEL_EVENT #endif +#endif #if (NGX_HAVE_LOWAT_EVENT) |NGX_USE_LOWAT_EVENT #endif @@ -615,6 +617,10 @@ ngx_kqueue_process_events(ngx_cycle_t *cycle) ngx_kqueue_dump_event(ev->log, &event_list[i]); } + if (ev->oneshot) { + ev->active = 0; + } + #if (NGX_THREADS) if (ngx_threaded && !ev->accept) { @@ -663,7 +669,7 @@ ngx_kqueue_process_events(ngx_cycle_t *cycle) } if (!ngx_threaded && !ngx_accept_mutex_held) { - ev->event_handler(ev); + ev->handler(ev); continue; } @@ -678,7 +684,7 @@ ngx_kqueue_process_events(ngx_cycle_t *cycle) ngx_mutex_unlock(ngx_posted_events_mutex); - ev->event_handler(ev); + ev->handler(ev); if (ngx_accept_disabled > 0) { ngx_accept_mutex_unlock(); diff --git a/src/event/modules/ngx_poll_module.c b/src/event/modules/ngx_poll_module.c index c25a5611c..97ac7ccc4 100644 --- a/src/event/modules/ngx_poll_module.c +++ b/src/event/modules/ngx_poll_module.c @@ -50,7 +50,7 @@ ngx_event_module_t ngx_poll_module_ctx = { }; ngx_module_t ngx_poll_module = { - NGX_MODULE, + NGX_MODULE_V1, &ngx_poll_module_ctx, /* module context */ NULL, /* module directives */ NGX_EVENT_MODULE, /* module type */ @@ -536,7 +536,7 @@ ngx_poll_process_events(ngx_cycle_t *cycle) } } - ev->event_handler(ev); + ev->handler(ev); } #endif @@ -553,7 +553,7 @@ ngx_poll_process_events(ngx_cycle_t *cycle) ngx_mutex_unlock(ngx_posted_events_mutex); - ev->event_handler(ev); + ev->handler(ev); if (ngx_accept_disabled > 0) { lock = 0; diff --git a/src/event/modules/ngx_rtsig_module.c b/src/event/modules/ngx_rtsig_module.c index 6c94977db..122b0918d 100644 --- a/src/event/modules/ngx_rtsig_module.c +++ b/src/event/modules/ngx_rtsig_module.c @@ -118,7 +118,7 @@ ngx_event_module_t ngx_rtsig_module_ctx = { }; ngx_module_t ngx_rtsig_module = { - NGX_MODULE, + NGX_MODULE_V1, &ngx_rtsig_module_ctx, /* module context */ ngx_rtsig_commands, /* module directives */ NGX_EVENT_MODULE, /* module type */ @@ -461,11 +461,11 @@ ngx_rtsig_process_events(ngx_cycle_t *cycle) rev->ready = 1; if (!ngx_threaded && !ngx_accept_mutex_held) { - rev->event_handler(rev); + rev->handler(rev); } else if (rev->accept) { if (ngx_accept_disabled <= 0) { - rev->event_handler(rev); + rev->handler(rev); } } else { @@ -495,7 +495,7 @@ ngx_rtsig_process_events(ngx_cycle_t *cycle) wev->ready = 1; if (!ngx_threaded && !ngx_accept_mutex_held) { - wev->event_handler(wev); + wev->handler(wev); } else { ngx_post_event(wev); @@ -598,11 +598,11 @@ ngx_rtsig_process_overflow(ngx_cycle_t *cycle) events = 0; - if (c->read->active && c->read->event_handler) { + if (c->read->active && c->read->handler) { events |= POLLIN; } - if (c->write->active && c->write->event_handler) { + if (c->write->active && c->write->handler) { events |= POLLOUT; } @@ -652,7 +652,7 @@ ngx_rtsig_process_overflow(ngx_cycle_t *cycle) if (rev->active && !rev->closed - && rev->event_handler + && rev->handler && (overflow_list[i].revents & (POLLIN|POLLERR|POLLHUP|POLLNVAL))) { @@ -664,7 +664,7 @@ ngx_rtsig_process_overflow(ngx_cycle_t *cycle) } else { rev->ready = 1; - rev->event_handler(rev); + rev->handler(rev); } } @@ -672,7 +672,7 @@ ngx_rtsig_process_overflow(ngx_cycle_t *cycle) if (wev->active && !wev->closed - && wev->event_handler + && wev->handler && (overflow_list[i].revents & (POLLOUT|POLLERR|POLLHUP|POLLNVAL))) { @@ -684,7 +684,7 @@ ngx_rtsig_process_overflow(ngx_cycle_t *cycle) } else { wev->ready = 1; - wev->event_handler(wev); + wev->handler(wev); } } } diff --git a/src/event/modules/ngx_select_module.c b/src/event/modules/ngx_select_module.c index 6edc2840a..4cf88400c 100644 --- a/src/event/modules/ngx_select_module.c +++ b/src/event/modules/ngx_select_module.c @@ -63,7 +63,7 @@ ngx_event_module_t ngx_select_module_ctx = { }; ngx_module_t ngx_select_module = { - NGX_MODULE, + NGX_MODULE_V1, &ngx_select_module_ctx, /* module context */ NULL, /* module directives */ NGX_EVENT_MODULE, /* module type */ @@ -540,7 +540,7 @@ ngx_select_process_events(ngx_cycle_t *cycle) } } - ev->event_handler(ev); + ev->handler(ev); } #endif @@ -557,7 +557,7 @@ ngx_select_process_events(ngx_cycle_t *cycle) ngx_mutex_unlock(ngx_posted_events_mutex); - ev->event_handler(ev); + ev->handler(ev); if (ngx_accept_disabled > 0) { lock = 0; -- cgit