X-Git-Url: http://git.shiar.net/gitweb.cgi/perl/plp/.git/blobdiff_plain/30c44f02696079e94a9dd261e1dcfe0898a5367b..52b63e9e0c0e3d3019a2751158f59cae036b6fe4:/PLP/Apache.pm diff --git a/PLP/Apache.pm b/PLP/Apache.pm index fd2607b..6b28f94 100644 --- a/PLP/Apache.pm +++ b/PLP/Apache.pm @@ -21,19 +21,22 @@ BEGIN { } } +our $r; + # mod_perl initializer: returns 0 on success, Apache error code on failure sub init { - our $r = shift; + $r = shift; $PLP::print = 'PLP::Apache::print'; + $PLP::read = \&read; $ENV{PLP_FILENAME} = my $filename = $r->filename; unless (-f $filename) { - return MP2 ? Apache2::Const::NOT_FOUND() : Apache::Constants::NOT_FOUND(); + return MP2 ? Apache2::Const::HTTP_NOT_FOUND() : Apache::Constants::NOT_FOUND(); } unless (-r _) { - return MP2 ? Apache2::Const::FORBIDDEN() : Apache::Constants::FORBIDDEN(); + return MP2 ? Apache2::Const::HTTP_FORBIDDEN() : Apache::Constants::FORBIDDEN(); } $ENV{PLP_NAME} = $r->uri; @@ -49,11 +52,17 @@ sub init { 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::sendheaders() unless $PLP::sentheaders; - $PLP::Apache::r->print(@_); + $r->print(@_); } # This is the mod_perl handler.