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=a41912c41b5cfad7a2ffcdd2e50a62cae6428834;hp=9a3b358fd8e3dbcc14f23ad1b5f34a37c67590ea;hb=536bee890cf24e0e4bcda7562e7b70cc03ca0620;hpb=63182b082619eab5ffd56cd03b5825902f42bfdb diff --git a/lib/Catalyst/Engine/HTTP.pm b/lib/Catalyst/Engine/HTTP.pm index 9a3b358..a41912c 100644 --- a/lib/Catalyst/Engine/HTTP.pm +++ b/lib/Catalyst/Engine/HTTP.pm @@ -19,12 +19,12 @@ require Catalyst::Engine::HTTP::Restarter::Watcher; use constant CHUNKSIZE => 64 * 1024; use constant DEBUG => $ENV{CATALYST_HTTP_DEBUG} || 0; +use namespace::clean -except => 'meta'; + has options => ( is => 'rw' ); has _keepalive => ( is => 'rw', predicate => '_is_keepalive', clearer => '_clear_keepalive' ); has _write_error => ( is => 'rw', predicate => '_has_write_error' ); -use namespace::clean -except => [qw/meta/]; - # Refactoring note - could/should Eliminate all instances of $self->{inputbuf}, # which I haven't touched as it is used as an lvalue in a lot of places, and I guess # doing it differently could be expensive.. Feel free to refactor and NYTProf :) @@ -216,7 +216,7 @@ sub run { ReuseAddr => 1, Type => SOCK_STREAM, ) - or die "Couldn't create daemon: $!"; + or die "Couldn't create daemon: $@"; $port = $daemon->sockport(); @@ -382,7 +382,14 @@ sub _handler { } # Pass flow control to Catalyst - $class->handle_request; + { + # FIXME: don't ignore SIGCHLD while handling requests so system() + # et al. work within actions. it might be a little risky to do that + # this far out, but then again it's only the dev server anyway. + local $SIG{CHLD} = 'DEFAULT'; + + $class->handle_request( env => \%ENV ); + } DEBUG && warn "Request done\n"; @@ -533,8 +540,6 @@ sub _socket_data { sub _inet_addr { unpack "N*", inet_aton( $_[0] ) } -no Moose; - =head2 options Options hash passed to the http engine to control things like if keepalive @@ -554,7 +559,7 @@ Many parts are ripped out of C by Jesse Vincent. =head1 COPYRIGHT -This program is free software, you can redistribute it and/or modify it under +This library is free software. You can redistribute it and/or modify it under the same terms as Perl itself. =cut