X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?p=catagits%2FCatalyst-Runtime.git;a=blobdiff_plain;f=lib%2FCatalyst%2FEngine.pm;h=963ac5ad7d6cfa8d71741f0497383441ee81d3bd;hp=49dff2590b3d4808d831d26f307ff60bdc124808;hb=1627551a60fe1e220d390a565f793dea27cd36a6;hpb=d82cc9aef963f7e5c8da3f5586a271a2655cc635 diff --git a/lib/Catalyst/Engine.pm b/lib/Catalyst/Engine.pm index 49dff25..963ac5a 100644 --- a/lib/Catalyst/Engine.pm +++ b/lib/Catalyst/Engine.pm @@ -102,7 +102,7 @@ sub finalize_error { . '

' } @{ $c->error }; $error ||= 'No output'; - $error = "
$error
"; + $error = qq{
$error
}; $title = $name = "$name on Catalyst $Catalyst::VERSION"; $name = "

$name

"; @@ -128,7 +128,7 @@ sub finalize_error { push @infos, sprintf <<"EOF", $name, $value;

%s

-
%s
+
%s
EOF $i++; @@ -233,6 +233,15 @@ EOF font-size: medium; font-weight: normal; } + /* from http://users.tkk.fi/~tkarvine/linux/doc/pre-wrap/pre-wrap-css3-mozilla-opera-ie.html */ + /* Browser specific (not valid) styles to make preformatted text wrap */ + pre { + white-space: pre-wrap; /* css-3 */ + white-space: -moz-pre-wrap; /* Mozilla, since 1999 */ + white-space: -pre-wrap; /* Opera 4-6 */ + white-space: -o-pre-wrap; /* Opera 7 */ + word-wrap: break-word; /* Internet Explorer 5.5+ */ + } @@ -249,7 +258,7 @@ EOF $c->res->{body} .= ( ' ' x 512 ); # Return 500 - $c->res->status(500) unless $c->res->status; + $c->res->status(500); } =head2 $self->finalize_headers($c) @@ -303,6 +312,13 @@ sub prepare_body { while ( my $buffer = $self->read($c) ) { $c->prepare_body_chunk($buffer); } + + # paranoia against wrong Content-Length header + my $remaining = $self->read_length - $self->read_position; + if ($remaining > 0) { + $self->finalize_read($c); + Catalyst::Exception->throw("Wrong Content-Length value: ". $self->read_length); + } } }