From: William A. Rowe Jr Date: Mon, 8 Aug 2005 01:26:34 +0000 (+0000) Subject: Backport the fix to an edge case; it's now much more efficient to X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=70dedec432758a2dc305759530923ffcfd53356f;p=thirdparty%2Fapache%2Fhttpd.git Backport the fix to an edge case; it's now much more efficient to entirely skip request body determinations for subrequests, stuff in an EOS and we are off to the races, ready to create a body-less proxied subrequest. git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/branches/proxy-reqbody-2.0.x@230725 13f79535-47bb-0310-9956-ffa450edef68 --- diff --git a/modules/proxy/proxy_http.c b/modules/proxy/proxy_http.c index addaf7e40a0..00bdb806059 100644 --- a/modules/proxy/proxy_http.c +++ b/modules/proxy/proxy_http.c @@ -1031,6 +1031,10 @@ apr_status_t ap_proxy_http_request(apr_pool_t *p, request_rec *r, old_te_val = NULL; apr_table_unset(r->headers_in, "Transfer-Encoding"); } + rb_method = RB_STREAM_CL; + e = apr_bucket_eos_create(input_brigade->bucket_alloc); + APR_BRIGADE_INSERT_TAIL(input_brigade, e); + goto skip_body; } /* Prefetch MAX_MEM_SPOOL bytes @@ -1125,6 +1129,9 @@ apr_status_t ap_proxy_http_request(apr_pool_t *p, request_rec *r, } } +/* Yes I hate gotos. This is the subrequest shortcut */ +skip_body: + switch(rb_method) { case RB_STREAM_CHUNKED: status = stream_reqbody_chunked(p, r, p_conn, origin, bb,