From b5985f2a1879eceb11711680465b3f3d9163aa63 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Andr=C3=A9=20Malo?= Date: Mon, 12 Jan 2004 21:19:58 +0000 Subject: [PATCH] allow unescaped errorlogs via compile time switch Submitted by: Geoffrey Young git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@102302 13f79535-47bb-0310-9956-ffa450edef68 --- CHANGES | 4 ++++ server/log.c | 22 +++++++++++++++++++--- 2 files changed, 23 insertions(+), 3 deletions(-) diff --git a/CHANGES b/CHANGES index e081c532bc..b7394cfc6c 100644 --- a/CHANGES +++ b/CHANGES @@ -2,6 +2,10 @@ Changes with Apache 2.1.0-dev [Remove entries to the current 2.0 section below, when backported] + *) Allow unescaped error logs via compile time switch + "-DAP_ERROR_LOG_UNESCAPED". + [Geoffrey Young , André Malo] + *) proxy_http fix: mod_proxy hangs when both KeepAlive and ProxyErrorOverride are enabled, and a non-200 response without a body is generated by the backend server. (e.g.: a client makes a diff --git a/server/log.c b/server/log.c index b8ae92e45e..9164db7ec4 100644 --- a/server/log.c +++ b/server/log.c @@ -402,7 +402,10 @@ static void log_error_core(const char *file, int line, int level, const request_rec *r, apr_pool_t *pool, const char *fmt, va_list args) { - char errstr[MAX_STRING_LEN], scratch[MAX_STRING_LEN]; + char errstr[MAX_STRING_LEN]; +#ifndef AP_ERROR_LOG_UNESCAPED + char scratch[MAX_STRING_LEN]; +#endif apr_size_t len, errstrlen; apr_file_t *logf = NULL; const char *referer; @@ -539,15 +542,28 @@ static void log_error_core(const char *file, int line, int level, } errstrlen = len; +#ifndef AP_ERROR_LOG_UNESCAPED if (apr_vsnprintf(scratch, MAX_STRING_LEN - len, fmt, args)) { len += ap_escape_errorlog_item(errstr + len, scratch, MAX_STRING_LEN - len); } +#else + len += apr_vsnprintf(errstr + len, MAX_STRING_LEN - len, fmt, args); +#endif if ( r && (referer = apr_table_get(r->headers_in, "Referer")) - && ap_escape_errorlog_item(scratch, referer, MAX_STRING_LEN - len)) { +#ifndef AP_ERROR_LOG_UNESCAPED + && ap_escape_errorlog_item(scratch, referer, MAX_STRING_LEN - len) +#endif + ) { len += apr_snprintf(errstr + len, MAX_STRING_LEN - len, - ", referer: %s", scratch); + ", referer: %s", +#ifndef AP_ERROR_LOG_UNESCAPED + scratch +#else + referer +#endif + ); } /* NULL if we are logging to syslog */ -- 2.40.0