X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=lib%2FCatalyst%2FEngine%2FHTTP.pm;h=62c5d0b4e8633dbc85aff374eac8bd0e9b08f686;hb=880e94445a96cf2e346893336160db0a31873bea;hp=d58e50812fc30dd083433dada551d34cd01c1772;hpb=b0ad47c12a21862b08d8e2942095065ac2f7edf2;p=catagits%2FCatalyst-Runtime.git diff --git a/lib/Catalyst/Engine/HTTP.pm b/lib/Catalyst/Engine/HTTP.pm index d58e508..62c5d0b 100644 --- a/lib/Catalyst/Engine/HTTP.pm +++ b/lib/Catalyst/Engine/HTTP.pm @@ -12,10 +12,6 @@ use Socket; use IO::Socket::INET (); use IO::Select (); -# For PAR -require Catalyst::Engine::HTTP::Restarter; -require Catalyst::Engine::HTTP::Restarter::Watcher; - use constant CHUNKSIZE => 64 * 1024; use constant DEBUG => $ENV{CATALYST_HTTP_DEBUG} || 0; @@ -158,11 +154,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($c, $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 +171,8 @@ around write => sub { else { DEBUG && warn "write: Wrote response ($ret bytes)\n"; } - return $ret; -}; +} =head2 run @@ -364,6 +364,9 @@ sub _handler { while (1) { my ( $path, $query_string ) = split /\?/, $uri, 2; + # URI is not the same as path. Remove scheme, domain name and port from it + $path =~ s{^https?://[^/?#]+}{}; + # Initialize CGI environment local %ENV = ( PATH_INFO => $path || '',