--- parser3/src/targets/apache/mod_parser3_core.C 2024/11/09 15:38:21 1.38 +++ parser3/src/targets/apache/mod_parser3_core.C 2024/11/10 13:31:28 1.41 @@ -5,7 +5,7 @@ Parser: apache 1.3/2.X module, part, com Authors: Konstantin Morshnev , Alexandr Petrosian */ -volatile const char * IDENT_MOD_PARSER3_CORE_C="$Id: mod_parser3_core.C,v 1.38 2024/11/09 15:38:21 moko Exp $"; +volatile const char * IDENT_MOD_PARSER3_CORE_C="$Id: mod_parser3_core.C,v 1.41 2024/11/10 13:31:28 moko Exp $"; #include "pa_config_includes.h" @@ -78,12 +78,12 @@ void SAPI::die(const char* fmt, ...) { // va_end(args); } -void SAPI::send_error(SAPI_Info& info, const char *exception_cstr, const char *status){ +void SAPI::send_error(SAPI_Info& SAPI_info, const char *exception_cstr, const char *status){ // capitalized headers passed for preventing malloc during capitalization - add_header_attribute(info, HTTP_STATUS_CAPITALIZED, status); - add_header_attribute(info, HTTP_CONTENT_TYPE_CAPITALIZED, "text/plain"); - send_header(info); - send_body(info, exception_cstr, strlen(exception_cstr)); + add_header_attribute(SAPI_info, HTTP_STATUS_CAPITALIZED, status); + add_header_attribute(SAPI_info, HTTP_CONTENT_TYPE_CAPITALIZED, "text/plain"); + send_headers(SAPI_info); + send_body(SAPI_info, exception_cstr, strlen(exception_cstr)); } char* SAPI::Env::get(SAPI_Info& SAPI_info, const char* name) { @@ -161,12 +161,15 @@ void SAPI::add_header_attribute(SAPI_Inf pa_ap_pstrdup(SAPI_info.r->pool, dont_store_value)); } -void SAPI::send_header(SAPI_Info& SAPI_info) { +void SAPI::send_headers(SAPI_Info& SAPI_info) { pa_ap_hard_timeout("Send header", SAPI_info.r); pa_ap_send_http_header(SAPI_info.r); pa_ap_kill_timeout(SAPI_info.r); } +void SAPI::clear_headers(SAPI_Info&) { +} + size_t SAPI::send_body(SAPI_Info& SAPI_info, const void *buf, size_t size) { pa_ap_hard_timeout("Send body", SAPI_info.r); size = (size_t)pa_ap_rwrite(buf, size, SAPI_info.r); @@ -263,7 +266,7 @@ int pa_parser_handler(pa_request_rec *r, SAPI_info, dcfg); // successful finish - } catch(const Exception& e) { // exception in unhandled exception + } catch(const Exception& e) { // just in case // log it SAPI::log(SAPI_info, "%s", e.comment()); SAPI::send_error(SAPI_info, e.comment());