stas 2003/11/22 02:21:54
Modified: src/modules/perl modperl_filter.c
Log:
modperl_wbucket_pass() wasn't always followed by the code to reset wbucket
counter. move it inside that function, to fix the current bug and avoid
future problems
Revision Changes Path
1.74 +6 -1 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.73
retrieving revision 1.74
diff -u -u -r1.73 -r1.74
--- modperl_filter.c 16 Nov 2003 03:32:21 -0000 1.73
+++ modperl_filter.c 22 Nov 2003 10:21:53 -0000 1.74
@@ -95,6 +95,12 @@
apr_bucket *bucket;
const char *work_buf = buf;
+ /* reset the counter to 0 as early as possible and in one place,
+ * since this function will always either path the data out (and
+ * it has 'len' already) or return an error.
+ */
+ wb->outcnt = 0;
+
if (wb->header_parse) {
request_rec *r = wb->r;
const char *bodytext = NULL;
@@ -181,7 +187,6 @@
if (wb->outcnt) {
rv = modperl_wbucket_pass(wb, wb->outbuf, wb->outcnt,
add_flush_bucket);
- wb->outcnt = 0;
}
else if (add_flush_bucket) {
rv = send_output_flush(*(wb->filters));