diff options
author | Graham Leggett <minfrin@apache.org> | 2015-10-07 00:33:03 +0200 |
---|---|---|
committer | Graham Leggett <minfrin@apache.org> | 2015-10-07 00:33:03 +0200 |
commit | 2da6c9a57a7473c52d81b87e541228225691db6f (patch) | |
tree | 9aab1827521baf55de358244cf616bedd219b03c /server/request.c | |
parent | eor_bucket: follow up to r1707084: use an inner shared bucket. (diff) | |
download | apache2-2da6c9a57a7473c52d81b87e541228225691db6f.tar.xz apache2-2da6c9a57a7473c52d81b87e541228225691db6f.zip |
Add the AsyncFilter directive that allows the asynchronous filter
functionality to be switched off for certain classes of filters.
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1707161 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'server/request.c')
-rw-r--r-- | server/request.c | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/server/request.c b/server/request.c index 9c9ad9f93b..abf084e31a 100644 --- a/server/request.c +++ b/server/request.c @@ -2043,6 +2043,15 @@ AP_CORE_DECLARE_NONSTD(apr_status_t) ap_request_core_filter(ap_filter_t *f, apr_status_t status = APR_SUCCESS; apr_bucket_brigade *tmp_bb = f->ctx; + /* + * Handle the AsyncFilter directive. We limit the filters that are + * eligible for asynchronous handling here. + */ + if (f->frec->ftype < f->c->async_filter) { + ap_remove_output_filter(f); + return ap_pass_brigade(f->next, bb); + } + if (!tmp_bb) { tmp_bb = f->ctx = apr_brigade_create(f->r->pool, f->c->bucket_alloc); } |