httpd-cvs mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From j..@apache.org
Subject svn commit: r520074 - /httpd/httpd/trunk/modules/experimental/mod_sedfilter.c
Date Mon, 19 Mar 2007 20:04:57 GMT
Author: jim
Date: Mon Mar 19 13:04:56 2007
New Revision: 520074

URL: http://svn.apache.org/viewvc?view=rev&rev=520074
Log:
Some minor tweaks... return quickly if given an
empty bb, ensure EOS is the last bucket we handle
and if our chunked passing fails, then we need
to report that immediately.

Modified:
    httpd/httpd/trunk/modules/experimental/mod_sedfilter.c

Modified: httpd/httpd/trunk/modules/experimental/mod_sedfilter.c
URL: http://svn.apache.org/viewvc/httpd/httpd/trunk/modules/experimental/mod_sedfilter.c?view=diff&rev=520074&r1=520073&r2=520074
==============================================================================
--- httpd/httpd/trunk/modules/experimental/mod_sedfilter.c (original)
+++ httpd/httpd/trunk/modules/experimental/mod_sedfilter.c Mon Mar 19 13:04:56 2007
@@ -277,6 +277,7 @@
     apr_status_t rv;
 
     sed_module_ctx *ctx = f->ctx;
+    
     /*
      * First time around? Create the saved bb that we used for each pass
      * through. Note that we can also get here when we explicitly clear ctx,
@@ -289,6 +290,12 @@
     }
 
     /*
+     * Shortcircuit processing
+     */
+    if (APR_BRIGADE_EMPTY(bb))
+        return APR_SUCCESS;
+
+    /*
      * Everything to be passed to the next filter goes in
      * here, our pass brigade.
      */
@@ -323,8 +330,10 @@
     while ((b = APR_BRIGADE_FIRST(bb)) && (b != APR_BRIGADE_SENTINEL(bb))) {
         apr_brigade_length(passbb, 0, &blen);
         if ((blen != -1) && (blen > AP_MIN_BYTES_TO_WRITE)) {
-            ap_pass_brigade(f->next, passbb);
+            rv = ap_pass_brigade(f->next, passbb);
             apr_brigade_cleanup(passbb);
+            if (rv != APR_SUCCESS)
+                return rv;
         }
         if (APR_BUCKET_IS_EOS(b)) {
             /*
@@ -342,6 +351,7 @@
             apr_brigade_cleanup(ctx->ctxbb);
             APR_BUCKET_REMOVE(b);
             APR_BRIGADE_INSERT_TAIL(passbb, b);
+            break;
         }
         else if (APR_BUCKET_IS_METADATA(b)) {
             APR_BUCKET_REMOVE(b);



Mime
View raw message