--- parser3/src/targets/isapi/parser3isapi.C 2001/03/23 14:03:29 1.12 +++ parser3/src/targets/isapi/parser3isapi.C 2001/03/24 09:24:46 1.14 @@ -11,6 +11,7 @@ #include "pa_globals.h" #include "pa_request.h" #include "pa_version.h" +#include "pool_storage.h" #define MAX_STATUS_LENGTH sizeof("xxxx LONGEST STATUS DESCRIPTION") @@ -145,7 +146,7 @@ static void parser_init() { return; globals_inited=true; - static Pool pool; // global pool + static Pool pool(0); // global pool PTRY { // init global variables pa_globals_init(pool); @@ -175,7 +176,8 @@ BOOL WINAPI GetExtensionVersion(HSE_VERS and not could-be-quickly-implemented if prepared. */ DWORD WINAPI HttpExtensionProc(LPEXTENSION_CONTROL_BLOCK lpECB) { - Pool pool; + Pool_storage pool_storage; + Pool pool(&pool_storage); bool header_only=strcasecmp(lpECB->lpszMethod, "HEAD")==0; PTRY { // global try @@ -189,8 +191,14 @@ DWORD WINAPI HttpExtensionProc(LPEXTENSI // Request info Request::Info request_info; - - const char *filespec_to_process=lpECB->lpszPathTranslated; + + size_t path_translated_buf_size=strlen(lpECB->lpszPathTranslated)+1; + char *filespec_to_process=(char *)malloc(path_translated_buf_size); + memcpy(filespec_to_process, lpECB->lpszPathTranslated, path_translated_buf_size); +#ifdef WIN32 + back_slashes_to_slashes(filespec_to_process); +#endif + if(const char *path_info=SAPI::get_env(pool, "PATH_INFO")) { // IIS size_t len=strlen(filespec_to_process)-strlen(path_info); @@ -239,7 +247,6 @@ DWORD WINAPI HttpExtensionProc(LPEXTENSI root_auto_path, false/*may be abcent*/, // /path/to/admin/auto.p 0/*parser_site_auto_path*/, false, // /path/to/site/auto.p header_only); - // successful finish } PCATCH(e) { // global problem // don't allocate anything on pool here: