[PATCH] lib-httpd/apache.conf: check version only after mod_version loads
On Fri, Jun 21, 2013 at 02:08:49PM -0400, Brian Gernhardt wrote:
Show 10 quoted lines
> On Jun 21, 2013, at 2:03 PM, Jeff King <peff@peff.net> wrote:
>
> > IfVersion comes from mod_version. I assume that if it were not
> > loaded, apache would complain about the directive entirely. But it's
> > true that we don't load it until later. Maybe try moving the
> > IfVersion/Lockfile stanza down below the mod_version LoadModule
> > line?
>
> Apache is apparently overly accepting. Moving the IfVersion below all
> the IfModules fixes it.
Cool. I think the patch should look like the one below, then.
Just to double-check that I have explained the issue correctly, can you share the output of "apache2 -l"? Mine has:
$ apache2 -l
Compiled in modules:
core.c
mod_log_config.c
mod_logio.c
mod_version.c
prefork.c
http_core.c
mod_so.cwhich explains why it works here. I'm assuming you will not have mod_version.c compiled in.
-- >8 --
Subject: lib-httpd/apache.conf: check version only after mod_version loads
Commit 0442743 introduced an <IfVersion> directive near the top of the apache config file. However, at that point we have not yet checked for and loaded the mod_version module. This means that the directive will behave oddly if mod_version is dynamically loaded, failing to match when it should.
We can fix this by moving the whole block below the LoadModule directive for mod_version.
Reported-by: Brian Gernhardt <brian@gernhardtsoftware.com>
Signed-off-by: Jeff King <peff@peff.net>
---
t/lib-httpd/apache.conf | 7 ++++---
1 file changed, 4 insertions(+), 3 deletions(-)
diff --git a/t/lib-httpd/apache.conf b/t/lib-httpd/apache.conf
index 56ae548..dd17e3a 100644
--- a/t/lib-httpd/apache.conf
+++ b/t/lib-httpd/apache.conf
@@ -1,7 +1,4 @@ ServerName dummy
ServerName dummy
-<IfVersion < 2.4>
-LockFile accept.lock
-</IfVersion>
PidFile httpd.pid
DocumentRoot www
LogFormat "%h %l %u %t \"%r\" %>s %b" common
@@ -26,6 +23,10 @@ ErrorLog error.log
LoadModule version_module modules/mod_version.so
</IfModule>
+<IfVersion < 2.4>
+LockFile accept.lock
+</IfVersion>
+
<IfVersion < 2.1>
<IfModule !mod_auth.c>
LoadModule auth_module modules/mod_auth.so
--
1.8.3.rc2.14.g7eee6b3