diff options
| author | Igor Sysoev <igor@sysoev.ru> | 2009-09-13 06:28:17 +0000 |
|---|---|---|
| committer | Igor Sysoev <igor@sysoev.ru> | 2009-09-13 06:28:17 +0000 |
| commit | 84b20ca18b07c4f27d3ae7a9b3660b184b051057 (patch) | |
| tree | 8b29e9396c7380db28431d4ea5708ea06257d986 /src/http | |
| parent | 570608ff4a0863591d4db63cd0acb13eab5a3af8 (diff) | |
| download | nginx-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 'src/http')
| -rw-r--r-- | src/http/ngx_http_copy_filter_module.c | 10 |
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); |
