X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=lib%2FCatalyst%2FEngine%2FCGI%2FNPH.pm;h=30f925e59d8490bf928e850b6b31c7cbd57f9df4;hb=6196207f8747abf0cb3ef03152102804927db557;hp=96699a024e79d81fedb6d8a0d90cbce2bda4b3bb;hpb=e646f111fbeb0ab42406b5be7e6a488df3f1483f;p=catagits%2FCatalyst-Runtime.git diff --git a/lib/Catalyst/Engine/CGI/NPH.pm b/lib/Catalyst/Engine/CGI/NPH.pm index 96699a0..30f925e 100644 --- a/lib/Catalyst/Engine/CGI/NPH.pm +++ b/lib/Catalyst/Engine/CGI/NPH.pm @@ -3,13 +3,27 @@ package Catalyst::Engine::CGI::NPH; use strict; use base 'Catalyst::Engine::CGI'; +use HTTP::Status (); + =head1 NAME Catalyst::Engine::CGI::NPH - Catalyst CGI Engine =head1 SYNOPSIS -See L. +A script using the Catalyst::Engine::CGI::NPH module might look like: + + #!/usr/bin/perl -w + + BEGIN { + $ENV{CATALYST_ENGINE} = 'CGI::NPH'; + } + + use strict; + use lib '/path/to/MyApp/lib'; + use MyApp; + + MyApp->run; =head1 DESCRIPTION @@ -27,24 +41,14 @@ This class overloads some methods from C. sub finalize_headers { my $c = shift; - my %headers = ( -nph => 1 ); - $headers{-status} = $c->response->status if $c->response->status; - for my $name ( $c->response->headers->header_field_names ) { - $headers{"-$name"} = $c->response->headers->header($name); - } - my @cookies; - while ( my ( $name, $cookie ) = each %{ $c->response->cookies } ) { - push @cookies, $c->cgi->cookie( - -name => $name, - -value => $cookie->{value}, - -expires => $cookie->{expires}, - -domain => $cookie->{domain}, - -path => $cookie->{path}, - -secure => $cookie->{secure} || 0 - ); - } - $headers{-cookie} = \@cookies if @cookies; - print $c->cgi->header(%headers); + + my $protocol = $ENV{SERVER_PROTOCOL} || 'HTTP/1.0'; + my $status = $c->response->status || 200; + my $message = HTTP::Status::status_message($status); + + printf( "%s %d %s\015\012", $protocol, $status, $message ); + + $c->SUPER::finalize_headers; } =back