--- parser3/src/main/pa_request.C 2001/03/24 10:54:46 1.73 +++ parser3/src/main/pa_request.C 2001/03/24 11:33:27 1.75 @@ -5,7 +5,7 @@ Author: Alexander Petrosyan (http://design.ru/paf) - $Id: pa_request.C,v 1.73 2001/03/24 10:54:46 paf Exp $ + $Id: pa_request.C,v 1.75 2001/03/24 11:33:27 paf Exp $ */ #include "pa_config_includes.h" @@ -24,6 +24,7 @@ /// $limits.post_max_size default 10M const size_t MAX_POST_SIZE_DEFAULT=10*0x400*400; +const char *DEFAULT_CONTENT_TYPE="text/html"; // Request::Request(Pool& apool, @@ -39,7 +40,7 @@ Request::Request(Pool& apool, fclasses(apool), fdefault_lang(adefault_lang), flang(adefault_lang), info(ainfo), - fdefault_content_type(0), + default_content_type(0), used_files(apool) { // root superclass, @@ -161,7 +162,11 @@ void Request::core(const char *root_auto // $MAIN:defaults Value *defaults=main_class?main_class->get_element(*defaults_name):0; - fdefault_content_type=defaults?defaults->get_element(*content_type_name):0; + // value must be allocated on request's pool for that pool used on + // meaning constructing @see attributed_meaning_to_string + default_content_type=defaults? + defaults->get_element(*content_type_name) + :NEW VString(*NEW String(pool(), DEFAULT_CONTENT_TYPE)); // execute @main[] const String *body_string=execute_method(*main_class, *main_method_name); @@ -391,9 +396,7 @@ void Request::output_result(const String cookie.output_result(); // set default content-type - if(!fdefault_content_type) - fdefault_content_type=NEW VString(*NEW String(pool(), "text/html")); - response.fields().put_dont_replace(*content_type_name, fdefault_content_type); + response.fields().put_dont_replace(*content_type_name, default_content_type); // prepare header: $response:fields without :body response.fields().for_each(add_header_attribute, /*excluding*/ body_name);