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