--- parser3/src/classes/op.C 2012/06/08 11:44:02 1.211 +++ parser3/src/classes/op.C 2013/08/21 12:11:13 1.215 @@ -18,7 +18,7 @@ #include "pa_vclass.h" #include "pa_charset.h" -volatile const char * IDENT_OP_C="$Id: op.C,v 1.211 2012/06/08 11:44:02 misha Exp $"; +volatile const char * IDENT_OP_C="$Id: op.C,v 1.215 2013/08/21 12:11:13 moko Exp $"; // limits @@ -145,7 +145,7 @@ static void _taint(Request& r, MethodPar static void _apply_taint(Request& r, MethodParams& params) { String::Language lang=params.count()==1 ? String::L_AS_IS : get_untaint_lang(params.as_string(0, "lang must be string")); const String &sbody=params.as_string(params.count()-1, "body must be string"); - String::Body result_body=sbody.cstr_to_string_body_untaint(lang, 0, &r.charsets); + String::Body result_body=sbody.cstr_to_string_body_untaint(lang, r.connection(false), &r.charsets); r.write_pass_lang(*new String(result_body, String::L_AS_IS)); } @@ -378,9 +378,6 @@ static void _eval(Request& r, MethodPara } static void _connect(Request& r, MethodParams& params) { -#ifdef RESOURCES_DEBUG -struct timeval mt[2]; -#endif Value& url=params.as_no_junction(0, "url must not be code"); Value& body_code=params.as_junction(1, "body must be code"); @@ -391,27 +388,14 @@ struct timeval mt[2]; } } -#ifdef RESOURCES_DEBUG -//measure:before -gettimeofday(&mt[0],NULL); -#endif // connect SQL_Connection* connection=SQL_driver_manager->get_connection(url.as_string(), protocol2driver_and_client, r.charsets.source().NAME().cstr(), r.request_info.document_root); -#ifdef RESOURCES_DEBUG -//measure:after connect -gettimeofday(&mt[1],NULL); - -double t[2]; -for(int i=0;i<2;i++) - t[i]=mt[i].tv_sec+mt[i].tv_usec/1000000.0; - -r.sql_connect_time+=t[1]-t[0]; -#endif Temp_connection temp_connection(r, connection); + // execute body try { r.process_write(body_code); @@ -451,8 +435,7 @@ public: #endif static void _switch(Request& r, MethodParams& params) { Switch_data* data=new Switch_data(r, r.process_to_value(params[0])); - Temp_hash_value - switch_data_setter(r.classes_conf, switch_data_name, data); + Temp_hash_value, void*> switch_data_setter(&r.classes_conf, switch_data_name, data); Value& cases_code=params.as_junction(1, "switch cases must be code"); // execution of found ^case[...]{code} must be in context of ^switch[...]{code} @@ -763,8 +746,7 @@ static void _cache(Request& r, MethodPar Cache_scope scope={as_expires(r, params, 1, now), 0}; - Temp_hash_value - cache_scope_setter(r.classes_conf, cache_data_name, &scope); + Temp_hash_value, void*> cache_scope_setter(&r.classes_conf, cache_data_name, &scope); Value& body_code=params.as_junction(2, "body_code must be code"); Value* catch_code=0; if(params.count()>3)