summaryrefslogtreecommitdiffstats
path: root/httpd-2.4.2-r1357685.patch
diff options
context:
space:
mode:
Diffstat (limited to 'httpd-2.4.2-r1357685.patch')
-rw-r--r--httpd-2.4.2-r1357685.patch38
1 files changed, 38 insertions, 0 deletions
diff --git a/httpd-2.4.2-r1357685.patch b/httpd-2.4.2-r1357685.patch
new file mode 100644
index 0000000..189a089
--- /dev/null
+++ b/httpd-2.4.2-r1357685.patch
@@ -0,0 +1,38 @@
+# ./pullrev.sh 1357685
+
+http://svn.apache.org/viewvc?view=revision&revision=1357685
+
+--- httpd-2.4.2/modules/filters/mod_ext_filter.c
++++ httpd-2.4.2/modules/filters/mod_ext_filter.c
+@@ -66,7 +66,7 @@
+ apr_procattr_t *procattr;
+ ef_dir_t *dc;
+ ef_filter_t *filter;
+- int noop;
++ int noop, hit_eos;
+ #if APR_FILES_AS_SOCKETS
+ apr_pollset_t *pollset;
+ #endif
+@@ -827,6 +827,7 @@
+ if (eos) {
+ b = apr_bucket_eos_create(c->bucket_alloc);
+ APR_BRIGADE_INSERT_TAIL(bb, b);
++ ctx->hit_eos = 1;
+ }
+
+ return APR_SUCCESS;
+@@ -910,6 +911,14 @@
+ ctx = f->ctx;
+ }
+
++ if (ctx->hit_eos) {
++ /* Match behaviour of HTTP_IN if filter is re-invoked after
++ * hitting EOS: give back another EOS. */
++ apr_bucket *e = apr_bucket_eos_create(f->c->bucket_alloc);
++ APR_BRIGADE_INSERT_TAIL(bb, e);
++ return APR_SUCCESS;
++ }
++
+ if (ctx->noop) {
+ ap_remove_input_filter(f);
+ return ap_get_brigade(f->next, bb, mode, block, readbytes);