From: Jim Jagielski Date: Tue, 17 Aug 2010 14:43:45 +0000 (+0000) Subject: Further checks for non-body requests... X-Git-Tag: 2.3.7~16 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=ef0da3905822302c815af17f3d98ccef4ad2df94;p=thirdparty%2Fapache%2Fhttpd.git Further checks for non-body requests... git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@986333 13f79535-47bb-0310-9956-ffa450edef68 --- diff --git a/modules/proxy/mod_proxy_http.c b/modules/proxy/mod_proxy_http.c index 1d721d93779..2c93e361c3c 100644 --- a/modules/proxy/mod_proxy_http.c +++ b/modules/proxy/mod_proxy_http.c @@ -704,8 +704,15 @@ int ap_proxy_http_request(apr_pool_t *p, request_rec *r, * Send the HTTP/1.1 request to the remote server */ + /* + * To be compliant, we only use 100-Continue for requests with no bodies. + * We also make sure we won't be talking HTTP/1.0 as well. + */ do_100_continue = (worker->ping_timeout_set && !r->header_only + && !r->kept_body + && !(apr_table_get(r->headers_in, "Content-Length")) + && !(apr_table_get(r->headers_in, "Transfer-Encoding")) && (PROXYREQ_REVERSE == r->proxyreq) && !(apr_table_get(r->subprocess_env, "force-proxy-request-1.0"))); @@ -1397,10 +1404,12 @@ apr_status_t ap_proxy_http_process_response(apr_pool_t * p, request_rec *r, do_100_continue = (worker->ping_timeout_set && !r->header_only + && !r->kept_body + && !(apr_table_get(r->headers_in, "Content-Length")) + && !(apr_table_get(r->headers_in, "Transfer-Encoding")) && (PROXYREQ_REVERSE == r->proxyreq) && !(apr_table_get(r->subprocess_env, "force-proxy-request-1.0"))); - bb = apr_brigade_create(p, c->bucket_alloc); pass_bb = apr_brigade_create(p, c->bucket_alloc);