--- parser3/src/main/pa_request.C 2001/05/10 13:10:34 1.129 +++ parser3/src/main/pa_request.C 2001/06/28 07:41:59 1.139 @@ -5,13 +5,15 @@ Author: Alexander Petrosyan (http://design.ru/paf) - $Id: pa_request.C,v 1.129 2001/05/10 13:10:34 paf Exp $ + $Id: pa_request.C,v 1.139 2001/06/28 07:41:59 parser Exp $ */ +static char *RCSId="$Id: pa_request.C,v 1.139 2001/06/28 07:41:59 parser Exp $"; #include "pa_config_includes.h" #include "pcre.h" #include "internal.h" +extern "C" unsigned char pcre_default_tables[]; // pcre/chartables.c #include "pa_sapi.h" #include "pa_common.h" @@ -54,7 +56,8 @@ Request::Request(Pool& apool, main_class(0), connection(0), pcre_tables(0), - classes_conf(apool) + classes_conf(apool), + anti_endless_execute_recoursion(0) { /// directly used // operators @@ -213,7 +216,7 @@ void Request::core(const char *root_auto // compile requested file String& spath_translated=*NEW String(pool()); - spath_translated.APPEND_CLEAN(info.path_translated, 0, "user-request", 0); + spath_translated.APPEND_TAINTED(info.path_translated, 0, "user-request", 0); main_class=use_file(spath_translated, true/*don't ignore read problem*/, main_class_name, main_class); @@ -265,7 +268,8 @@ void Request::core(const char *root_auto cstr2ctypes(pcre_tables, (const unsigned char *)"*+?{^.$|()[", ctype_meta); element2case(pcre_tables, *ctype, *ctype_lowercase_name); - } + } else + pcre_tables=pcre_default_tables; // filling form fields form.fill_fields(*this); @@ -289,7 +293,7 @@ void Request::core(const char *root_auto if(const Method *method=junction->method) { // preparing to pass parameters to // @postprocess[data] - VMethodFrame frame(pool(), *junction, false); + VMethodFrame frame(pool(), value->name(), *junction, false); frame.set_self(*main_class); frame.store_param(method->name, @@ -339,6 +343,8 @@ void Request::core(const char *root_auto // reset language to default flang=fdefault_lang; + if(flang==String::UL_USER_HTML) + flang=String::UL_HTML; // no _ & Co conversions in @exception[params] // reset response response.fields().clear(); @@ -354,7 +360,7 @@ void Request::core(const char *root_auto if(const Method *method=junction->method) { // preparing to pass parameters to // @exception[origin;source;comment;type;code] - VMethodFrame frame(pool(), *junction, false); + VMethodFrame frame(pool(), value->name(), *junction, false); frame.set_self(*main_class); const String *problem_source=e.problem_source(); @@ -374,7 +380,7 @@ void Request::core(const char *root_auto } #endif frame.store_param(method->name, - origin_value?origin_value:NEW VUnknown(pool())); + origin_value?origin_value:NEW VVoid(pool())); // source Value *source_value=0; @@ -385,7 +391,7 @@ void Request::core(const char *root_auto source_value=NEW VString(problem_source_copy); } frame.store_param(method->name, - source_value?source_value:NEW VUnknown(pool())); + source_value?source_value:NEW VVoid(pool())); // comment String *comment_value=NEW String(pool(), @@ -400,7 +406,7 @@ void Request::core(const char *root_auto type_value=NEW VString(type_copy.append(*e.type(), flang, true)); } else - type_value=NEW VUnknown(pool()); + type_value=NEW VVoid(pool()); frame.store_param(method->name, type_value); // code @@ -410,7 +416,7 @@ void Request::core(const char *root_auto code_value=NEW VString(code_copy.append(*e.code(), flang, true)); } else - code_value=NEW VUnknown(pool()); + code_value=NEW VVoid(pool()); frame.store_param(method->name, code_value); // future $response:body= @@ -597,4 +603,4 @@ const String& Request::mime_type_of(cons "MIME-TYPE table column elements must not be empty"); } return *NEW String(pool(), "application/octet-stream"); -} \ No newline at end of file +}