From: Joe Orton Date: Fri, 8 Apr 2011 13:13:36 +0000 (+0000) Subject: * server/util_expr_eval.c (req_table_func): Try r->err_headers_out for X-Git-Tag: 2.3.12~74 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=e8715105b8e3cf3e5946e7da3adc5749434f194d;p=thirdparty%2Fapache%2Fhttpd.git * server/util_expr_eval.c (req_table_func): Try r->err_headers_out for response headers if given header is not found in r->headers_out (e.g. as with non-standard headers from CGI scripts). git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1090234 13f79535-47bb-0310-9956-ffa450edef68 --- diff --git a/server/util_expr_eval.c b/server/util_expr_eval.c index 06d0b8fc115..9a1c80d13c6 100644 --- a/server/util_expr_eval.c +++ b/server/util_expr_eval.c @@ -761,8 +761,14 @@ static const char *req_table_func(ap_expr_eval_ctx_t *ctx, const void *data, if (!ctx->r) return ""; - if (name[2] == 's') /* resp */ - t = ctx->r->headers_out; + if (name[2] == 's') { /* resp */ + /* Try r->headers_out first, fall back on err_headers_out. */ + const char *v = apr_table_get(ctx->r->headers_out, arg); + if (v) { + return v; + } + t = ctx->r->err_headers_out; + } else if (name[0] == 'n') /* notes */ t = ctx->r->notes; else if (name[3] == 'e') /* reqenv */