Return-Path: X-Original-To: apmail-httpd-cvs-archive@www.apache.org Delivered-To: apmail-httpd-cvs-archive@www.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id CC99017C06 for ; Fri, 30 Jan 2015 17:17:12 +0000 (UTC) Received: (qmail 45582 invoked by uid 500); 30 Jan 2015 17:17:13 -0000 Delivered-To: apmail-httpd-cvs-archive@httpd.apache.org Received: (qmail 45514 invoked by uid 500); 30 Jan 2015 17:17:13 -0000 Mailing-List: contact cvs-help@httpd.apache.org; run by ezmlm Precedence: bulk Reply-To: dev@httpd.apache.org list-help: list-unsubscribe: List-Post: List-Id: Delivered-To: mailing list cvs@httpd.apache.org Received: (qmail 45504 invoked by uid 99); 30 Jan 2015 17:17:13 -0000 Received: from eris.apache.org (HELO hades.apache.org) (140.211.11.105) by apache.org (qpsmtpd/0.29) with ESMTP; Fri, 30 Jan 2015 17:17:13 +0000 Received: from hades.apache.org (localhost [127.0.0.1]) by hades.apache.org (ASF Mail Server at hades.apache.org) with ESMTP id 2E2C1AC0024; Fri, 30 Jan 2015 17:17:13 +0000 (UTC) Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: svn commit: r1656063 - in /httpd/httpd/trunk: CHANGES docs/manual/mod/core.xml server/core.c Date: Fri, 30 Jan 2015 17:17:12 -0000 To: cvs@httpd.apache.org From: covener@apache.org X-Mailer: svnmailer-1.0.9 Message-Id: <20150130171713.2E2C1AC0024@hades.apache.org> Author: covener Date: Fri Jan 30 17:17:12 2015 New Revision: 1656063 URL: http://svn.apache.org/r1656063 Log: Block Define/Undefine from per-directory context, because they will fire while the block is read not when it evaluates for a given request. Modified: httpd/httpd/trunk/CHANGES httpd/httpd/trunk/docs/manual/mod/core.xml httpd/httpd/trunk/server/core.c Modified: httpd/httpd/trunk/CHANGES URL: http://svn.apache.org/viewvc/httpd/httpd/trunk/CHANGES?rev=1656063&r1=1656062&r2=1656063&view=diff ============================================================================== --- httpd/httpd/trunk/CHANGES [utf-8] (original) +++ httpd/httpd/trunk/CHANGES [utf-8] Fri Jan 30 17:17:12 2015 @@ -1,6 +1,11 @@ -*- coding: utf-8 -*- Changes with Apache 2.5.0 + *) core: Define and UnDefine are no longer permitted in + directory context. Previously they would always be evaulated + as the configuration was read without regard for the directory + context. [Eric Covener] + *) config: For directives that do not expect any arguments, enforce that none are specified in the configuration file. [Joachim Zobel , Eric Covener] Modified: httpd/httpd/trunk/docs/manual/mod/core.xml URL: http://svn.apache.org/viewvc/httpd/httpd/trunk/docs/manual/mod/core.xml?rev=1656063&r1=1656062&r2=1656063&view=diff ============================================================================== --- httpd/httpd/trunk/docs/manual/mod/core.xml (original) +++ httpd/httpd/trunk/docs/manual/mod/core.xml Fri Jan 30 17:17:12 2015 @@ -717,7 +717,7 @@ which no other media type configuration Define a variable Define parameter-name [parameter-value] server configvirtual host -directory +

In its one parameter form, Define is equivalent @@ -746,6 +746,10 @@ DocumentRoot /var/www/${servername}/htdo

Variable names may not contain colon ":" characters, to avoid clashes with RewriteMap's syntax.

+ +

While this directive is supported in virtual host context, + the changes it makes are visible to any later configuration + directives, beyond any enclosing virtual host

@@ -4291,7 +4295,8 @@ certain events before failing a request< UnDefine Undefine the existence of a variable UnDefine parameter-name -server config +server config +virtual host

Undoes the effect of a Define or @@ -4299,6 +4304,9 @@ certain events before failing a request<

This directive can be used to toggle the use of IfDefine sections without needing to alter -D arguments in any startup scripts.

+

While this directive is supported in virtual host context, + the changes it makes are visible to any later configuration + directives, beyond any enclosing virtual host

Modified: httpd/httpd/trunk/server/core.c URL: http://svn.apache.org/viewvc/httpd/httpd/trunk/server/core.c?rev=1656063&r1=1656062&r2=1656063&view=diff ============================================================================== --- httpd/httpd/trunk/server/core.c (original) +++ httpd/httpd/trunk/server/core.c Fri Jan 30 17:17:12 2015 @@ -1332,9 +1332,10 @@ static void init_config_defines(apr_pool static const char *set_define(cmd_parms *cmd, void *dummy, const char *name, const char *value) { - const char *err = ap_check_cmd_context(cmd, NOT_IN_HTACCESS); - if (err) - return err; + if (cmd->parent && strcasecmp(cmd->parent->directive, "pool, "Define is not valid in ", cmd->parent->directive, " context", NULL); + } + if (ap_strchr_c(name, ':') != NULL) return "Variable name must not contain ':'"; @@ -1358,9 +1359,10 @@ static const char *unset_define(cmd_parm { int i; char **defines; - const char *err = ap_check_cmd_context(cmd, NOT_IN_HTACCESS); - if (err) - return err; + if (cmd->parent && strcasecmp(cmd->parent->directive, "pool, "Define is not valid in ", cmd->parent->directive, " context", NULL); + } + if (ap_strchr_c(name, ':') != NULL) return "Variable name must not contain ':'"; @@ -4181,9 +4183,9 @@ AP_INIT_TAKE1("AddDefaultCharset", set_a "The name of the default charset to add to any Content-Type without one or 'Off' to disable"), AP_INIT_TAKE1("AcceptPathInfo", set_accept_path_info, NULL, OR_FILEINFO, "Set to on or off for PATH_INFO to be accepted by handlers, or default for the per-handler preference"), -AP_INIT_TAKE12("Define", set_define, NULL, EXEC_ON_READ|ACCESS_CONF|RSRC_CONF, +AP_INIT_TAKE12("Define", set_define, NULL, EXEC_ON_READ|RSRC_CONF, "Define a variable, optionally to a value. Same as passing -D to the command line."), -AP_INIT_TAKE1("UnDefine", unset_define, NULL, EXEC_ON_READ|ACCESS_CONF|RSRC_CONF, +AP_INIT_TAKE1("UnDefine", unset_define, NULL, EXEC_ON_READ|RSRC_CONF, "Undefine the existence of a variable. Undo a Define."), AP_INIT_RAW_ARGS("Error", generate_message, (void*) APLOG_ERR, OR_ALL, "Generate error message from within configuration."),