X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?p=catagits%2FCatalyst-Runtime.git;a=blobdiff_plain;f=lib%2FCatalyst%2FEngine%2FHTTP.pm;h=9626f6689eb9878d6e4757846f4efd75afba2444;hp=d58e50812fc30dd083433dada551d34cd01c1772;hb=eb511a7855c9fea0951dcf730d04f0ea7f24a23d;hpb=278ff444cbe60ecc35b542062a6ce768dafa71da diff --git a/lib/Catalyst/Engine/HTTP.pm b/lib/Catalyst/Engine/HTTP.pm index d58e508..9626f66 100644 --- a/lib/Catalyst/Engine/HTTP.pm +++ b/lib/Catalyst/Engine/HTTP.pm @@ -158,11 +158,16 @@ around write => sub { # Prepend the headers if they have not yet been sent if ( $self->_has_header_buf ) { - $buffer = $self->_clear_header_buf . $buffer; + $self->_warn_on_write_error( + $self->$orig($self->_clear_header_buf) + ); } - my $ret = $self->$orig($c, $buffer); + $self->_warn_on_write_error($self->$orig($c, $buffer)); +}; +sub _warn_on_write_error { + my ($self, $ret) = @_; if ( !defined $ret ) { $self->_write_error($!); DEBUG && warn "write: Failed to write response ($!)\n"; @@ -170,9 +175,8 @@ around write => sub { else { DEBUG && warn "write: Wrote response ($ret bytes)\n"; } - return $ret; -}; +} =head2 run