dougm 01/08/29 18:08:24
Modified: src/modules/perl modperl_filter.c
xs/Apache/Filter Apache__Filter.h
Log:
flush output filter buffer after filter has run rather than after each filter->print
Revision Changes Path
1.24 +10 -2 modperl-2.0/src/modules/perl/modperl_filter.c
Index: modperl_filter.c
===================================================================
RCS file: /home/cvs/modperl-2.0/src/modules/perl/modperl_filter.c,v
retrieving revision 1.23
retrieving revision 1.24
diff -u -r1.23 -r1.24
--- modperl_filter.c 2001/08/09 16:52:51 1.23
+++ modperl_filter.c 2001/08/30 01:08:24 1.24
@@ -32,6 +32,8 @@
bucket = apr_bucket_transient_create(buf, len);
APR_BRIGADE_INSERT_TAIL(bb, bucket);
+ MP_TRACE_f(MP_FUNC, "buffer length=%d\n", len);
+
return ap_pass_brigade(wb->filters, bb);
}
@@ -146,6 +148,10 @@
MP_TRACE_f(MP_FUNC, "%s returned %d\n", handler->name, status);
+ if (filter->mode == MP_OUTPUT_FILTER_MODE) {
+ modperl_output_filter_flush(filter);
+ }
+
return status;
}
@@ -335,8 +341,10 @@
filter->eos ? "EOS" : "FLUSH");
filter->rc = filter->eos ?
send_eos(filter->f) : send_flush(filter->f);
- apr_brigade_destroy(filter->bb);
- filter->bb = NULL;
+ if (filter->bb) {
+ apr_brigade_destroy(filter->bb);
+ filter->bb = NULL;
+ }
filter->flush = filter->eos = 0;
}
1.14 +0 -1 modperl-2.0/xs/Apache/Filter/Apache__Filter.h
Index: Apache__Filter.h
===================================================================
RCS file: /home/cvs/modperl-2.0/xs/Apache/Filter/Apache__Filter.h,v
retrieving revision 1.13
retrieving revision 1.14
diff -u -r1.13 -r1.14
--- Apache__Filter.h 2001/08/09 16:52:51 1.13
+++ Apache__Filter.h 2001/08/30 01:08:24 1.14
@@ -21,7 +21,6 @@
if (modperl_filter->mode == MP_OUTPUT_FILTER_MODE) {
mpxs_write_loop(modperl_output_filter_write, modperl_filter);
- modperl_output_filter_flush(modperl_filter);
}
else {
croak("input filters not yet supported");