mturk 2005/09/14 03:52:44
Modified: jk/native/iis jk_isapi_plugin.c
Log:
Fix patch 35298. The patch was lacking the HTTP_ prefix headers
with dll instance postfix. Also the postfix is bogus if there is underscore
between header names. Probably the IIS issue.
Revision Changes Path
1.53 +29 -21 jakarta-tomcat-connectors/jk/native/iis/jk_isapi_plugin.c
Index: jk_isapi_plugin.c
===================================================================
RCS file:
/home/cvs/jakarta-tomcat-connectors/jk/native/iis/jk_isapi_plugin.c,v
retrieving revision 1.52
retrieving revision 1.53
diff -u -r1.52 -r1.53
--- jk_isapi_plugin.c 12 Sep 2005 14:10:51 -0000 1.52
+++ jk_isapi_plugin.c 14 Sep 2005 10:52:43 -0000 1.53
@@ -51,26 +51,25 @@
* 3. The contents of the Translate header, if any
*
*/
-#define URI_HEADER_NAME_BASE ("TOMCATURI")
-#define QUERY_HEADER_NAME_BASE ("TOMCATQUERY")
-#define WORKER_HEADER_NAME_BASE ("TOMCATWORKER")
+#define URI_HEADER_NAME_BASE ("TOMCATURI")
+#define QUERY_HEADER_NAME_BASE ("TOMCATQUERY")
+#define WORKER_HEADER_NAME_BASE ("TOMCATWORKER")
#define TOMCAT_TRANSLATE_HEADER_NAME_BASE ("TOMCATTRANSLATE")
+#define CONTENT_LENGTH ("CONTENT_LENGTH:")
+/* The template used to construct our unique headers
+ * from the base name and module instance
+ */
+#define HEADER_TEMPLATE ("%s%p:")
+#define HTTP_HEADER_TEMPLATE ("HTTP_%s%p")
static char URI_HEADER_NAME[_MAX_FNAME];
static char QUERY_HEADER_NAME[_MAX_FNAME];
static char WORKER_HEADER_NAME[_MAX_FNAME];
static char TOMCAT_TRANSLATE_HEADER_NAME[_MAX_FNAME];
-/* The template used to construct our unique headers
- * from the base name and module instance
- */
-#define HEADER_TEMPLATE ("%s_%p:")
-
-#define CONTENT_LENGTH ("CONTENT_LENGTH")
-
-#define HTTP_URI_HEADER_NAME ("HTTP_TOMCATURI")
-#define HTTP_QUERY_HEADER_NAME ("HTTP_TOMCATQUERY")
-#define HTTP_WORKER_HEADER_NAME ("HTTP_TOMCATWORKER")
+static char HTTP_URI_HEADER_NAME[_MAX_FNAME];
+static char HTTP_QUERY_HEADER_NAME[_MAX_FNAME];
+static char HTTP_WORKER_HEADER_NAME[_MAX_FNAME];
#define REGISTRY_LOCATION ("Software\\Apache Software
Foundation\\Jakarta Isapi Redirector\\1.0")
#define EXTENSION_URI_TAG ("extension_uri")
@@ -133,7 +132,7 @@
static int iis5 = -1;
static jk_uri_worker_map_t *uw_map = NULL;
-static jk_map_t *wp_map = NULL; /* worker_properties */
+static jk_map_t *workers_map = NULL;
static jk_logger_t *logger = NULL;
static char *SERVER_NAME = "SERVER_NAME";
static char *SERVER_SOFTWARE = "SERVER_SOFTWARE";
@@ -1071,9 +1070,9 @@
uri_worker_map_free(&uw_map, logger);
is_mapread = JK_FALSE;
}
- memset(&worker_env, 0, sizeof(worker_env));
- if (wp_map) {
- jk_map_free(&wp_map);
+ if (workers_map) {
+ jk_map_free(&workers_map);
+ workers_map = NULL;
}
wc_close(logger);
if (logger) {
@@ -1111,6 +1110,11 @@
sprintf(QUERY_HEADER_NAME, HEADER_TEMPLATE, QUERY_HEADER_NAME_BASE,
hInst);
sprintf(WORKER_HEADER_NAME, HEADER_TEMPLATE,
WORKER_HEADER_NAME_BASE, hInst);
sprintf(TOMCAT_TRANSLATE_HEADER_NAME, HEADER_TEMPLATE,
TOMCAT_TRANSLATE_HEADER_NAME_BASE, hInst);
+
+ sprintf(HTTP_URI_HEADER_NAME, HTTP_HEADER_TEMPLATE,
URI_HEADER_NAME_BASE, hInst);
+ sprintf(HTTP_QUERY_HEADER_NAME, HTTP_HEADER_TEMPLATE,
QUERY_HEADER_NAME_BASE, hInst);
+ sprintf(HTTP_WORKER_HEADER_NAME, HTTP_HEADER_TEMPLATE,
WORKER_HEADER_NAME_BASE, hInst);
+
break;
case DLL_PROCESS_DETACH:
__try {
@@ -1168,14 +1172,14 @@
}
if (rc) {
rc = JK_FALSE;
- if (jk_map_alloc(&wp_map)) {
- if (jk_map_read_properties(wp_map, worker_file, NULL)) {
+ if (jk_map_alloc(&workers_map)) {
+ if (jk_map_read_properties(workers_map, worker_file, NULL)) {
/* we add the URI->WORKER MAP since workers using AJP14 will
feed it */
worker_env.uri_to_worker = uw_map;
worker_env.server_name = serverName;
- if (wc_open(wp_map, &worker_env, logger)) {
+ if (wc_open(workers_map, &worker_env, logger)) {
rc = JK_TRUE;
}
}
@@ -1183,6 +1187,10 @@
jk_log(logger, JK_LOG_EMERG,
"Unable to read worker file %s.", worker_file);
}
+ if (rc != JK_TRUE) {
+ jk_map_free(&workers_map);
+ workers_map = NULL;
+ }
}
}
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]