summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRuediger Pluem <rpluem@apache.org>2005-12-17 09:25:09 +0000
committerRuediger Pluem <rpluem@apache.org>2005-12-17 09:25:09 +0000
commitd13769140170af4f6099c50f9b91fbe8a5ac085d (patch)
treeea74d77c5ab9ab089dba666dfd2218ecc8eda8b5
parentd6e4137faae3ca513bbfb86e5157c7e2011db4ce (diff)
downloadhttpd-d13769140170af4f6099c50f9b91fbe8a5ac085d.tar.gz
* Fix ap_http_chunk_filter to create correct chunks in the case that a
flush bucket is pre- and postfixed by data buckets in the brigade. Submitted by: Ruediger Pluem Reviewed by: Justin Erenkrantz, Joe Orton, Jim Jagielski git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@357328 13f79535-47bb-0310-9956-ffa450edef68
-rw-r--r--CHANGES3
-rw-r--r--modules/http/chunk_filter.c2
2 files changed, 5 insertions, 0 deletions
diff --git a/CHANGES b/CHANGES
index 5b58f7332e..0bca33c35c 100644
--- a/CHANGES
+++ b/CHANGES
@@ -2,6 +2,9 @@
Changes with Apache 2.3.0
[Remove entries to the current 2.0 and 2.2 section below, when backported]
+ *) Chunk filter: Fix chunk filter to create correct chunks in the case that
+ a flush bucket is surrounded by data buckets. [Ruediger Pluem]
+
*) If a connection is aborted while waiting for a chunked line, flag the
connection as errored out. [Justin Erenkrantz]
diff --git a/modules/http/chunk_filter.c b/modules/http/chunk_filter.c
index 42e464e2e8..71f4662fe4 100644
--- a/modules/http/chunk_filter.c
+++ b/modules/http/chunk_filter.c
@@ -69,6 +69,8 @@ apr_status_t ap_http_chunk_filter(ap_filter_t *f, apr_bucket_brigade *b)
}
if (APR_BUCKET_IS_FLUSH(e)) {
flush = e;
+ more = apr_brigade_split(b, APR_BUCKET_NEXT(e));
+ break;
}
else if (e->length == (apr_size_t)-1) {
/* unknown amount of data (e.g. a pipe) */