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: [email protected]
For additional commands, e-mail: [email protected]