You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tomcat.apache.org by co...@apache.org on 2002/05/03 19:45:06 UTC
cvs commit: jakarta-tomcat-connectors/jk/native2/common jk_uriMap.c
costin 02/05/03 10:45:06
Modified: jk/native2/common jk_uriMap.c
Log:
Another fix in uriMap - make sure each host has a default context.
Deja-vu, check the commits of about 2 years ago :-)
Still missing - add /servlet/*, *.jsp and WEB-INF mappings automatically.
Revision Changes Path
1.29 +43 -3 jakarta-tomcat-connectors/jk/native2/common/jk_uriMap.c
Index: jk_uriMap.c
===================================================================
RCS file: /home/cvs/jakarta-tomcat-connectors/jk/native2/common/jk_uriMap.c,v
retrieving revision 1.28
retrieving revision 1.29
diff -u -r1.28 -r1.29
--- jk_uriMap.c 1 May 2002 17:23:14 -0000 1.28
+++ jk_uriMap.c 3 May 2002 17:45:06 -0000 1.29
@@ -331,6 +331,7 @@
int i;
jk_workerEnv_t *workerEnv=uriMap->workerEnv;
jk_bean_t *mbean;
+ jk_uriEnv_t *uriEnv;
mbean=env->getBean2( env, "uri", "" );
if( mbean==NULL )
@@ -347,7 +348,7 @@
/* Initialize the vhosts table */
for(i = 0 ; i < uriMap->maps->size( env, uriMap->maps ) ; i++) {
- jk_uriEnv_t *uriEnv=uriMap->maps->valueAt( env, uriMap->maps, i );
+ uriEnv=uriMap->maps->valueAt( env, uriMap->maps, i );
if( uriEnv == NULL ) continue;
if( uriEnv->match_type== MATCH_TYPE_HOST ) {
@@ -366,7 +367,7 @@
/* Add the vhost aliases ( for each vhost, by looking in the aliases ) */
for(i = 0 ; i < uriMap->maps->size( env, uriMap->maps ) ; i++) {
- jk_uriEnv_t *uriEnv=uriMap->maps->valueAt( env, uriMap->maps, i );
+ uriEnv=uriMap->maps->valueAt( env, uriMap->maps, i );
if( uriEnv->match_type== MATCH_TYPE_HOST &&
uriEnv->virtual!=NULL ) {
@@ -376,6 +377,41 @@
}
}
+ /** Make sure each vhost has a default context
+ */
+ for(i = 0 ; i < uriMap->vhosts->size( env, uriMap->vhosts ) ; i++) {
+ jk_uriEnv_t *hostEnv=uriMap->vhosts->valueAt( env, uriMap->vhosts, i );
+ jk_uriEnv_t *rootCtx;
+ char *uriPath;
+
+ if( hostEnv->virtual != NULL ) {
+ uriPath=env->tmpPool->calloc( env, env->tmpPool,
+ strlen( hostEnv->virtual ) + 3 );
+ strcpy( uriPath, hostEnv->virtual );
+ strcat( uriPath, "/" );
+ } else {
+ uriPath="/";
+ }
+
+ rootCtx=env->getByName2( env, "uri", uriPath );
+ if( rootCtx==NULL ) {
+ env->createBean2( env, uriMap->mbean->pool, "uri", uriPath );
+ rootCtx=env->getByName2( env, "uri", uriPath );
+ env->l->jkLog(env, env->l, JK_LOG_INFO,
+ "uriMap.init() Create default context %s\n", uriPath );
+ rootCtx->mbean->setAttribute( env, rootCtx->mbean, "context", "/" );
+ }
+ }
+
+ uriEnv=env->getByName2( env, "uri", "/" );
+ if( uriEnv==NULL ) {
+ env->createBean2( env, uriMap->mbean->pool, "uri", "/" );
+ uriEnv=env->getByName2( env, "uri", "/" );
+ env->l->jkLog(env, env->l, JK_LOG_INFO,
+ "uriMap.init() Create default context / ( for default host )\n" );
+ uriEnv->mbean->setAttribute( env, uriEnv->mbean, "context", "/" );
+ }
+
/* Init all contexts */
/* For each context, init the local uri maps */
for(i = 0 ; i < uriMap->maps->size( env, uriMap->maps ) ; i++) {
@@ -411,7 +447,6 @@
}
}
-
if( uriMap->debug > 5 )
env->l->jkLog(env, env->l, JK_LOG_INFO,
"uriMap.init() processing mappings\n");
@@ -438,6 +473,11 @@
ctxEnv=jk2_uriMap_prefixMap( env, uriMap, hostEnv->webapps, uri, strlen( uri ) );
+ if( ctxEnv==NULL ) {
+ env->l->jkLog(env, env->l, JK_LOG_INFO, "uriMap.init() no context for %s\n", uri);
+ return JK_ERR;
+ }
+
if( MATCH_TYPE_EXACT == uriEnv->match_type ) {
ctxEnv->exactMatch->add( env, ctxEnv->exactMatch, uri, uriEnv );
} else if( MATCH_TYPE_SUFFIX == uriEnv->match_type ) {
--
To unsubscribe, e-mail: <ma...@jakarta.apache.org>
For additional commands, e-mail: <ma...@jakarta.apache.org>