X-Git-Url: https://ruin.nu/git/?a=blobdiff_plain;f=ND%2FWeb%2FImage.pm;h=792f1ce629cbbab997b311a2ffa3ca2602b82966;hb=bc5fe76561eec517ebefad912f82aa5c6e4d84cd;hp=b7eef3e5c9862e5770a2a5c0f231d50be7dbbc46;hpb=256609e2df07f5dd40a33ace6163d2b72a269246;p=ndwebbie.git diff --git a/ND/Web/Image.pm b/ND/Web/Image.pm index b7eef3e..792f1ce 100644 --- a/ND/Web/Image.pm +++ b/ND/Web/Image.pm @@ -20,9 +20,8 @@ package ND::Web::Image; use strict; use warnings; -use CGI qw/:standard/; -our @ISA = qw/ND::Web::Page/; +use base qw/ND::Web::Page/; sub render { @@ -33,11 +32,17 @@ sub render { $img = $self->render_body; }; if (defined $img){ - print header(-type=> 'image/png', -Content_Length => length $img); - binmode STDOUT; - print $img; - }else{ - print header; + if ((my $rc = $self->{R}->meets_conditions) != Apache2::Const::OK){ + $self->{R}->status($rc); + }else{ + $self->{R}->headers_out->set(Content_Length => length $img); + $self->{R}->content_type('image/png'); + $self->{R}->rflush; + binmode STDOUT; + print $img; + } + }elsif(defined $@){ + $self->{R}->content_type('text/plain'); print $@; } };