You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tomcat.apache.org by "Ignacio J. Ortega" <na...@siapi.es> on 2001/09/07 22:42:49 UTC

RE: PATCH: Multiple Tomcat 3.2 ISAPI redirectors on the one machi ne

Hola Tim:

I like this patch.. 

Larry can we include it for Tomcat 3.3 ?

I propose to change the file name from .ini to .properties..

And please send the patch following the guidelines at
<http://jakarta.apache.org/site/source.html>..

Basically: 

* cvs diff -u 
* As an attached file not inline 
* follow the same code conventions used by the patched code .


Saludos ,
Ignacio J. Ortega


> -----Mensaje original-----
> De: Tim Whittington [mailto:Tim.Whittington@orion.co.nz]
> Enviado el: viernes 7 de septiembre de 2001 7:15
> Para: 'tomcat-dev@jakarta.apache.org'
> Asunto: PATCH: Multiple Tomcat 3.2 ISAPI redirectors on the 
> one machine
> 
> 
> Afternoon tomcat-dev (It's late afternoon down here in New Zealand)
> 
> We have multiple applications that use the IIS ASAPI 
> redirector to talk to 
> Tomcat instances. They all get installed separately and its a 
> pain in the 
> arse to find the worker and worker mount files and merge in 
> your settings
> during installation.
> So I've patched the ISAPI redirector to get the redirector to 
> load it's 
> properties from an ini file, with one ini file per filter.
> 
> It works like this :
> 	1) You install the ISAPI filter DLL in a virtual directory.
> 	2) In the same directory you put a properties file of 
> the same name
> (except for the extension)
> 		i.e. /jakarta/isapi_redirect.dll and
> /jakarta/isapi_redirect.ini
> 	3) The ini file is a property file with exactly the 
> same properties
> as used to be put in the registry
> 	i.e.
> 	worker_file=C:\tomcat\conf\workers.properties
> 	worker_mount_file=C:\tomcat\conf\uriworkermap.properties
> 	log_level=error
> 	log_file=C:\tomcat\logs\isapi_redirector.log
> 	extension_uri=/jakarta/isapi_redirect.dll
> 	4) The filter loads this ini file and gets its settings from it.
> 	5) If the filter can't find the ini file it uses the 
> registry (old
> behaviour) == 1 ASAPI per machine.
> 	6) You can then install another filter, with another 
> ini file, and
> not have the two conflict.
> diffs follow ....
> 
> One gotcha, the DLL needs shlwapi.dll for the 
> PathRenameExtension (Ships in
> IE 4.0)
> If this is a problem then someone can hack the ini_file_name string to
> overwrite the file extension ...
> Also a flag and DEBUG print to indicate whether the ini file 
> is being used
> could be useful ....
> 
> 
> cheers
> 
> tim
> 
> -- src/native/iis/asapi.dsp ---
> 56c56
> < # ADD LINK32 wsock32.lib advapi32.lib /nologo /dll /machine:I386
> /out:"isapi_release/isapi_redirect.dll"
> ---
> > # ADD LINK32 wsock32.lib advapi32.lib shlwapi.lib /nologo /dll
> /machine:I386 /out:"isapi_release/isapi_redirect.dll"
> 82c82
> < # ADD LINK32 wsock32.lib advapi32.lib /nologo /dll /debug 
> /machine:I386
> /out:"isapi_debug/isapi_redirect.dll" /pdbtype:sept
> ---
> > # ADD LINK32 wsock32.lib advapi32.lib shlwapi.lib /nologo 
> /dll /debug
> /machine:I386 /out:"isapi_debug/isapi_redirect.dll" /pdbtype:sept
> 
> 
> -- src/native/iis/jk_isapi_plugin.c ---
> 
> 61a62,66
> > #include <stdio.h>
> > #include <stdlib.h>
> > #include <windows.h>
> > #include <shlwapi.h>
> > 
> 121a127
> > static char ini_file_name[_MAX_PATH];
> 614a621,629
> > 	if( GetModuleFileName( hInst, ini_file_name, sizeof( 
> ini_file_name )
> ) ) {
> > 		if( !PathRenameExtension( ini_file_name, ".ini" ) ) {
> > 			fReturn = FALSE;
> > 		}
> > 	} else {
> > 		fReturn = FALSE;
> > 	}
> > 
> > 
> 621a637
> > 
> 628a645,651
> >         jk_log(logger, JK_LOG_DEBUG, "Using log file 
> %s.\n", log_file);
> >         jk_log(logger, JK_LOG_DEBUG, "Using log level 
> %d.\n", log_level);
> >         jk_log(logger, JK_LOG_DEBUG, "Using extension uri %s.\n",
> extension_uri);
> >         jk_log(logger, JK_LOG_DEBUG, "Using worker file %s.\n",
> worker_file);
> >         jk_log(logger, JK_LOG_DEBUG, "Using worker mount 
> file %s.\n",
> worker_mount_file);
> > 
> > 
> 668a692
> > 	char *tmp;
> 669a694,735
> >     
> > 	jk_map_t *map;
> > 	if( map_alloc( &map ) ) {
> > 		if( !map_read_properties( map, ini_file_name ) ) {
> > 			ok = JK_FALSE;
> > 		}
> > 	} else {
> > 		ok = JK_FALSE;
> > 	}
> > 	if( ok ) {
> > 		tmp = map_get_string( map, JK_LOG_FILE_TAG, NULL );
> > 		if(tmp) {
> > 			strcpy(log_file, tmp);
> > 		} else {
> > 			ok = JK_FALSE;
> > 		}
> > 		tmp = map_get_string( map, JK_LOG_LEVEL_TAG, NULL );
> > 		if(tmp) {
> > 			log_level = jk_parse_log_level(tmp);
> > 		} else {
> > 			ok = JK_FALSE;
> > 		}
> > 		tmp = map_get_string( map, EXTENSION_URI_TAG, NULL );
> > 		if(tmp) {
> > 			strcpy(extension_uri, tmp);
> > 		} else {
> > 			ok = JK_FALSE;
> > 		}
> > 		tmp = map_get_string( map, JK_WORKER_FILE_TAG, NULL );
> > 		if(tmp) {
> > 			strcpy(worker_file, tmp);
> > 		} else {
> > 			ok = JK_FALSE;
> > 		}
> > 		tmp = map_get_string( map, JK_MOUNT_FILE_TAG, NULL );
> > 		if(tmp) {
> > 			strcpy(worker_mount_file, tmp);
> > 		} else {
> > 			ok = JK_FALSE;
> > 		}
> > 	
> > 	} else {
> 725c791
> < 
> ---
> > 	}
> 
>