Here is my second shot of a patch solving the issue of requests sent using 'Transfer-Encoding: chunked' and handled by mod_proxy in Apache 1.3.27. Basically it changes mod_proxy behavior from REQUEST_CHUNKED_ERROR to REQUEST_CHUNKED_PASS, meaning requests sent using chunked transfer encoding will be passed as is to the origin server.

This patch is minimal and does not modify the behavior of mod_proxy for non chunked requests, it issues an additional 'Transfer-Encoding: chunked' when the request used one.

Please provide any feedback.

Mathias.

--
--  Informatique du Credit Mutuel  ----  Reseaux et Systemes Distribues
--  32 rue Mirabeau -- Le Relecq-Kerhuon -- 29808 Brest Cedex 9, FRANCE
--  Tel +33298004653 - Fax +33298284005 - Mail [EMAIL PROTECTED]
--  Key Fingerprint: 8778 D2FD 3B4A 6B33 10AB  F503 63D0 ADAE 9112 03E4
--- apache_1.3.27/src/modules/proxy/proxy_http.c.orig   Mon Mar 10 15:36:43 2003
+++ apache_1.3.27/src/modules/proxy/proxy_http.c        Tue Mar 11 10:56:13 2003
@@ -404,6 +404,14 @@
         ap_bvputs(f, reqhdrs_elts[i].key, ": ", reqhdrs_elts[i].val, CRLF, 
NULL);
     }
 
+    /*
+     * Output a Transfer-Encoding: chunked header if request used it.
+     */
+
+    if (r->read_chunked) {
+      ap_bvputs(f, "Transfer-Encoding: chunked", CRLF, NULL);
+    }
+
     /* the obligatory empty line to mark the end of the headers */
     ap_bputs(CRLF, f);
 
--- apache_1.3.27/src/modules/proxy/mod_proxy.c.orig    Mon Mar 10 15:36:48 2003
+++ apache_1.3.27/src/modules/proxy/mod_proxy.c Mon Mar 10 15:39:16 2003
@@ -319,7 +319,7 @@
                 ap_psprintf(r->pool, "%ld", (maxfwd > 0) ? maxfwd - 1 : 0));
     }
 
-    if ((rc = ap_setup_client_block(r, REQUEST_CHUNKED_ERROR)))
+    if ((rc = ap_setup_client_block(r, REQUEST_CHUNKED_PASS)))
         return rc;
 
     url = r->filename + 6;

Attachment: smime.p7s
Description: S/MIME Cryptographic Signature



Reply via email to