diff -Nru jakarta-tomcat-connectors-jk-1.2.5-src.orig/jk/native/apache-1.3/mod_jk.c jakarta-tomcat-connectors-jk-1.2.5-src/jk/native/apache-1.3/mod_jk.c
--- jakarta-tomcat-connectors-jk-1.2.5-src.orig/jk/native/apache-1.3/mod_jk.c 2004-05-14 15:02:21.110892712 +0000
+++ jakarta-tomcat-connectors-jk-1.2.5-src/jk/native/apache-1.3/mod_jk.c 2004-05-14 19:43:05.275190512 +0000
-@@ -134,8 +134,14 @@
- table *envvars;
+@@ -135,8 +135,14 @@
+ table *envvars;
server_rec *s;
+
/*
* The "private", or subclass portion of the web server service class for
-@@ -1355,6 +1361,18 @@
+@@ -1414,6 +1420,18 @@
return NULL;
}
/*
* JkEnvVar Directive Handling
*
-@@ -1475,6 +1493,9 @@
- {"JkEnvVar", jk_add_env_var, NULL, RSRC_CONF, TAKE2,
- "Adds a name of environment variable that should be sent to servlet-engine"},
+@@ -1564,6 +1582,9 @@
+ {"JkWorkerProperty", jk_set_worker_property, NULL, RSRC_CONF, RAW_ARGS,
+ "Set workers.properties formated directive"},
+ {"JkPass", jk_set_pass_prefix, NULL, RSRC_CONF, TAKE1,
+ "Set the prefix for URIs that shouldn't be procceded to a servlet-engine worker (multiple)" },
{NULL}
};
-@@ -1490,11 +1511,30 @@
+@@ -1579,11 +1600,30 @@
/* Retrieve the worker name stored by jk_translate() */
const char *worker_name = ap_table_get(r->notes, JK_WORKER_ID);
int rc;
+ pass_prefix *item;
+ int i;
- if(r->proxyreq) {
+ if (r->proxyreq) {
return HTTP_INTERNAL_SERVER_ERROR;
}
+ s = r->server;
+ c = (jk_server_conf_t *) ap_get_module_config(s->module_config, &jk_module);
+ list = (pass_prefix *) c->pass_prefixes->elts;
-+ for (i = 0; i < c->pass_prefixes->nelts; ++i) {
-+ item = &list[i];
-+ if (item->prefix) {
-+ char *pass = strstr(r->uri, item->prefix);
-+ if (pass && pass == r->uri) {
-+ ap_log_error(APLOG_MARK, APLOG_NOERRNO|APLOG_DEBUG, s, "Skipping URI: %s", r->uri);
-+ return DECLINED;
-+ }
-+ }
-+ }
-+
++ for (i = 0; i < c->pass_prefixes->nelts; ++i) {
++ item = &list[i];
++ if (item->prefix) {
++ char *pass = strstr(r->uri, item->prefix);
++ if (pass && pass == r->uri) {
++ ap_log_error(APLOG_MARK, APLOG_NOERRNO|APLOG_DEBUG, s, "Skipping URI: %s", r->uri);
++ return DECLINED;
++ }
++ }
++ }
++
/* Set up r->read_chunked flags for chunked encoding, if present */
- if(rc = ap_setup_client_block(r, REQUEST_CHUNKED_DECHUNK)) {
- return rc;
-@@ -1651,6 +1691,9 @@
+ if ((rc = ap_setup_client_block(r, REQUEST_CHUNKED_DECHUNK))) {
+ return rc;
+@@ -1771,6 +1811,9 @@
c->s = s;