--- parser3/src/main/pa_request.C 2003/02/06 16:05:23 1.245.2.15 +++ parser3/src/main/pa_request.C 2003/02/14 17:38:29 1.245.2.19 @@ -5,7 +5,7 @@ Author: Alexandr Petrosian (http://paf.design.ru) */ -static const char* IDENT_REQUEST_C="$Date: 2003/02/06 16:05:23 $"; +static const char* IDENT_REQUEST_C="$Date: 2003/02/14 17:38:29 $"; #include "pa_sapi.h" #include "pa_common.h" @@ -37,11 +37,13 @@ const char* ORIGINS_CONTENT_TYPE="text/p // defines for globals #define MAIN_METHOD_NAME "main" +#define AUTO_METHOD_NAME "auto" #define BODY_NAME "body" // globals StringPtr main_method_name(new String(MAIN_METHOD_NAME)); +StringPtr auto_method_name(new String(AUTO_METHOD_NAME)); StringPtr content_disposition_name(new String(CONTENT_DISPOSITION_NAME)); StringPtr content_disposition_value(new String(CONTENT_DISPOSITION_VALUE)); StringPtr content_disposition_filename_name(new String(CONTENT_DISPOSITION_FILENAME_NAME)); @@ -52,9 +54,7 @@ StringPtr body_name(new String(BODY_NAME #define CHARSETS_NAME "CHARSETS" #define MIME_TYPES_NAME "MIME-TYPES" #define ORIGINS_MODE_NAME "ORIGINS" -#define AUTO_FILE_NAME "auto.p" #define CONF_METHOD_NAME "conf" -#define AUTO_METHOD_NAME "auto" #define POST_PROCESS_METHOD_NAME "postprocess" #define DOWNLOAD_NAME "download" #define CLASS_PATH_NAME "CLASS_PATH" @@ -66,7 +66,6 @@ static StringPtr main_class_name(new Str static StringPtr mime_types_name(new String(MIME_TYPES_NAME)); static StringPtr origins_mode_name(new String(ORIGINS_MODE_NAME)); static StringPtr conf_method_name(new String(CONF_METHOD_NAME)); -static StringPtr auto_method_name(new String(AUTO_METHOD_NAME)); static StringPtr post_process_method_name(new String(POST_PROCESS_METHOD_NAME)); static StringPtr download_name(new String(DOWNLOAD_NAME)); static StringPtr class_path_name(new String(CLASS_PATH_NAME)); @@ -76,7 +75,7 @@ static StringPtr class_path_name(new Str // op.C VStateless_classPtr VClassMAIN_create(); // op.C -VHashPtr exception2vhash(const Exception& e); +VHashPtr exception2vhash(Pool& pool, const Exception& e); void lock_system_class(HashStringValue::key_type key, HashStringValue::value_type value, int) { if(VStateless_class *value_class=value->get_class()) @@ -84,8 +83,9 @@ void lock_system_class(HashStringValue:: } // -Request::Request(SAPI_Info& asapi_info, Request_info& arequest_info, +Request::Request(Pool& apool, SAPI_Info& asapi_info, Request_info& arequest_info, uchar adefault_lang, bool status_allowed): + fpool(apool), sapi_info(asapi_info), request_info(arequest_info), fdefault_lang(adefault_lang), flang(adefault_lang), @@ -403,7 +403,7 @@ t[9]-t[3] frame.set_self(main_class); // $exception - frame.store_param(exception2vhash(e)); + frame.store_param(exception2vhash(pool(), e)); // $stack[^table::set{name origin}] Table::columns_type stack_trace_columns; *stack_trace_columns+=StringPtr(new String("name")); @@ -494,12 +494,12 @@ VStateless_classPtr Request::use_file(VS file_spec=StringPtr(0); if(ValuePtr element=main_class->get_element(class_path_name, *main_class, false)) { if(element->is_string()) { - file_spec=file_readable(absolute(element->as_string(&pool())), file_name); // found at class_path? + file_spec=file_readable(*absolute(element->as_string(&pool())), *file_name); // found at class_path? } else if(Table *table=element->get_table()) { int size=table->count(); for(int i=size; i--; ) { StringPtr path=(*table->get(i))[0]; - if(file_spec=file_readable(absolute(path), file_name)) + if(file_spec=file_readable(*absolute(path), *file_name)) break; // found along class_path } } else