? mod_proxy.plg
? proxy_connect.plg
? proxy_ftp.plg
? proxy_http.plg
Index: mod_proxy.c
===================================================================
RCS file: /home/cvs/httpd-proxy/module-2.0/mod_proxy.c,v
retrieving revision 1.44
diff -u -r1.44 mod_proxy.c
--- mod_proxy.c	2001/04/15 18:16:22	1.44
+++ mod_proxy.c	2001/05/11 21:05:41
@@ -417,7 +417,7 @@
     ps->recv_buffer_size_set = 0;
     ps->maxfwd = DEFAULT_MAX_FORWARDS;
     ps->maxfwd_set = 0;
-
+	ps->forceHTTP10Proxy =0; /* default is to use HTTP/1.1 */
     return ps;
 }
 
@@ -702,7 +702,17 @@
     psf->viaopt_set = 1;
     return NULL;    
 }
+static const char *
+    set_proxy_http10(cmd_parms *parms, void *dummy, int flag)
+{
+    proxy_server_conf *psf =
+    ap_get_module_config(parms->server->module_config, &proxy_module);
 
+    psf->forceHTTP10Proxy = flag;
+    
+    return NULL;
+}
+
 static const command_rec proxy_cmds[] =
 {
     AP_INIT_FLAG("ProxyRequests", set_proxy_req, NULL, RSRC_CONF,
@@ -727,6 +737,9 @@
      "A list of ports which CONNECT may connect to"),
     AP_INIT_TAKE1("ProxyVia", set_via_opt, NULL, RSRC_CONF,
      "Configure Via: proxy header header to one of: on | off | block | full"),
+    AP_INIT_FLAG("forceHTTP10Proxy", set_proxy_http10, NULL, RSRC_CONF,
+     "on if the proxy should only send HTTP/1.0 requests (for broken HTTP/1.1 servers"),
+
     {NULL}
 };
 
Index: mod_proxy.h
===================================================================
RCS file: /home/cvs/httpd-proxy/module-2.0/mod_proxy.h,v
retrieving revision 1.51
diff -u -r1.51 mod_proxy.h
--- mod_proxy.h	2001/05/11 17:32:25	1.51
+++ mod_proxy.h	2001/05/11 21:05:41
@@ -180,6 +180,7 @@
     char recv_buffer_size_set;
     long maxfwd;
     char maxfwd_set;
+	int forceHTTP10Proxy; /* true if we need to use HTTP/1.0 requests only */
 } proxy_server_conf;
 
 struct per_thread_data {
Index: proxy_http.c
===================================================================
RCS file: /home/cvs/httpd-proxy/module-2.0/proxy_http.c,v
retrieving revision 1.70
diff -u -r1.70 proxy_http.c
--- proxy_http.c	2001/05/11 17:32:37	1.70
+++ proxy_http.c	2001/05/11 21:05:42
@@ -468,9 +468,12 @@
     if (close) {
 	apr_table_mergen(r->headers_in, "Connection", "close");
 	origin->keepalive = 0;
-    }
-
-    buf = apr_pstrcat(p, r->method, " ", url, " HTTP/1.1" CRLF, NULL);
+    } 
+	if ( conf->forceHTTP10Proxy == 0 ) {
+		buf = apr_pstrcat(p, r->method, " ", url, " HTTP/1.1" CRLF, NULL);
+	} else {
+		buf = apr_pstrcat(p, r->method, " ", url, " HTTP/1.0" CRLF, NULL);
+	}
     e = apr_bucket_pool_create(buf, strlen(buf), p);
     APR_BRIGADE_INSERT_TAIL(bb, e);
     if (uri.port_str && uri.port != DEFAULT_HTTP_PORT) {
