--- parser3/src/targets/cgi/parser3.C 2012/06/15 09:30:01 1.261 +++ parser3/src/targets/cgi/parser3.C 2016/11/25 23:35:45 1.271 @@ -1,27 +1,26 @@ /** @file Parser: scripting and CGI main. - Copyright (c) 2001-2012 Art. Lebedev Studio (http://www.artlebedev.com) + Copyright (c) 2001-2015 Art. Lebedev Studio (http://www.artlebedev.com) Author: Alexandr Petrosian (http://paf.design.ru) */ -volatile const char * IDENT_PARSER3_C="$Id: parser3.C,v 1.261 2012/06/15 09:30:01 moko Exp $"; +volatile const char * IDENT_PARSER3_C="$Id: parser3.C,v 1.271 2016/11/25 23:35:45 moko Exp $"; #include "pa_config_includes.h" -#if _MSC_VER -# include -#endif - #include "pa_sapi.h" #include "classes.h" #include "pa_common.h" #include "pa_request.h" #include "pa_socks.h" #include "pa_version.h" +#include "pa_vconsole.h" -#ifdef WIN32 -# include +#ifdef _MSC_VER +#include +#include +#include #endif // defines @@ -42,7 +41,7 @@ volatile const char * IDENT_PARSER3_C="$ #define PARSER_LOG_ENV_NAME "CGI_PARSER_LOG" /// IIS refuses to read bigger chunks -const size_t READ_POST_CHUNK_SIZE=0x400*0x400; // 1M +const size_t READ_POST_CHUNK_SIZE=0x400*0x400; // 1M static const char* argv0; static const char* config_filespec_cstr=0; @@ -174,13 +173,10 @@ static void die_or_abort(const char* fmt // exit & try to produce core dump[unix] or invoke debugger[Win32 Debug version] if(write_core) { -#if defined(WIN32) && !defined(_DEBUG) +#ifdef WIN32 // IIS with abort failes to show STDOUT, it just barks "abnormal program termination" exit(1); #else -#if _MSC_VER - _asm int 3; -#endif abort(); #endif } @@ -214,14 +210,14 @@ void SAPI::abort(const char* fmt, ...) { // va_end(args); } -char* SAPI::get_env(SAPI_Info& , const char* name) { +char* SAPI::Env::get(SAPI_Info& , const char* name) { if(char *local=getenv(name)) return pa_strdup(local); else return 0; } -const char* const *SAPI::environment(SAPI_Info&) { +const char* const *SAPI::Env::get(SAPI_Info&) { #ifdef _MSC_VER extern char **_environ; return _environ; @@ -434,7 +430,7 @@ static void real_parser_handler(const ch if(!script_name) SAPI::die("CGI: illegal call (missing SCRIPT_NAME)"); - const char* env_request_uri=getenv("REQUEST_URI"); + const char* env_request_uri=request_info.strip_absolute_uri(getenv("REQUEST_URI")); if(env_request_uri) request_info.uri=env_request_uri; else @@ -617,7 +613,7 @@ static void call_real_parser_handler__su static void usage(const char* program) { printf( "Parser/%s\n" - "Copyright (c) 2001-2012 Art. Lebedev Studio (http://www.artlebedev.com)\n" + "Copyright (c) 2001-2015 Art. Lebedev Studio (http://www.artlebedev.com)\n" "Author: Alexandr Petrosian (http://paf.design.ru)\n" "\n" "Usage: %s [options] file\n" @@ -636,26 +632,14 @@ int main(int argc, char *argv[]) { #ifdef PA_DEBUG_CGI_ENTRY_EXIT log("main: entry"); #endif - //_asm int 3; - GC_java_finalization=0; #ifndef PA_DEBUG_DISABLE_GC + GC_java_finalization=0; // Dont collect unless explicitly requested // this is quicker (~30% ), but less memory-efficient(~8%) // so deciding for speed GC_dont_gc=1; #endif -/* - - Array test; - test+=3; - test+=4; -// int a=test.count(); - int i=0; - scanf("%d", &i); - int b=test.get(i); -// int b=test.get(10); - printf("%d", b);//test.count());*/ #ifdef SIGUSR1 if(signal(SIGUSR1, SIGUSR1_handler)==SIG_ERR) @@ -673,9 +657,6 @@ int main(int argc, char *argv[]) { } #endif -#ifdef _DEBUG - //_crtBreakAlloc=46; -#endif argv_all=argv; argv0=argv[0]; @@ -737,7 +718,7 @@ int main(int argc, char *argv[]) { args_skip=optind; } -#ifdef WIN32 +#ifdef _MSC_VER setmode(fileno(stdin), _O_BINARY); setmode(fileno(stdout), _O_BINARY); setmode(fileno(stderr), _O_BINARY); @@ -752,7 +733,6 @@ int main(int argc, char *argv[]) { // Set flag to the new value _CrtSetDbgFlag( tmpFlag ); -// _CrtSetBreakAlloc(61); _CrtSetReportMode( _CRT_WARN, _CRTDBG_MODE_FILE ); _CrtSetReportFile( _CRT_WARN, _CRTDBG_FILE_STDERR );