fix setting PLPcache from apache configuration
[perl/plp/.git] / PLP / Apache.pm
index fd2607bf13f0f5bd82901ceb90d2315cb6d52601..5a9745c138c4f831c48d2ff5334d2920226de169 100644 (file)
@@ -21,25 +21,28 @@ 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;
 
-       our $use_cache = $r->dir_config('PLPcache') !~ /^off$/i;
-#S     our $use_safe  = $r->dir_config('PLPsafe')  =~ /^on$/i;
+       $PLP::use_cache = $r->dir_config('PLPcache') !~ /^off$/i;
+#S     $PLP::use_safe  = $r->dir_config('PLPsafe')  =~ /^on$/i;
        my $path = $r->filename();
        my ($file, $dir) = File::Basename::fileparse($path);
        chdir $dir;
@@ -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.