Author: timw Date: Thu Aug 18 01:54:31 2011 New Revision: 1158991 URL: http://svn.apache.org/viewvc?rev=1158991&view=rev Log: Use the DLL handle to make the shared memory file name used by the ISAPI Redirector unique for each DLL - the redirector supports multiple instances per website, and without this multiple redirectors could access the same shared memory file, corrupting the contents (evident when LB workers are used on IIS 7).
Modified: tomcat/jk/trunk/native/iis/jk_isapi_plugin.c tomcat/jk/trunk/xdocs/miscellaneous/changelog.xml Modified: tomcat/jk/trunk/native/iis/jk_isapi_plugin.c URL: http://svn.apache.org/viewvc/tomcat/jk/trunk/native/iis/jk_isapi_plugin.c?rev=1158991&r1=1158990&r2=1158991&view=diff ============================================================================== --- tomcat/jk/trunk/native/iis/jk_isapi_plugin.c (original) +++ tomcat/jk/trunk/native/iis/jk_isapi_plugin.c Thu Aug 18 01:54:31 2011 @@ -108,6 +108,9 @@ static char HTTP_QUERY_HEADER_NAME[MAX_P static char HTTP_WORKER_HEADER_NAME[MAX_PATH]; static char HTTP_WORKER_HEADER_INDEX[MAX_PATH]; +/* DLL Handle - used to unique shared memory file */ +static char DLL_INSTANCE_ID[MAX_PATH]; + #define REGISTRY_LOCATION ("Software\\Apache Software Foundation\\Jakarta Isapi Redirector\\1.0") #define W3SVC_REGISTRY_KEY ("SYSTEM\\CurrentControlSet\\Services\\W3SVC\\Parameters") #define EXTENSION_URI_TAG ("extension_uri") @@ -2402,6 +2405,8 @@ BOOL WINAPI DllMain(HINSTANCE hInst, StringCbPrintf(HTTP_WORKER_HEADER_NAME, MAX_PATH, HTTP_HEADER_TEMPLATE, WORKER_HEADER_NAME_BASE, hInst); StringCbPrintf(HTTP_WORKER_HEADER_INDEX, MAX_PATH, HTTP_HEADER_TEMPLATE, WORKER_HEADER_INDEX_BASE, hInst); + StringCbPrintf(DLL_INSTANCE_ID, MAX_PATH, "%p", hInst); + JK_INIT_CS(&init_cs, rc); JK_INIT_CS(&log_cs, rc); @@ -2601,6 +2606,9 @@ static int init_jk(char *serverName) jk_log(logger, JK_LOG_INFO, "Starting %s", (FULL_VERSION_STRING)); + StringCbCat(shm_name, MAX_PATH, "_"); + StringCbCat(shm_name, MAX_PATH, DLL_INSTANCE_ID); + if (*serverName) { size_t i; StringCbCat(shm_name, MAX_PATH, "_"); Modified: tomcat/jk/trunk/xdocs/miscellaneous/changelog.xml URL: http://svn.apache.org/viewvc/tomcat/jk/trunk/xdocs/miscellaneous/changelog.xml?rev=1158991&r1=1158990&r2=1158991&view=diff ============================================================================== --- tomcat/jk/trunk/xdocs/miscellaneous/changelog.xml (original) +++ tomcat/jk/trunk/xdocs/miscellaneous/changelog.xml Thu Aug 18 01:54:31 2011 @@ -40,6 +40,19 @@ new documentation project for JK was started. </p> </section> +<section name="Changes between 1.2.32 and 1.2.33"> + <br /> + <subsection name="Native"> + <changelog> + <fix> + IIS: Made the shared memory file name used by the ISAPI Redirector + unique for each redirector DLL instance. Avoids issues caused by + shared memory being corrupted by other redirectors on the same site. + (timw) + </fix> + </changelog> + </subsection> +</section> <section name="Changes between 1.2.31 and 1.2.32"> <br /> <subsection name="Native"> --------------------------------------------------------------------- To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org