question on Apache2_4::AuthCookie

"A. Warnier" <[email protected]>
Newsgroups gmane.comp.apache.mod-perl
Message-ID <[email protected]>
Hi.
I have (a long time ago) created an AAA module based originally on Apache2::AuthCookie (a 
copy and rewrite, not a sub-class). Now I need to adapt this to Apache 2.4.
I have read all the docs at 
https://metacpan.org/source/MSCHOUT/Apache-AuthCookie-3.24/lib/Apache2_4/AuthCookie.pm, 
and followed the related correspondence on this list.
My problem is that I would like to keep a single perl source, for both Apache 2.2 and 
Apache 2.4.
As far as I can tell so far, this should not be a big problem, except for the following 
difference :

In the Apache 2.2 version, I have this statement :

use Apache2::Const -compile => qw(:common :http :methods :override :proxy);

and in the Apache 2.4 version, I must have this statement or it will not compile :

use Apache2::Const -compile => qw(:common :http :methods :override :proxy AUTHZ_GRANTED 
AUTHZ_DENIED AUTHZ_DENIED_NO_USER);

(That is because these new AUTHZ_* constants must be used in the new "AuthzProvider" subs).

I could of course hack the values of these constants under 2.4, and use their values 
directly in my module, but that is rather "inelegant".

My question is thus : would there be a way to make the import of these constants 
conditional on the Apache version the module is running under ?
(In other words e.g. define them with value 0 initially (for Apache 2.2, since they are 
never used there), and override them if under Apache 2.4 ?

Or, to put this another way : imagining that there are already some servers, currently 
running Apache 2.2 with, say, mod_perl 2.0.7, and on which the current (2.2-only) version 
of my Auth module is running.
If I ever update these servers with the latest (2.4-compatible) version of my module, 
including the above extra imported constants, that updated module will not compile anymore 
on those systems (because these constants are not defined there).
Is there a way to avoid this incompatibility ?

I tried to phrase the above as clearly as possible, but if it is still confusing, I can 
try again..

Thanks
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.