summaryrefslogtreecommitdiffhomepage
path: root/src/http
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--src/http/ngx_http_filter.c23
1 files changed, 6 insertions, 17 deletions
diff --git a/src/http/ngx_http_filter.c b/src/http/ngx_http_filter.c
index 5eb6b4597..abb91de50 100644
--- a/src/http/ngx_http_filter.c
+++ b/src/http/ngx_http_filter.c
@@ -209,7 +209,12 @@ int ngx_http_filter_copy_hunk(ngx_hunk_t *dst, ngx_hunk_t *src, ngx_log_t *log)
if (n == NGX_ERROR) {
ngx_log_error(NGX_LOG_ERR, log, ngx_errno,
ngx_read_file_n " failed for client");
- return NGX_ERROR;
+ return n;
+
+#if (NGX_FILE_AIO)
+ } else if (n == NGX_AGAIN) {
+ return n;
+#endif
} else {
ngx_assert((n == size), /* void */ ; , log,
@@ -229,19 +234,3 @@ int ngx_http_filter_copy_hunk(ngx_hunk_t *dst, ngx_hunk_t *src, ngx_log_t *log)
return NGX_OK;
}
-
-
-
-
-
- /* if no hunk is passed and there is no our hunk
- or our hunk is still busy then call next filter */
- if (hunk == NULL
- && (ctx->hunk == NULL
- || ((ctx->hunk != NULL)
- && (ctx->hunk->pos.mem < ctx->hunk->last.mem))
- )
- )
- ctx->next_filter(r, NULL);
- }
-}