You are viewing a plain text version of this content. The canonical link for it is here.
Posted to cvs@httpd.apache.org by jo...@apache.org on 2004/11/02 00:04:05 UTC

cvs commit: httpd-2.0/server util_filter.c

jorton      2004/11/01 15:04:05

  Modified:    server   util_filter.c
  Log:
  * server/util_filter.c (ap_save_brigade): Be more tolerant of a bucket
  type which neither implements ->setaside nor morphs on ->read, such as
  the mod_perl SV bucket type in mod_perl <1.99_17; defer returning an
  error in this case until after calling setaside on each bucket.
  
  Revision  Changes    Path
  1.102     +8 -3      httpd-2.0/server/util_filter.c
  
  Index: util_filter.c
  ===================================================================
  RCS file: /home/cvs/httpd-2.0/server/util_filter.c,v
  retrieving revision 1.101
  retrieving revision 1.102
  diff -d -w -u -r1.101 -r1.102
  --- util_filter.c	26 Sep 2004 15:52:51 -0000	1.101
  +++ util_filter.c	1 Nov 2004 23:04:05 -0000	1.102
  @@ -532,7 +532,7 @@
                                            apr_bucket_brigade **b, apr_pool_t *p)
   {
       apr_bucket *e;
  -    apr_status_t rv;
  +    apr_status_t rv, srv = APR_SUCCESS;
   
       /* If have never stored any data in the filter, then we had better
        * create an empty bucket brigade so that we can concat.
  @@ -561,11 +561,16 @@
           }
   
           if (rv != APR_SUCCESS) {
  +            srv = rv;
  +            /* Return an error but still save the brigade if
  +             * ->setaside() is really not implemented. */
  +            if (rv != APR_ENOTIMPL) {
               return rv;
           }
       }
  +    }
       APR_BRIGADE_CONCAT(*saveto, *b);
  -    return APR_SUCCESS;
  +    return srv;
   }
   
   AP_DECLARE_NONSTD(apr_status_t) ap_filter_flush(apr_bucket_brigade *bb,