--- parser3/src/targets/cgi/parser3.C 2003/11/06 09:56:17 1.220 +++ parser3/src/targets/cgi/parser3.C 2004/04/02 13:48:09 1.226 @@ -1,11 +1,11 @@ /** @file Parser: scripting and CGI main. - Copyright(c) 2001-2003 ArtLebedev Group (http://www.artlebedev.com) + Copyright(c) 2001-2004 ArtLebedev Group (http://www.artlebedev.com) Author: Alexandr Petrosian (http://paf.design.ru) */ -static const char* IDENT_PARSER3_C="$Date: 2003/11/06 09:56:17 $"; +static const char * const IDENT_PARSER3_C="$Date: 2004/04/02 13:48:09 $"; #include "pa_config_includes.h" @@ -20,8 +20,6 @@ static const char* IDENT_PARSER3_C="$Dat #include "pa_socks.h" #include "pa_version.h" - - #ifdef WIN32 # include # include "getopt.h" @@ -35,6 +33,7 @@ static const char* IDENT_PARSER3_C="$Dat #define REDIRECT_PREFIX "REDIRECT_" #define PARSER_CONFIG_ENV_NAME "CGI_PARSER_CONFIG" +#define PARSER_LOG_ENV_NAME "CGI_PARSER_LOG" /// IIS refuses to read bigger chunks const size_t READ_POST_CHUNK_SIZE=0x400*0x400; // 1M @@ -59,7 +58,15 @@ static void log(const char* fmt, va_list bool opened=false; FILE *f=0; - if(config_filespec_cstr) { + const char* log_by_env=getenv(PARSER_LOG_ENV_NAME); + if(!log_by_env) + log_by_env=getenv(REDIRECT_PREFIX PARSER_LOG_ENV_NAME); + if(log_by_env) { + f=fopen(log_by_env, "at"); + opened=f!=0; + } + + if(!opened && config_filespec_cstr) { char beside_config_path[MAX_STRING]; strncpy(beside_config_path, config_filespec_cstr, MAX_STRING-1); beside_config_path[MAX_STRING-1]=0; if(!( @@ -278,7 +285,7 @@ main workhorse static void real_parser_handler(const char* filespec_to_process, const char* request_method, bool header_only) { // init socks - pa_init_socks(); + pa_socks_init(); // init global variables pa_globals_init(); @@ -384,8 +391,7 @@ static void real_parser_handler(const ch SAPI::die("Execution canceled"); // prepare to process request - Request request(SAPI_info, - request_info, + Request request(SAPI_info, request_info, cgi ? String::Language(String::L_HTML|String::L_OPTIMIZE_BIT) : String::L_AS_IS, true /* status_allowed */); @@ -426,8 +432,11 @@ static void real_parser_handler(const ch // no request [prevent signal handlers from accessing invalid memory] ::request=0; + // finalize global variables + pa_globals_done(); + // - pa_done_socks(); + pa_socks_done(); } #if _MSC_VER && !defined(_DEBUG) @@ -494,7 +503,7 @@ static void call_real_parser_handler__do static void usage(const char* program) { printf( - "Parser/%s Copyright(c) 2001-2003 ArtLebedev Group (http://www.artlebedev.com)\n" + "Parser/%s Copyright(c) 2001-2004 ArtLebedev Group (http://www.artlebedev.com)\n" "Author: Alexandr Petrosian (http://paf.design.ru)\n" "\n" "Usage: %s [options] file\n" @@ -510,6 +519,7 @@ static void usage(const char* program) { } int main(int argc, char *argv[]) { + //_asm int 3; GC_java_finalization=0; #ifndef PA_DEBUG_DISABLE_GC