diff options
author | Ryan Bloom <rbb@apache.org> | 2001-01-24 00:23:37 +0100 |
---|---|---|
committer | Ryan Bloom <rbb@apache.org> | 2001-01-24 00:23:37 +0100 |
commit | 5de783433809e7e011d5826e6039514f97a6958b (patch) | |
tree | 6f67147b3625edfccc873a2c3d954d716017cdc6 /modules/http | |
parent | Fix the core_output_filter. It doesn't make any sense to send less than (diff) | |
download | apache2-5de783433809e7e011d5826e6039514f97a6958b.tar.xz apache2-5de783433809e7e011d5826e6039514f97a6958b.zip |
Allow the core_output_filter to deal with multiple file buckets in the
same brigade.
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@87801 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'modules/http')
-rw-r--r-- | modules/http/http_core.c | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/modules/http/http_core.c b/modules/http/http_core.c index 2755949da4..aaa64f9065 100644 --- a/modules/http/http_core.c +++ b/modules/http/http_core.c @@ -3356,6 +3356,16 @@ static apr_status_t core_output_filter(ap_filter_t *f, apr_bucket_brigade *b) else if (APR_BUCKET_IS_FILE(e) && (e->length >= AP_MIN_SENDFILE_BYTES)) { apr_bucket_shared *s = e->data; apr_bucket_file *a = s->data; + + /* We can't handle more than one file bucket at a time + * so we split here and send the file we have already found. + */ + if (fd) { + more = apr_brigade_split(b, APR_BUCKET_NEXT(e)); + ap_save_brigade(f, &ctx->b, &more); + break; + } + fd = a->fd; flen = e->length; foffset = s->start; |