Author: timw
Date: Tue Sep 21 11:05:44 2010
New Revision: 999308

URL: http://svn.apache.org/viewvc?rev=999308&view=rev
Log:
Fix #49511 - track when we map a request into the ISAPI Redirector during 
filter notification, and only correct the IIS log information for individual 
requests within a multi-request session/connection that were actually mapped.

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=999308&r1=999307&r2=999308&view=diff
==============================================================================
--- tomcat/jk/trunk/native/iis/jk_isapi_plugin.c (original)
+++ tomcat/jk/trunk/native/iis/jk_isapi_plugin.c Tue Sep 21 11:05:44 2010
@@ -536,6 +536,8 @@ typedef struct isapi_log_data_t isapi_lo
 struct isapi_log_data_t {
     char uri[INTERNET_MAX_URL_LENGTH];
     char query[INTERNET_MAX_URL_LENGTH];
+    int request_matched;        /* Whether this request (within a 
multi-request connection)
+                                   was handled and needs the log values 
adjusted */
 };
 
 typedef struct iis_info_t iis_info_t;
@@ -1856,6 +1858,12 @@ DWORD WINAPI HttpFilterProc(PHTTP_FILTER
         SetHeader(pfc, WORKER_HEADER_INDEX, NULL);
         SetHeader(pfc, TOMCAT_TRANSLATE_HEADER_NAME, NULL);
 
+        // Suppress logging of original uri/query when we don't map a URL
+        if (pfc->pFilterContext) {
+            isapi_log_data_t *ld = (isapi_log_data_t *)pfc->pFilterContext;
+            ld->request_matched = JK_FALSE;
+        }
+
         if (!GetHeader(pfc, "url", (LPVOID) uri, (LPDWORD) & sz)) {
             jk_log(logger, JK_LOG_ERROR,
                    "error while getting the url");
@@ -2055,12 +2063,14 @@ DWORD WINAPI HttpFilterProc(PHTTP_FILTER
                     memset(ld, 0, sizeof(isapi_log_data_t));
                     StringCbCopy(ld->uri, INTERNET_MAX_URL_LENGTH, forwardURI);
                     StringCbCopy(ld->query, INTERNET_MAX_URL_LENGTH, squery);
+                    ld->request_matched = JK_TRUE;
                     pfc->pFilterContext = ld;
                 } else {
                     isapi_log_data_t *ld = (isapi_log_data_t 
*)pfc->pFilterContext;
                     memset(ld, 0, sizeof(isapi_log_data_t));
                     StringCbCopy(ld->uri, INTERNET_MAX_URL_LENGTH, forwardURI);
                     StringCbCopy(ld->query, INTERNET_MAX_URL_LENGTH, squery);
+                    ld->request_matched = JK_TRUE;
                 }
             }
             else {
@@ -2084,9 +2094,11 @@ DWORD WINAPI HttpFilterProc(PHTTP_FILTER
     else if (dwNotificationType == SF_NOTIFY_LOG) {
         if (pfc->pFilterContext) {
             isapi_log_data_t *ld = (isapi_log_data_t *)pfc->pFilterContext;
-            HTTP_FILTER_LOG  *pl = (HTTP_FILTER_LOG *)pvNotification;
-            pl->pszTarget = ld->uri;
-            pl->pszParameters = ld->query;
+            if (ld->request_matched) {
+                HTTP_FILTER_LOG  *pl = (HTTP_FILTER_LOG *)pvNotification;
+                pl->pszTarget = ld->uri;
+                pl->pszParameters = ld->query;
+            }
         }
     }
     return SF_STATUS_REQ_NEXT_NOTIFICATION;

Modified: tomcat/jk/trunk/xdocs/miscellaneous/changelog.xml
URL: 
http://svn.apache.org/viewvc/tomcat/jk/trunk/xdocs/miscellaneous/changelog.xml?rev=999308&r1=999307&r2=999308&view=diff
==============================================================================
--- tomcat/jk/trunk/xdocs/miscellaneous/changelog.xml (original)
+++ tomcat/jk/trunk/xdocs/miscellaneous/changelog.xml Tue Sep 21 11:05:44 2010
@@ -60,6 +60,10 @@
         Old behaviour can be enabled by defining USE_CGI_HEADERS. (timw)
       </fix>
       <fix>
+               <bug>49511</bug>: IIS: Do not override IIS log information when 
subsequent
+               requests on a keep-alive connection are not mapped into the 
ISAPI Redirector. (timw)
+      </fix>
+      <fix>
         Docs: Document SSLOptions needed for SSL information forwarding. 
(rjung)
       </fix>
       <update>



---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org
For additional commands, e-mail: dev-h...@tomcat.apache.org

Reply via email to