summaryrefslogtreecommitdiff
path: root/rt/html/NoAuth/images/autohandler
diff options
context:
space:
mode:
Diffstat (limited to 'rt/html/NoAuth/images/autohandler')
-rw-r--r--rt/html/NoAuth/images/autohandler28
1 files changed, 28 insertions, 0 deletions
diff --git a/rt/html/NoAuth/images/autohandler b/rt/html/NoAuth/images/autohandler
new file mode 100644
index 000000000..720979830
--- /dev/null
+++ b/rt/html/NoAuth/images/autohandler
@@ -0,0 +1,28 @@
+<%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";
+if ($file =~ /\.(gif|png|jpe?g)$/i) {
+ $type = "image/$1";
+ $type =~ s/jpg/jpeg/gi;
+}
+
+die "file not found" unless -f $file && -r _;
+
+$r->content_type($type);
+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>