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]