diff options
author | Jim Jagielski <jim@apache.org> | 2010-08-17 14:43:45 +0000 |
---|---|---|
committer | Jim Jagielski <jim@apache.org> | 2010-08-17 14:43:45 +0000 |
commit | ef0da3905822302c815af17f3d98ccef4ad2df94 (patch) | |
tree | c3b426fc280fc598a9b0eb8681502a336e7fd631 /modules/proxy | |
parent | 2a204ae83e9e73beb57887c43618aeee010d4a67 (diff) | |
download | httpd-ef0da3905822302c815af17f3d98ccef4ad2df94.tar.gz |
Further checks for non-body requests...
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@986333 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'modules/proxy')
-rw-r--r-- | modules/proxy/mod_proxy_http.c | 11 |
1 files changed, 10 insertions, 1 deletions
diff --git a/modules/proxy/mod_proxy_http.c b/modules/proxy/mod_proxy_http.c index 1d721d9377..2c93e361c3 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); |