--- parser3/src/targets/isapi/parser3isapi.C 2004/07/30 10:55:22 1.92 +++ parser3/src/targets/isapi/parser3isapi.C 2009/10/06 11:41:02 1.103 @@ -1,11 +1,11 @@ /** @file Parser: IIS extension. - Copyright (c) 2000,2001-2004 ArtLebedev Group (http://www.artlebedev.com) + Copyright (c) 2000,2001-2005 ArtLebedev Group (http://www.artlebedev.com) Author: Alexandr Petrosian (http://paf.design.ru) */ -static const char * const IDENT_PARSER3ISAPI_C="$Date: 2004/07/30 10:55:22 $"; +static const char * const IDENT_PARSER3ISAPI_C="$Date: 2009/10/06 11:41:02 $"; #ifndef _MSC_VER # error compile ISAPI module with MSVC [no urge for now to make it autoconf-ed (PAF)] @@ -19,6 +19,7 @@ static const char * const IDENT_PARSER3I #include "pa_version.h" #include "pa_socks.h" +#define WINVER 0x0400 #include #include @@ -76,12 +77,12 @@ public: void SAPI::log(SAPI_Info& SAPI_info, const char* fmt, ...) { va_list args; va_start(args,fmt); - char buf[MAX_STRING]; + char buf[MAX_LOG_STRING]; const char* prefix="PARSER_ERROR:"; strcpy(buf, prefix); char *start=buf+strlen(prefix); - DWORD size=vsnprintf(start, MAX_STRING-strlen(prefix), fmt, args); - remove_crlf(start, start+size); + DWORD size=vsnprintf(start, MAX_LOG_STRING-strlen(prefix), fmt, args); + size=remove_crlf(start, start+size); SAPI_info.lpECB->ServerSupportFunction(SAPI_info.lpECB->ConnID, HSE_APPEND_LOG_PARAMETER, buf, &size, 0); @@ -211,10 +212,10 @@ void SAPI::add_header_attribute(SAPI_Inf if(strcasecmp(dont_store_key, "location")==0) SAPI_info.http_response_code=302; - if(strcasecmp(dont_store_key, "status")==0) + if(strcasecmp(dont_store_key, HTTP_STATUS)==0) SAPI_info.http_response_code=atoi(dont_store_value); else - (*SAPI_info.header) << pa_strdup(dont_store_key) << ": " << pa_strdup(dont_store_value) << "\r\n"; + (*SAPI_info.header) << capitalize(dont_store_key) << ": " << pa_strdup(dont_store_value) << "\r\n"; } /// @todo intelligent cache-control @@ -273,7 +274,7 @@ static bool parser_init() { // successful finish return true; - } catch(const Exception& e) { // global problem + } catch(.../*const Exception& e*/) { // global problem //const char* body=e.comment(); // unsuccessful finish @@ -317,7 +318,6 @@ BOOL WINAPI TerminateExtension( @test PARSER_VERSION from outside */ - void real_parser_handler(SAPI_Info& SAPI_info, bool header_only) { // collect garbage from prev request #ifndef PA_DEBUG_DISABLE_GC @@ -348,7 +348,7 @@ void real_parser_handler(SAPI_Info& SAPI strncpy(buf, filespec_to_process, len); buf[len]=0; request_info.document_root=buf; } else - throw Exception("parser.runtime", + throw Exception(PARSER_RUNTIME, 0, "ISAPI: no PATH_INFO defined (in reinventing DOCUMENT_ROOT)"); @@ -476,8 +476,8 @@ DWORD WINAPI HttpExtensionProc(LPEXTENSI // prepare header // not using SAPI func wich allocates on pool char header_buf[MAX_STRING]; int header_len=snprintf(header_buf, MAX_STRING, - "content-type: text/plain\r\n" - "content-length: %u\r\n" + HTTP_CONTENT_TYPE_CAPITALIZED ": text/plain\r\n" + HTTP_CONTENT_LENGTH_CAPITALIZED ": %u\r\n" // "expires: Fri, 23 Mar 2001 09:32:23 GMT\r\n" "\r\n", content_length); @@ -509,8 +509,8 @@ DWORD WINAPI HttpExtensionProc(LPEXTENSI // prepare header // not using SAPI func wich allocates on pool char header_buf[MAX_STRING]; int header_len=snprintf(header_buf, MAX_STRING, - "content-type: text/plain\r\n" - "content-length: %u\r\n" + HTTP_CONTENT_TYPE_CAPITALIZED ": text/plain\r\n" + HTTP_CONTENT_LENGTH_CAPITALIZED ": %u\r\n" "expires: Fri, 23 Mar 2001 09:32:23 GMT\r\n" "\r\n", content_length);