The included quick patch should allow mod_proxy to pass chunked requests as-is to origin servers.

The modification in proxy_http.c checks read_chunked to decide whether or not to strip the Transfer-Encoding header.

Feedback appreciated,

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/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;
--- 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        Mon Mar 10 15:38:54 2003
@@ -387,7 +387,8 @@
             || !strcasecmp(reqhdrs_elts[i].key, "Keep-Alive")
             || !strcasecmp(reqhdrs_elts[i].key, "TE")
             || !strcasecmp(reqhdrs_elts[i].key, "Trailer")
-            || !strcasecmp(reqhdrs_elts[i].key, "Transfer-Encoding")
+           /* Only strip Transfer-Encoding if we do not read chunks, depends 
on call to ap_setup_client_block */
+            || (!strcasecmp(reqhdrs_elts[i].key, "Transfer-Encoding") && 
!r->read_chunked)
             || !strcasecmp(reqhdrs_elts[i].key, "Upgrade")
         /*
          * XXX: @@@ FIXME: "Proxy-Authorization" should *only* be suppressed

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



Reply via email to