our $VERSION = '1.00';
+use PLP;
+
+use constant MP2 => (
+ defined $ENV{MOD_PERL_API_VERSION} and $ENV{MOD_PERL_API_VERSION} >= 2
+);
+
+BEGIN {
+ if (MP2) {
+ require Apache2::Const;
+ require Apache2::RequestRec;
+ require Apache2::RequestUtil;
+ require Apache2::RequestIO;
+ } else {
+ require Apache::Constants;
+ }
+}
+
# mod_perl initializer: returns 0 on success, Apache error code on failure
sub init {
our $r = shift;
$PLP::print = 'PLP::Apache::print';
+ $PLP::read = \&read;
$ENV{PLP_FILENAME} = my $filename = $r->filename;
unless (-f $filename) {
- return Apache::Constants::NOT_FOUND();
+ return MP2 ? Apache2::Const::HTTP_NOT_FOUND() : Apache::Constants::NOT_FOUND();
}
unless (-r _) {
- return Apache::Constants::FORBIDDEN();
+ return MP2 ? Apache2::Const::HTTP_FORBIDDEN() : Apache::Constants::FORBIDDEN();
}
$ENV{PLP_NAME} = $r->uri;
return 0; # OK
}
+sub read ($) {
+ my ($bytes) = @_;
+ $r->read(my $data, $bytes);
+ return $data;
+}
+
# FAST printing under mod_perl
sub print {
return unless grep length, @_;
$PLP::Apache::r->print(@_);
}
+# This is the mod_perl handler.
+sub handler {
+ PLP::clean();
+ if (my $ret = init($_[0])) {
+ return $ret;
+ }
+ #S PLP::start($_[0]);
+ PLP::start();
+ no strict 'subs';
+ return MP2 ? Apache2::Const::OK() : Apache::Constants::OK();
+}
+
1;