+++ /dev/null
-diff -Nur old/include/httpd.h new/include/httpd.h
---- old/include/httpd.h 2005-02-04 20:21:18.000000000 +0000
-+++ new/include/httpd.h 2005-03-08 15:23:11.000000000 +0000
-@@ -1100,6 +1100,7 @@
-
- typedef struct core_filter_ctx {
- apr_bucket_brigade *b;
-+ apr_bucket_brigade *tmpbb;
- } core_ctx_t;
-
- typedef struct core_net_rec {
-diff -Nur old/server/core.c new/server/core.c
---- old/server/core.c 2005-02-04 20:21:18.000000000 +0000
-+++ new/server/core.c 2005-03-08 15:37:56.000000000 +0000
-@@ -3674,6 +3674,27 @@
- } while (!APR_BRIGADE_EMPTY(b) && (e != APR_BRIGADE_SENTINEL(b))); \
- } while (0)
-
-+
-+/**
-+ * Split the contents of a brigade after bucket 'e' to an existing brigade
-+ *
-+ * XXXX: Should this function be added to APR-Util?
-+ */
-+static void brigade_move(apr_bucket_brigade *b, apr_bucket_brigade *a,
-+ apr_bucket *e)
-+{
-+ apr_bucket *f;
-+
-+ if (e != APR_BRIGADE_SENTINEL(b)) {
-+ f = APR_RING_LAST(&b->list);
-+ APR_RING_UNSPLICE(e, f, link);
-+ APR_RING_SPLICE_HEAD(&a->list, e, f, apr_bucket, link);
-+ }
-+
-+ APR_BRIGADE_CHECK_CONSISTENCY(a);
-+ APR_BRIGADE_CHECK_CONSISTENCY(b);
-+}
-+
- static int core_input_filter(ap_filter_t *f, apr_bucket_brigade *b,
- ap_input_mode_t mode, apr_read_type_e block,
- apr_off_t readbytes)
-@@ -3703,6 +3724,7 @@
- {
- ctx = apr_pcalloc(f->c->pool, sizeof(*ctx));
- ctx->b = apr_brigade_create(f->c->pool, f->c->bucket_alloc);
-+ ctx->tmpbb = apr_brigade_create(ctx->b->p, ctx->b->bucket_alloc);
-
- /* seed the brigade with the client socket. */
- e = apr_bucket_socket_create(net->client_socket, f->c->bucket_alloc);
-@@ -3814,7 +3836,6 @@
- /* read up to the amount they specified. */
- if (mode == AP_MODE_READBYTES || mode == AP_MODE_SPECULATIVE) {
- apr_bucket *e;
-- apr_bucket_brigade *newbb;
-
- AP_DEBUG_ASSERT(readbytes > 0);
-
-@@ -3855,8 +3876,8 @@
- return rv;
- }
-
-- /* Must do split before CONCAT */
-- newbb = apr_brigade_split(ctx->b, e);
-+ /* Must do move before CONCAT */
-+ brigade_move(ctx->b, ctx->tmpbb, e);
-
- if (mode == AP_MODE_READBYTES) {
- APR_BRIGADE_CONCAT(b, ctx->b);
-@@ -3873,7 +3894,7 @@
- }
-
- /* Take what was originally there and place it back on ctx->b */
-- APR_BRIGADE_CONCAT(ctx->b, newbb);
-+ APR_BRIGADE_CONCAT(ctx->b, ctx->tmpbb);
- }
- return APR_SUCCESS;
- }