summaryrefslogtreecommitdiffstats
path: root/modules/proxy
diff options
context:
space:
mode:
authorIan Holsman <ianh@apache.org>2002-05-31 23:21:10 +0200
committerIan Holsman <ianh@apache.org>2002-05-31 23:21:10 +0200
commitaff9b8aef6a3d9e32e4f1ee7095908726b483d60 (patch)
tree8fada81c563ed984f4dd68460b87490c8e4f5c5b /modules/proxy
parent Clean up new compiler emit noise (diff)
downloadapache2-aff9b8aef6a3d9e32e4f1ee7095908726b483d60.tar.xz
apache2-aff9b8aef6a3d9e32e4f1ee7095908726b483d60.zip
add 2 new enviornment variables to deal with misbehaving backends
"proxy-nokeepalive" which removes the Connection: line completely "force-proxy-request-1.0" which forces the request to be HTTP/1.0 this allows apache to reverse proxy misbehaving appservers git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@95456 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'modules/proxy')
-rw-r--r--modules/proxy/proxy_http.c10
1 files changed, 9 insertions, 1 deletions
diff --git a/modules/proxy/proxy_http.c b/modules/proxy/proxy_http.c
index ee9c75da1b..245e34bc25 100644
--- a/modules/proxy/proxy_http.c
+++ b/modules/proxy/proxy_http.c
@@ -449,7 +449,15 @@ apr_status_t ap_proxy_http_request(apr_pool_t *p, request_rec *r,
origin->keepalive = 0;
}
- buf = apr_pstrcat(p, r->method, " ", url, " HTTP/1.1" CRLF, NULL);
+ if ( apr_table_get(r->subprocess_env,"force-proxy-request-1.0")) {
+ buf = apr_pstrcat(p, r->method, " ", url, " HTTP/1.0" CRLF, NULL);
+ } else {
+ buf = apr_pstrcat(p, r->method, " ", url, " HTTP/1.1" CRLF, NULL);
+ }
+ if ( apr_table_get(r->subprocess_env,"proxy-nokeepalive")) {
+ apr_table_unset(r->headers_in, "Connection");
+ origin->keepalive = 0;
+ }
ap_xlate_proto_to_ascii(buf, strlen(buf));
e = apr_bucket_pool_create(buf, strlen(buf), p, c->bucket_alloc);
APR_BRIGADE_INSERT_TAIL(bb, e);