httpd/httpd-2.4.2-r1357685.patch
2012-07-05 18:11:14 +01:00

39 lines
1.0 KiB
Diff

# ./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);