import rt 3.6.4
[freeside.git] / rt / html / NoAuth / images / autohandler
index 86f3b22..7209798 100644 (file)
@@ -1,21 +1,28 @@
-<%init>
+<%INIT>
+&RT::Interface::Web::StaticFileHeaders();
 
 # This autohandler will spit out RT's images if the user hasn't 
 # properly configured their webserver to stop RT from passing 
 # images through the mason handler.
-
 my $file = $m->base_comp->source_file;
-my $type = "application/octet-stream";
 
+
+my $type = "application/octet-stream";
 if ($file =~ /\.(gif|png|jpe?g)$/i) {
     $type = "image/$1";
     $type =~ s/jpg/jpeg/gi;
 }
 
-die unless (-f $file && -r $file);
+die "file not found" unless -f $file && -r _;
+
 $r->content_type($type);
-open (FILE, "<$file") || die;
-$m->out($_) while (<FILE>);
-close(FILE);
+open my $fh, "<$file" or die "couldn't open file: $!";
+binmode($fh);
+{
+    local $/ = \16384;
+    $m->out($_) while (<$fh>);
+    $m->flush_buffer;
+}
+close $fh;
 $m->abort;
-</%init>
+</%INIT>