You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tomcat.apache.org by la...@apache.org on 2001/12/08 16:42:25 UTC

cvs commit: jakarta-tomcat-connectors/jk/native/iis jk_isapi_plugin.c

larryi      01/12/08 07:42:25

  Modified:    jk/native/iis jk_isapi_plugin.c
  Log:
  Fix bug where if uri is shortened by un-escaping or normalizing, the query
  string gets lost.
  
  Also converted some tabs to spaces.
  
  Revision  Changes    Path
  1.10      +40 -32    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.9
  retrieving revision 1.10
  diff -u -r1.9 -r1.10
  --- jk_isapi_plugin.c	2001/11/07 21:46:28	1.9
  +++ jk_isapi_plugin.c	2001/12/08 15:42:25	1.10
  @@ -60,7 +60,7 @@
    * Author:      Gal Shachor <sh...@il.ibm.com>                           *
    * Author:      Larry Isaacs <la...@apache.org>                           *
    * Author:      Ignacio J. Ortega <na...@apache.org>                       *
  - * Version:     $Revision: 1.9 $                                           *
  + * Version:     $Revision: 1.10 $                                           *
    ***************************************************************************/
   
   // This define is needed to include wincrypt,h, needed to get client certificates
  @@ -554,21 +554,21 @@
                               DWORD dwNotificationType, 
                               LPVOID pvNotification)
   {
  -	/* Initialise jk */
  -	if (is_inited && !is_mapread) {
  -		char serverName[MAX_SERVERNAME];
  -		DWORD dwLen = sizeof(serverName);
  -
  -		if (pfc->GetServerVariable(pfc, SERVER_NAME, serverName, &dwLen))
  -		{
  -			if (dwLen > 0) serverName[dwLen-1] = '\0';
  -			if (init_jk(serverName))
  -				is_mapread = JK_TRUE;
  -		}
  -		/* If we can't read the map we become dormant */
  -		if (!is_mapread)
  -			is_inited = JK_FALSE;
  -	}
  +    /* Initialise jk */
  +    if (is_inited && !is_mapread) {
  +        char serverName[MAX_SERVERNAME];
  +        DWORD dwLen = sizeof(serverName);
  +
  +        if (pfc->GetServerVariable(pfc, SERVER_NAME, serverName, &dwLen))
  +        {
  +            if (dwLen > 0) serverName[dwLen-1] = '\0';
  +            if (init_jk(serverName))
  +                is_mapread = JK_TRUE;
  +        }
  +        /* If we can't read the map we become dormant */
  +        if (!is_mapread)
  +            is_inited = JK_FALSE;
  +    }
   
       if (is_inited &&
          (SF_NOTIFY_PREPROC_HEADERS == dwNotificationType)) { 
  @@ -627,22 +627,30 @@
               }
               getparents(uri);
   
  -			if(p->GetHeader(pfc, "Host:", (LPVOID)Host, (LPDWORD)&szHost)) {
  -				strcat(snuri,Host);
  -				strcat(snuri,uri);
  -				jk_log(logger, JK_LOG_DEBUG, 
  -					   "In HttpFilterProc Virtual Host redirection of %s\n", 
  -					   snuri);
  -				worker = map_uri_to_worker(uw_map, snuri, logger);                
  -			}
  -			if (!worker) {
  -				jk_log(logger, JK_LOG_DEBUG, 
  -					   "In HttpFilterProc test Default redirection of %s\n", 
  -					   uri);
  -				worker = map_uri_to_worker(uw_map, uri, logger);
  -			}
  -            if (query) {
  -                *query = '?';
  +            if(p->GetHeader(pfc, "Host:", (LPVOID)Host, (LPDWORD)&szHost)) {
  +                strcat(snuri,Host);
  +                strcat(snuri,uri);
  +                jk_log(logger, JK_LOG_DEBUG, 
  +                       "In HttpFilterProc Virtual Host redirection of %s\n", 
  +                       snuri);
  +                worker = map_uri_to_worker(uw_map, snuri, logger);                
  +            }
  +            if (!worker) {
  +                jk_log(logger, JK_LOG_DEBUG, 
  +                       "In HttpFilterProc test Default redirection of %s\n", 
  +                       uri);
  +                worker = map_uri_to_worker(uw_map, uri, logger);
  +            }
  +            if(query) {
  +                char *querytmp = uri + strlen(uri);
  +                *querytmp++ = '?';
  +                query++;
  +                /* if uri was shortened, move the query characters */
  +                if (querytmp != query) {
  +                    while (*query != '\0')
  +                        *querytmp++ = *query++;
  +                    *querytmp = '\0';
  +                }
               }
   
               if (worker) {
  
  
  

--
To unsubscribe, e-mail:   <ma...@jakarta.apache.org>
For additional commands, e-mail: <ma...@jakarta.apache.org>