You are viewing a plain text version of this content. The canonical link for it is here.
Posted to cvs@httpd.apache.org by nd...@apache.org on 2004/04/05 19:34:48 UTC
cvs commit: httpd-2.0/modules/metadata mod_headers.c
nd 2004/04/05 10:34:48
Modified: . CHANGES
modules/metadata mod_headers.c
Log:
allow RequestHeader to be conditional
PR: 27951
Basically submitted by: vincent gryzor.com (Vincent Deffontaines)
Revision Changes Path
1.1447 +3 -0 httpd-2.0/CHANGES
Index: CHANGES
===================================================================
RCS file: /home/cvs/httpd-2.0/CHANGES,v
retrieving revision 1.1446
retrieving revision 1.1447
diff -u -u -r1.1446 -r1.1447
--- CHANGES 3 Apr 2004 23:22:18 -0000 1.1446
+++ CHANGES 5 Apr 2004 17:34:46 -0000 1.1447
@@ -2,6 +2,9 @@
[Remove entries to the current 2.0 section below, when backported]
+ *) Allow RequestHeader directives to be conditional. PR 27951.
+ [Vincent Deffontaines <vincent gryzor.com>, Andr� Malo]
+
*) Fix segfault in mod_expires, which occured under certain
circumstances. PR 28047. [Andr� Malo]
1.52 +11 -21 httpd-2.0/modules/metadata/mod_headers.c
Index: mod_headers.c
===================================================================
RCS file: /home/cvs/httpd-2.0/modules/metadata/mod_headers.c,v
retrieving revision 1.51
retrieving revision 1.52
diff -u -u -r1.51 -r1.52
--- mod_headers.c 1 Mar 2004 15:51:25 -0000 1.51
+++ mod_headers.c 5 Apr 2004 17:34:48 -0000 1.52
@@ -424,10 +424,6 @@
/* Handle the envclause on Header */
if (envclause != NULL) {
- if (inout == hdr_in) {
- return "error: envclause (env=...) only valid on "
- "Header and ErrorHeader directives";
- }
if (strncasecmp(envclause, "env=", 4) != 0) {
return "error: envclause should be in the form env=envar";
}
@@ -448,7 +444,7 @@
return parse_format_string(cmd->pool, new, value);
}
-/* Handle Header directive */
+/* Handle all (xxx)Header directives */
static const char *header_cmd(cmd_parms *cmd, void *indirconf,
const char *args)
{
@@ -464,19 +460,11 @@
hdr = ap_getword_conf(cmd->pool, &s);
val = *s ? ap_getword_conf(cmd->pool, &s) : NULL;
envclause = *s ? ap_getword_conf(cmd->pool, &s) : NULL;
- outbl = (cmd->info == NULL) ? hdr_out : hdr_err;
+ outbl = (hdr_inout)cmd->info;
return header_inout_cmd(outbl, cmd, indirconf, action, hdr, val, envclause);
}
-/* handle RequestHeader directive */
-static const char *request_header_cmd(cmd_parms *cmd, void *indirconf,
- const char *action, const char *inhdr,
- const char *value)
-{
- return header_inout_cmd(hdr_in, cmd, indirconf, action, inhdr, value, NULL);
-}
-
/*
* Process the tags in the format string. Tags may be format specifiers
* (%D, %t, etc.), whitespace or text strings. For each tag, run the handler
@@ -680,13 +668,15 @@
static const command_rec headers_cmds[] =
{
- AP_INIT_RAW_ARGS("Header", header_cmd, NULL, OR_FILEINFO,
- "an action, header and value followed by optional env clause"),
- AP_INIT_RAW_ARGS("ErrorHeader", header_cmd, "", OR_FILEINFO,
- "an action, header and value "
- "followed by optional env clause"),
- AP_INIT_TAKE23("RequestHeader", request_header_cmd, NULL, OR_FILEINFO,
- "an action, header and value"),
+ AP_INIT_RAW_ARGS("Header", header_cmd, (void *)hdr_out, OR_FILEINFO,
+ "an action, header and value followed by optional env "
+ "clause"),
+ AP_INIT_RAW_ARGS("RequestHeader", header_cmd, (void *)hdr_in, OR_FILEINFO,
+ "an action, header and value followed by optional env "
+ "clause"),
+ AP_INIT_RAW_ARGS("ErrorHeader", header_cmd, (void *)hdr_err, OR_FILEINFO,
+ "an action, header and value followed by optional env "
+ "clause"),
{NULL}
};