summaryrefslogtreecommitdiffhomepage
path: root/src/http
diff options
context:
space:
mode:
authorIgor Sysoev <igor@sysoev.ru>2009-09-13 06:28:17 +0000
committerIgor Sysoev <igor@sysoev.ru>2009-09-13 06:28:17 +0000
commit84b20ca18b07c4f27d3ae7a9b3660b184b051057 (patch)
tree8b29e9396c7380db28431d4ea5708ea06257d986 /src/http
parent570608ff4a0863591d4db63cd0acb13eab5a3af8 (diff)
downloadnginx-84b20ca18b07c4f27d3ae7a9b3660b184b051057.tar.gz
nginx-84b20ca18b07c4f27d3ae7a9b3660b184b051057.tar.bz2
fix case when the output filter should add incoming buffers
while waiting on file AIO completion
Diffstat (limited to '')
-rw-r--r--src/http/ngx_http_copy_filter_module.c10
1 files changed, 5 insertions, 5 deletions
diff --git a/src/http/ngx_http_copy_filter_module.c b/src/http/ngx_http_copy_filter_module.c
index 6be05a6a7..3c4c2880a 100644
--- a/src/http/ngx_http_copy_filter_module.c
+++ b/src/http/ngx_http_copy_filter_module.c
@@ -87,10 +87,6 @@ ngx_http_copy_filter(ngx_http_request_t *r, ngx_chain_t *in)
c = r->connection;
- if (r->aio) {
- return NGX_AGAIN;
- }
-
ngx_log_debug2(NGX_LOG_DEBUG_HTTP, c->log, 0,
"http copy filter: \"%V?%V\"", &r->uri, &r->args);
@@ -123,7 +119,7 @@ ngx_http_copy_filter(ngx_http_request_t *r, ngx_chain_t *in)
#if (NGX_HAVE_FILE_AIO)
if (clcf->aio) {
- ctx->aio = ngx_http_copy_aio_handler;
+ ctx->aio_handler = ngx_http_copy_aio_handler;
#if (NGX_HAVE_AIO_SENDFILE)
c->aio_sendfile = (clcf->aio == NGX_HTTP_AIO_SENDFILE);
#endif
@@ -133,6 +129,10 @@ ngx_http_copy_filter(ngx_http_request_t *r, ngx_chain_t *in)
r->request_output = 1;
}
+#if (NGX_HAVE_FILE_AIO)
+ ctx->aio = r->aio;
+#endif
+
for ( ;; ) {
rc = ngx_output_chain(ctx, in);