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]

Reply via email to