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");