bojan 2002/07/23 19:38:32
Modified: jk/native/apache-2.0 mod_jk.c
Log:
Refine directory handling a bit more. Make use of the new JkOption,
ForwardDirectories. When enabled, all unresolved directory requests go
to Tomcat. This option is disabled by default.
Revision Changes Path
1.53 +21 -6 jakarta-tomcat-connectors/jk/native/apache-2.0/mod_jk.c
Index: mod_jk.c
===================================================================
RCS file: /home/cvs/jakarta-tomcat-connectors/jk/native/apache-2.0/mod_jk.c,v
retrieving revision 1.52
retrieving revision 1.53
diff -u -r1.52 -r1.53
--- mod_jk.c 22 Jul 2002 21:03:19 -0000 1.52
+++ mod_jk.c 24 Jul 2002 02:38:32 -0000 1.53
@@ -959,7 +959,8 @@
* -ForwardSSLKeySize => Don't Forward SSL Key Size, will make mod_jk works
with all TC release
* ForwardURICompat => Forward URI normally, less spec compliant but
mod_rewrite compatible (old TC)
* ForwardURICompatUnparsed => Forward URI as unparsed, spec compliant but broke
mod_rewrite (old TC)
- * ForwardURIEscaped => Forward URI escaped and Tomcat (3.3 rc2) stuff will
do the decoding part
+ * ForwardURIEscaped => Forward URI escaped and Tomcat (3.3 rc2) stuff will
do the decoding part
+ * ForwardDirectories => Forward all directory requests with no index files
to Tomcat
*/
const char *jk_set_options(cmd_parms *cmd,
@@ -1000,6 +1001,9 @@
opt = JK_OPT_FWDURIESCAPED;
mask = JK_OPT_FWDURIMASK;
}
+ else if (!strcasecmp(w, "ForwardDirectories")) {
+ opt = JK_OPT_FWDDIRS;
+ }
else
return ap_pstrcat(cmd->pool, "JkOptions: Illegal option '", w, "'",
NULL);
@@ -1183,20 +1187,26 @@
/* We do DIR_MAGIC_TYPE here to make sure TC gets all requests, even
* if they are directory requests, in case there are no static files
- * visible to Apache and/or DirectoryIndex was not used */
+ * visible to Apache and/or DirectoryIndex was not used. This is only
+ * used when JkOptions has ForwardDirectories set. */
- /* not for me, try next handler */
+ /* Not for me, try next handler */
if(strcmp(r->handler,JK_HANDLER) && strcmp(r->handler,DIR_MAGIC_TYPE))
- return DECLINED;
+ return DECLINED;
xconf = (jk_server_conf_t *)ap_get_module_config(r->server->module_config,
&jk_module);
+
+ /* Was the option to forward directories to Tomcat set? */
+ if(!strcmp(r->handler,DIR_MAGIC_TYPE) && !(xconf->options & JK_OPT_FWDDIRS))
+ return DECLINED;
+
worker_name = apr_table_get(r->notes, JK_WORKER_ID);
xl = xconf->log ? xconf->log : main_log;
/* Set up r->read_chunked flags for chunked encoding, if present */
if(rc = ap_setup_client_block(r, REQUEST_CHUNKED_DECHUNK)) {
- return rc;
+ return rc;
}
if( worker_name == NULL ) {
@@ -1610,6 +1620,11 @@
if(worker) {
r->handler=apr_pstrdup(r->pool,JK_HANDLER);
apr_table_setn(r->notes, JK_WORKER_ID, worker);
+
+ /* This could be a sub-request, possibly from mod_dir */
+ if(r->main)
+ apr_table_setn(r->main->notes, JK_WORKER_ID, worker);
+
return OK;
}
}
--
To unsubscribe, e-mail: <mailto:[EMAIL PROTECTED]>
For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>