dougm 01/08/29 22:15:51
Modified: src/modules/perl mod_perl.c modperl_filter.c modperl_types.h
Log:
change wbucket buffer api to use the address of r->output_filters
so when a filter is removed from the chain, its is also remove from ours
Revision Changes Path
1.63 +1 -1 modperl-2.0/src/modules/perl/mod_perl.c
Index: mod_perl.c
===================================================================
RCS file: /home/cvs/modperl-2.0/src/modules/perl/mod_perl.c,v
retrieving revision 1.62
retrieving revision 1.63
diff -u -r1.62 -r1.63
--- mod_perl.c 2001/08/08 16:20:31 1.62
+++ mod_perl.c 2001/08/30 05:15:51 1.63
@@ -399,7 +399,7 @@
/* setup buffer for output */
rcfg->wbucket.pool = r->pool;
- rcfg->wbucket.filters = r->output_filters;
+ rcfg->wbucket.filters = &r->output_filters;
rcfg->wbucket.outcnt = 0;
}
1.25 +2 -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.24
retrieving revision 1.25
diff -u -r1.24 -r1.25
--- modperl_filter.c 2001/08/30 01:08:24 1.24
+++ modperl_filter.c 2001/08/30 05:15:51 1.25
@@ -34,7 +34,7 @@
MP_TRACE_f(MP_FUNC, "buffer length=%d\n", len);
- return ap_pass_brigade(wb->filters, bb);
+ return ap_pass_brigade(*(wb->filters), bb);
}
MP_INLINE apr_status_t modperl_wbucket_flush(modperl_wbucket_t *wb)
@@ -91,7 +91,7 @@
filter->bb = bb;
filter->pool = p;
filter->wbucket.pool = p;
- filter->wbucket.filters = f->next;
+ filter->wbucket.filters = &f->next;
filter->wbucket.outcnt = 0;
MP_TRACE_f(MP_FUNC, "filter=0x%lx, mode=%s\n",
1.46 +1 -1 modperl-2.0/src/modules/perl/modperl_types.h
Index: modperl_types.h
===================================================================
RCS file: /home/cvs/modperl-2.0/src/modules/perl/modperl_types.h,v
retrieving revision 1.45
retrieving revision 1.46
diff -u -r1.45 -r1.46
--- modperl_types.h 2001/08/19 17:33:32 1.45
+++ modperl_types.h 2001/08/30 05:15:51 1.46
@@ -168,7 +168,7 @@
int outcnt;
char outbuf[MP_IOBUFSIZE];
apr_pool_t *pool;
- ap_filter_t *filters;
+ ap_filter_t **filters;
int header_parse;
request_rec *r;
} modperl_wbucket_t;