1
0
mirror of https://github.com/apache/httpd.git synced 2026-01-06 09:01:14 +03:00

ap_expr: Add req_novary function that allows HTTP header lookups

without adding the name to the Vary header 


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1403483 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
Stefan Fritsch
2012-10-29 20:34:18 +00:00
parent 65f5b0a05d
commit 6c8ea86f41
3 changed files with 14 additions and 2 deletions

View File

@@ -1,6 +1,9 @@
-*- coding: utf-8 -*-
Changes with Apache 2.5.0
*) ap_expr: Add req_novary function that allows HTTP header lookups
without adding the name to the Vary header. [Stefan Fritsch]
*) mod_ssl: Change default for SSLCompression to off, as compression
causes security issues in most setups. (The so called "CRIME" attack).
[Stefan Fritsch]

View File

@@ -142,7 +142,9 @@ listfunction ::= listfuncname "<strong>(</strong>" word "<strong>)</strong>"
<code>req</code> <a href="#functions">function</a>. Using these
variables may cause the header name to be added to the Vary
header of the HTTP response, except where otherwise noted for the
directive accepting the expression.</p>
directive accepting the expression. The <code>req_novary</code>
<a href="#functions">function</a> may be used to circumvent this
behavior.</p>
<table border="1" style="zebra">
<columnspec><column width="1"/></columnspec>
@@ -434,6 +436,9 @@ listfunction ::= listfuncname "<strong>(</strong>" word "<strong>)</strong>"
<tr><td><code>req</code>, <code>http</code></td>
<td>Get HTTP request header; header names may be added to the Vary
header, see below</td><td></td></tr>
<tr><td><code>req_novary</code></td>
<td>Same as <code>req</code>, but header names will not be added to the
Vary header</td><td></td></tr>
<tr><td><code>resp</code></td>
<td>Get HTTP response header</td><td></td></tr>
<tr><td><code>reqenv</code></td>
@@ -468,7 +473,8 @@ listfunction ::= listfuncname "<strong>(</strong>" word "<strong>)</strong>"
<p>When the functions <code>req</code> or <code>http</code> are used,
the header name will automatically be added to the Vary header of the
HTTP response, except where otherwise noted for the directive accepting
the expression.</p>
the expression. The <code>req_novary</code> function can be used to
prevent names from being added to the Vary header.</p>
<p>In addition to string-valued functions, there are also list-valued functions which
take one string as argument and return a wordlist, i.e. a list of strings. The wordlist

View File

@@ -968,6 +968,8 @@ static const char *req_table_func(ap_expr_eval_ctx_t *ctx, const void *data,
t = ctx->r->notes;
else if (name[3] == 'e') /* reqenv */
t = ctx->r->subprocess_env;
else if (name[3] == '_') /* req_novary */
t = ctx->r->headers_in;
else { /* req, http */
t = ctx->r->headers_in;
add_vary(ctx, arg);
@@ -1566,6 +1568,7 @@ static const struct expr_provider_single string_func_providers[] = {
{ req_table_func, "http", NULL, 0 },
{ req_table_func, "note", NULL, 0 },
{ req_table_func, "reqenv", NULL, 0 },
{ req_table_func, "req_novary", NULL, 0 },
{ tolower_func, "tolower", NULL, 0 },
{ toupper_func, "toupper", NULL, 0 },
{ escape_func, "escape", NULL, 0 },