You are viewing a plain text version of this content. The canonical link for it is here.
Posted to cvs@httpd.apache.org by gr...@apache.org on 2007/07/13 17:11:16 UTC

svn commit: r556028 - /httpd/httpd/trunk/modules/filters/mod_deflate.c

Author: gregames
Date: Fri Jul 13 08:11:16 2007
New Revision: 556028

URL: http://svn.apache.org/viewvc?view=rev&rev=556028
Log:
* generalize from error buckets to metadata buckets
* also applicable to the deflate input filter
* pass along metadata buckets rather than giving up mid-stream

vastly improved by: Rüdiger Plüm

Modified:
    httpd/httpd/trunk/modules/filters/mod_deflate.c

Modified: httpd/httpd/trunk/modules/filters/mod_deflate.c
URL: http://svn.apache.org/viewvc/httpd/httpd/trunk/modules/filters/mod_deflate.c?view=diff&rev=556028&r1=556027&r2=556028
==============================================================================
--- httpd/httpd/trunk/modules/filters/mod_deflate.c (original)
+++ httpd/httpd/trunk/modules/filters/mod_deflate.c Fri Jul 13 08:11:16 2007
@@ -579,9 +579,14 @@
             continue;
         }
 
-        if (AP_BUCKET_IS_ERROR(e)) {
-            ap_remove_output_filter(f);
-            return ap_pass_brigade(f->next, bb);
+        if (APR_BUCKET_IS_METADATA(e)) {
+            /*
+             * Remove meta data bucket from old brigade and insert into the
+             * new.
+             */
+            APR_BUCKET_REMOVE(e);
+            APR_BRIGADE_INSERT_TAIL(ctx->bb, e);
+            continue;
         }
 
         /* read */
@@ -1084,6 +1089,16 @@
             if (rv != APR_SUCCESS) {
                 return rv;
             }
+            continue;
+        }
+
+        if (APR_BUCKET_IS_METADATA(e)) {
+            /*
+             * Remove meta data bucket from old brigade and insert into the
+             * new.
+             */
+            APR_BUCKET_REMOVE(e);
+            APR_BRIGADE_INSERT_TAIL(ctx->bb, e);
             continue;
         }