PATCH: add -DAPACHE24 support to Apache::Test - necessary for Auth with Apache 2.4

Michael Schout <[email protected]>
Newsgroups gmane.comp.apache.mod-perl
Message-ID <[email protected]>
Hi.

I have submitted this issue a while back to rt.cpan.org, but I have not
gotten any response.

I am the maintainer of Apache::AuthCookie.

As most of us probably already know, Apache 2.4 has a very different
authentication API from previous Apache versions.  As a result, in order
to release a version of Apache::AuthCookie that passes tests on Apache
2.4 and previous versions, it is necessary to have conditional config
sections that are only enabled for Apache 2.4 or later.

Currently Apache::Test defines APACHE2 if running under apache 2.0 or
later.  The attached patch also defines APACHE24 if running under apache
2 with a minor version >= 4.

I shipped a patch for AuthCookie to the debian folks that works under
Apache 2.4, but I also need this patch in Apache::Test in order to make
it so that the test suite will work on all Apache versions (2.4 as well
as 2.2 and earlier)

Example in AuthCookie t/conf/extra.conf.in:

<IfDefine APACHE24>
  # Apache 2.4+ Auth API
  PerlAddAuthzProvider user My::Auth->authz
</IfDefine>
...
<IfDefine APACHE2>
  ...
  <IfDefine !APACHE24>
    # Pre Apache 2.4 Auth API.
    PerlAuthzHandler ....
  </IfDefine>
</IfDefine>

Hopefully this makes it clear why this is needed, and why I'd like to
see this in Apache::Test before mod_perl for apache 2.4 is finalized.

Regards,
Michael Schout
ap-test-apache24-define.patch (text/plain, 827 B)
diff --git a/Apache-Test/lib/Apache/TestServer.pm b/Apache-Test/lib/Apache/TestServer.pm
index 254aec6..a3bc3ab 100644
--- a/Apache-Test/lib/Apache/TestServer.pm
+++ b/Apache-Test/lib/Apache/TestServer.pm
@@ -85,6 +85,15 @@ sub post_config {
         $self->{rev} = 0; # unknown
     }
 
+    ($self->{revminor}) = $self->{version} =~ m|/\d\.(\d)|;
+
+    if ($self->{revminor}) {
+        debug "Matched Apache revminor $self->{version} $self->{revminor}";
+    }
+    else {
+        $self->{revminor} = 0;
+    }
+
     $self;
 }
 
@@ -126,7 +135,14 @@ sub pid_file {
 
 sub dversion {
     my $self = shift;
-    "-D APACHE$self->{rev}";
+
+    my $dv = "-D APACHE$self->{rev}";
+
+    if ($self->{rev} == 2 and $self->{revminor} >= 4) {
+        $dv .= " -D APACHE24";
+    }
+
+    return $dv;
 }
 
 sub config_defines {
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.