dgaudet 97/11/08 13:39:13
Modified: src CHANGES src/main http_request.c src/modules/proxy mod_proxy.c Log: find_types() shouldn't be called if we just found a matching ProxyPass directive and set handler to 'proxy-server', because find_types() resets r->handler if we have an other handler (server-info, server-parsed, etc.) that will be invoked on the URI from the request. PR: 870 Submitted by: Lars Eilebrecht Reviewed by: Dean Gaudet, Martin Kraemer Revision Changes Path 1.497 +6 -0 apachen/src/CHANGES Index: CHANGES =================================================================== RCS file: /export/home/cvs/apachen/src/CHANGES,v retrieving revision 1.496 retrieving revision 1.497 diff -u -r1.496 -r1.497 --- CHANGES 1997/11/08 21:33:07 1.496 +++ CHANGES 1997/11/08 21:39:07 1.497 @@ -1,5 +1,11 @@ Changes with Apache 1.3b3 + *) Preserve handler value on ProxyPass'ed requests by not + calling find_types on a proxy'd request; fixes problems + where some ProxyPass'ed URLs weren't actually passed + to the proxy. + [Lars Eilebrecht] PR#870 + *) Fix a byte ordering problem in mod_access which prevented the old-style syntax (i.e. "a.b.c." to match a class C) from working properly. [Dean Gaudet] PR#1248, 1328, 1384 1.92 +5 -4 apachen/src/main/http_request.c Index: http_request.c =================================================================== RCS file: /export/home/cvs/apachen/src/main/http_request.c,v retrieving revision 1.91 retrieving revision 1.92 diff -u -r1.91 -r1.92 --- http_request.c 1997/10/22 20:29:44 1.91 +++ http_request.c 1997/11/08 21:39:11 1.92 @@ -1093,10 +1093,11 @@ break; } - if ((access_status = find_types(r)) != 0) { - decl_die(access_status, "find types", r); - return; - } + if (!r->proxyreq) + if ((access_status = find_types(r)) != 0) { + decl_die(access_status, "find types", r); + return; + } if ((access_status = run_fixups(r)) != 0) { die(access_status, r); 1.28 +2 -1 apachen/src/modules/proxy/mod_proxy.c Index: mod_proxy.c =================================================================== RCS file: /export/home/cvs/apachen/src/modules/proxy/mod_proxy.c,v retrieving revision 1.27 retrieving revision 1.28 diff -u -r1.27 -r1.28 --- mod_proxy.c 1997/10/22 20:30:04 1.27 +++ mod_proxy.c 1997/11/08 21:39:12 1.28 @@ -140,11 +140,12 @@ for (i = 0; i < conf->aliases->nelts; i++) { len = alias_match(r->uri, ent[i].fake); - + if (len > 0) { r->filename = pstrcat(r->pool, "proxy:", ent[i].real, r->uri + len, NULL); r->handler = "proxy-server"; + r->proxyreq = 1; return OK; } }