dougm 01/11/05 16:07:53
Modified: t/filter/TestFilter input_body.pm
Log:
change filter logic to what is currently considered the "right way"
Revision Changes Path
1.7 +18 -10 modperl-2.0/t/filter/TestFilter/input_body.pm
Index: input_body.pm
===================================================================
RCS file: /home/cvs/modperl-2.0/t/filter/TestFilter/input_body.pm,v
retrieving revision 1.6
retrieving revision 1.7
diff -u -r1.6 -r1.7
--- input_body.pm 2001/08/10 03:06:45 1.6
+++ input_body.pm 2001/11/06 00:07:53 1.7
@@ -15,28 +15,36 @@
sub handler : FilterRequestHandler {
my($filter, $bb, $mode, $readbytes) = @_;
- if ($bb->empty) {
- my $rv = $filter->next->get_brigade($bb, $mode, $readbytes);
+ my $ctx_bb = APR::Brigade->new($filter->r->pool);
- if ($rv != APR::SUCCESS) {
- return $rv;
- }
+ my $rv = $filter->next->get_brigade($ctx_bb, $mode, $readbytes);
+
+ if ($rv != APR::SUCCESS) {
+ return $rv;
}
- while (!$bb->empty) {
- my $bucket = $bb->first;
+ while (!$ctx_bb->empty) {
my $data;
- my $status = $bucket->read($data);
+ my $bucket = $ctx_bb->first;
$bucket->remove;
+ if ($bucket->is_eos) {
+ $bb->insert_tail($bucket);
+ last;
+ }
+
+ my $status = $bucket->read($data);
+
+ if ($status != APR::SUCCESS) {
+ return $status;
+ }
+
if ($data) {
$bucket = APR::Bucket->new(scalar reverse $data);
}
$bb->insert_tail($bucket);
-
- last if $bucket->is_eos;
}
Apache::OK;