Author: rjung
Date: Fri Oct 3 07:01:34 2008
New Revision: 701383
URL: http://svn.apache.org/viewvc?rev=701383&view=rev
Log:
Add define USE_RAW_HEADERS:
Possible Fix for BZ 38895: We are mixing up "_" and "-"
because we are using the CGI style IIS headers instead of
the original raw ones.
Needs a bit more testing, but looked good in January.
And: Finally a fix that shortens the code ...
Modified:
tomcat/connectors/trunk/jk/native/iis/jk_isapi_plugin.c
Modified: tomcat/connectors/trunk/jk/native/iis/jk_isapi_plugin.c
URL:
http://svn.apache.org/viewvc/tomcat/connectors/trunk/jk/native/iis/jk_isapi_plugin.c?rev=701383&r1=701382&r2=701383&view=diff
==============================================================================
--- tomcat/connectors/trunk/jk/native/iis/jk_isapi_plugin.c (original)
+++ tomcat/connectors/trunk/jk/native/iis/jk_isapi_plugin.c Fri Oct 3 07:01:34
2008
@@ -81,11 +81,17 @@
#define WORKER_HEADER_NAME_BASE ("TOMCATWORKER")
#define WORKER_HEADER_INDEX_BASE ("TOMCATWORKERIDX")
#define TOMCAT_TRANSLATE_HEADER_NAME_BASE ("TOMCATTRANSLATE")
+#ifdef USE_RAW_HEADERS
+#define CONTENT_LENGTH ("CONTENT-LENGTH:")
+#else
#define CONTENT_LENGTH ("CONTENT_LENGTH:")
+#endif
/* The HTTP_ form of the header for use in ExtensionProc */
#define HTTP_HEADER_PREFIX "HTTP_"
+#ifndef USE_RAW_HEADERS
#define HTTP_HEADER_PREFIX_LEN 5
+#endif
/* The template used to construct our unique headers
* from the base name and module instance
@@ -413,7 +419,9 @@
#define STRNULL_FOR_NULL(x) ((x) ? (x) : "(null)")
+#ifndef USE_RAW_HEADERS
#define JK_TOLOWER(x) ((char)tolower((BYTE)(x)))
+#endif
#define GET_SERVER_VARIABLE_VALUE(name, place) \
do { \
@@ -2835,7 +2843,11 @@
huge_buf_sz = MAX_PACKET_SIZE;
if (get_server_value(private_data->lpEcb,
+#ifdef USE_RAW_HEADERS
+ "ALL_RAW", huge_buf, huge_buf_sz)) {
+#else
"ALL_HTTP", huge_buf, huge_buf_sz)) {
+#endif
unsigned int cnt = 0;
char *tmp;
@@ -2868,8 +2880,10 @@
for (i = 0, tmp = headers_buf; *tmp && i < cnt;) {
int real_header = JK_TRUE;
+#ifndef USE_RAW_HEADERS
/* Skip the HTTP_ prefix to the beginning of the header name */
tmp += HTTP_HEADER_PREFIX_LEN;
+#endif
if (!strnicmp(tmp, URI_HEADER_NAME, strlen(URI_HEADER_NAME))
|| !strnicmp(tmp, WORKER_HEADER_NAME,
@@ -2900,12 +2914,14 @@
}
while (':' != *tmp && *tmp) {
+#ifndef USE_RAW_HEADERS
if ('_' == *tmp) {
*tmp = '-';
}
else {
*tmp = JK_TOLOWER(*tmp);
}
+#endif
tmp++;
}
*tmp = '\0';
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]