]> granicus.if.org Git - apache/commitdiff
* server/util_expr_eval.c (req_table_func): Try r->err_headers_out for
authorJoe Orton <jorton@apache.org>
Fri, 8 Apr 2011 13:13:36 +0000 (13:13 +0000)
committerJoe Orton <jorton@apache.org>
Fri, 8 Apr 2011 13:13:36 +0000 (13:13 +0000)
  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

server/util_expr_eval.c

index 06d0b8fc1152a85634e249c705f8d2a65d138e1b..9a1c80d13c61470f7ab986c8b9a8ed964bf0331f 100644 (file)
@@ -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 */