--- parser3/src/targets/apache/mod_parser3_core.C 2021/01/20 16:09:53 1.35 +++ parser3/src/targets/apache/mod_parser3_core.C 2024/11/09 15:38:21 1.38 @@ -1,11 +1,11 @@ /** @file Parser: apache 1.3/2.X module, part, compiled by parser3project. - Copyright (c) 2001-2020 Art. Lebedev Studio (http://www.artlebedev.com) - Author: Alexandr Petrosian (http://paf.design.ru) + Copyright (c) 2001-2024 Art. Lebedev Studio (http://www.artlebedev.com) + Authors: Konstantin Morshnev , Alexandr Petrosian */ -volatile const char * IDENT_MOD_PARSER3_CORE_C="$Id: mod_parser3_core.C,v 1.35 2021/01/20 16:09:53 moko Exp $"; +volatile const char * IDENT_MOD_PARSER3_CORE_C="$Id: mod_parser3_core.C,v 1.38 2024/11/09 15:38:21 moko Exp $"; #include "pa_config_includes.h" @@ -78,6 +78,14 @@ void SAPI::die(const char* fmt, ...) { // va_end(args); } +void SAPI::send_error(SAPI_Info& 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)); +} + char* SAPI::Env::get(SAPI_Info& SAPI_info, const char* name) { const char* dont_return_me=pa_ap_table_get(SAPI_info.r->subprocess_env, name); return dont_return_me?pa_strdup(dont_return_me):0;