]> git.ipfire.org Git - thirdparty/apache/httpd.git/commitdiff
Unset Content-Length if we call ap_pass_brigade several times
authorStefan Fritsch <sf@apache.org>
Mon, 29 Aug 2011 07:28:56 +0000 (07:28 +0000)
committerStefan Fritsch <sf@apache.org>
Mon, 29 Aug 2011 07:28:56 +0000 (07:28 +0000)
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1162665 13f79535-47bb-0310-9956-ffa450edef68

modules/http/byterange_filter.c

index 775d7e72154509a1873fad39e9a08c957fbc819e..f7f4194c66e607dfbe4ec769bc348c73966c372f 100644 (file)
@@ -392,7 +392,13 @@ AP_CORE_DECLARE_NONSTD(apr_status_t) ap_byterange_filter(ap_filter_t *f,
 
         APR_BRIGADE_CONCAT(bsend, tmpbb);
         if (i && i % 32 == 0) {
-            /* Every now and then, pass what we have down the filter chain */
+            /*
+             * Every now and then, pass what we have down the filter chain.
+             * In this case, the content-length filter cannot calculate and
+             * set the content length and we must remove any Content-Length
+             * header already present.
+             */
+            apr_table_unset(r->headers_out, "Content-Length");
             if ((rv = ap_pass_brigade(f->next, bsend)) != APR_SUCCESS)
                 return rv;
             apr_brigade_cleanup(bsend);