]> git.sesse.net Git - pr0n/blobdiff - perl/Sesse/pr0n/pr0n.pm
Add the client code for the WinXP wizard.
[pr0n] / perl / Sesse / pr0n / pr0n.pm
index 28df8719a04ecebabfbe8283ae7e89de6622e7e9..55e64de907e983be97ef2e4edb49e3be5cd07053 100644 (file)
@@ -6,6 +6,8 @@ use Sesse::pr0n::Rotate;
 use Sesse::pr0n::Select;
 use Sesse::pr0n::WebDAV;
 use Sesse::pr0n::NewEvent;
+use Sesse::pr0n::Registry;
+use Sesse::pr0n::Wizard;
 
 package Sesse::pr0n::pr0n;
 use strict;    
@@ -27,9 +29,23 @@ sub handler {
                 $uri eq '/previous.png' ||
                 $uri eq '/next.png' ||
                 $uri eq '/close.png' ||
+                $uri eq '/wizard.js' ||
+                $uri eq '/wizard.css' ||
+                $uri eq '/pr0n.ico' ||
                 $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') {
@@ -47,6 +63,10 @@ sub handler {
                return Sesse::pr0n::Select::handler($r);
        } elsif ($uri =~ m#^/newevent$#) {
                return Sesse::pr0n::NewEvent::handler($r);
+       } elsif ($uri =~ m#^/registry$#) {
+               return Sesse::pr0n::Registry::handler($r);
+       } elsif ($uri =~ m#^/wizard$#) {
+               return Sesse::pr0n::Wizard::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._-]+$#) {