X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=perl%2FSesse%2Fpr0n%2Fpr0n.pm;h=0175c95547b8d3afa082371363bae076ef3ff263;hb=9e55351cd6b7618026477ab7d0d674af6cc8322a;hp=c628541c14230129cd7112a22b701dc708c58d91;hpb=3f3629cdf0838f8ee48af115918101de21c4d99c;p=pr0n diff --git a/perl/Sesse/pr0n/pr0n.pm b/perl/Sesse/pr0n/pr0n.pm index c628541..0175c95 100644 --- a/perl/Sesse/pr0n/pr0n.pm +++ b/perl/Sesse/pr0n/pr0n.pm @@ -29,12 +29,23 @@ sub handler { $uri eq '/close.png' || $uri =~ m#^/usage/([a-zA-Z0-9_.]+)$#) { $uri =~ s#^/##; + my $fname = Sesse::pr0n::Common::get_base($r) . 'files/' . $uri; + my (undef, undef, undef, undef, undef, undef, undef, $size, undef, $mtime) = stat($fname) + or error($r, "stat of $fname: $!"); + $r->content_type(Sesse::pr0n::Common::get_mimetype_from_filename($uri)); + $r->set_content_length($size); + $r->set_last_modified($mtime); + + if((my $rc = $r->meets_conditions) != Apache2::Const::OK) { + return $rc; + } + $r->sendfile(Sesse::pr0n::Common::get_base($r) . 'files/' . $uri); return Apache2::Const::OK; } elsif ($uri eq '/newevent.html') { $r->content_type('text/html; charset=utf-8'); - $r->sendfile(Sesse::pr0n::Common::get_base($r) . "newevent.html"); + $r->sendfile(Sesse::pr0n::Common::get_base($r) . "files/newevent.html"); return Apache2::Const::OK; } elsif ($uri =~ m#^/webdav#) { return Sesse::pr0n::WebDAV::handler($r); @@ -49,7 +60,7 @@ sub handler { return Sesse::pr0n::NewEvent::handler($r); } elsif ($uri =~ m#^/[a-zA-Z0-9-]+/?$#) { return Sesse::pr0n::Index::handler($r); - } elsif ($uri =~ m#^/[a-zA-Z0-9-]+/(\d+x\d+/|original)?(nobox/)?[a-zA-Z0-9._-]+$#) { + } elsif ($uri =~ m#^/[a-zA-Z0-9-]+/(\d+x\d+/|original/)?(nobox/)?[a-zA-Z0-9._-]+$#) { return Sesse::pr0n::Image::handler($r); }