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

Reply via email to