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.
diff --git a/src/event/modules/ngx_aio_module.c b/src/event/modules/ngx_aio_module.c
index 37a3a44..37d520a 100644
--- a/src/event/modules/ngx_aio_module.c
+++ b/src/event/modules/ngx_aio_module.c
@@ -54,7 +54,7 @@
};
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 57b6b12..cab5af0 100644
--- a/src/event/modules/ngx_devpoll_module.c
+++ b/src/event/modules/ngx_devpoll_module.c
@@ -91,7 +91,7 @@
};
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 @@
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 @@
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 @@
} 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 14b7750..9847e0f 100644
--- a/src/event/modules/ngx_epoll_module.c
+++ b/src/event/modules/ngx_epoll_module.c
@@ -121,7 +121,7 @@
};
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 @@
wev->ready = 1;
if (!ngx_accept_mutex_held) {
- wev->event_handler(wev);
+ wev->handler(wev);
} else {
ngx_post_event(wev);
@@ -600,7 +600,7 @@
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_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 0a04a20..1bb677c 100644
--- a/src/event/modules/ngx_iocp_module.c
+++ b/src/event/modules/ngx_iocp_module.c
@@ -69,7 +69,7 @@
};
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 @@
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 14bbfaf..713ea1a 100644
--- a/src/event/modules/ngx_kqueue_module.c
+++ b/src/event/modules/ngx_kqueue_module.c
@@ -94,7 +94,7 @@
};
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_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_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 @@
}
if (!ngx_threaded && !ngx_accept_mutex_held) {
- ev->event_handler(ev);
+ ev->handler(ev);
continue;
}
@@ -678,7 +684,7 @@
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 c25a561..97ac7cc 100644
--- a/src/event/modules/ngx_poll_module.c
+++ b/src/event/modules/ngx_poll_module.c
@@ -50,7 +50,7 @@
};
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 @@
}
}
- ev->event_handler(ev);
+ ev->handler(ev);
}
#endif
@@ -553,7 +553,7 @@
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 6c94977..122b091 100644
--- a/src/event/modules/ngx_rtsig_module.c
+++ b/src/event/modules/ngx_rtsig_module.c
@@ -118,7 +118,7 @@
};
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 @@
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 @@
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 @@
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 @@
if (rev->active
&& !rev->closed
- && rev->event_handler
+ && rev->handler
&& (overflow_list[i].revents
& (POLLIN|POLLERR|POLLHUP|POLLNVAL)))
{
@@ -664,7 +664,7 @@
} else {
rev->ready = 1;
- rev->event_handler(rev);
+ rev->handler(rev);
}
}
@@ -672,7 +672,7 @@
if (wev->active
&& !wev->closed
- && wev->event_handler
+ && wev->handler
&& (overflow_list[i].revents
& (POLLOUT|POLLERR|POLLHUP|POLLNVAL)))
{
@@ -684,7 +684,7 @@
} 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 6edc284..4cf8840 100644
--- a/src/event/modules/ngx_select_module.c
+++ b/src/event/modules/ngx_select_module.c
@@ -63,7 +63,7 @@
};
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 @@
}
}
- ev->event_handler(ev);
+ ev->handler(ev);
}
#endif
@@ -557,7 +557,7 @@
ngx_mutex_unlock(ngx_posted_events_mutex);
- ev->event_handler(ev);
+ ev->handler(ev);
if (ngx_accept_disabled > 0) {
lock = 0;