dougm       01/11/05 16:08:46

  Modified:    t/filter/TestFilter input_msg.pm
  Log:
  change filter logic to what is currently considered the "right way"
  
  Revision  Changes    Path
  1.7       +21 -11    modperl-2.0/t/filter/TestFilter/input_msg.pm
  
  Index: input_msg.pm
  ===================================================================
  RCS file: /home/cvs/modperl-2.0/t/filter/TestFilter/input_msg.pm,v
  retrieving revision 1.6
  retrieving revision 1.7
  diff -u -r1.6 -r1.7
  --- input_msg.pm      2001/07/15 22:33:49     1.6
  +++ input_msg.pm      2001/11/06 00:08:46     1.7
  @@ -16,26 +16,36 @@
   sub handler : FilterConnectionHandler {
       my($filter, $bb, $mode, $readbytes) = @_;
   
  -    if ($bb->empty) {
  -        my $rv = $filter->next->get_brigade($bb, $mode, $readbytes);
  +    my $ctx_bb = APR::Brigade->new($filter->c->pool);
   
  -        if ($rv != APR::SUCCESS) {
  -            return $rv;
  -        }
  +    my $rv = $filter->next->get_brigade($ctx_bb, $mode, $readbytes);
  +
  +    if ($rv != APR::SUCCESS) {
  +        return $rv;
       }
   
  -    for (my $bucket = $bb->first; $bucket; $bucket = $bb->next($bucket)) {
  +    while (!$ctx_bb->empty) {
           my $data;
  -        my $status = $bucket->read($data);
  +        my $bucket = $ctx_bb->first;
   
           $bucket->remove;
   
  -        if ($data and $data =~ s,GET $from_url,GET $to_url,) {
  -            $bb->insert_tail(APR::Bucket->new($data));
  -        }
  -        else {
  +        if ($bucket->is_eos) {
               $bb->insert_tail($bucket);
  +            last;
           }
  +
  +        my $status = $bucket->read($data);
  +
  +        if ($status != APR::SUCCESS) {
  +            return $status;
  +        }
  +
  +        if ($data and $data =~ s,GET $from_url,GET $to_url,) {
  +            $bucket = APR::Bucket->new($data);
  +        }
  +
  +        $bb->insert_tail($bucket);
       }
   
       Apache::OK;
  
  
  


Reply via email to