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;
}
}