fixed forward
[catagits/Catalyst-Runtime.git] / lib / Catalyst / Engine / CGI / NPH.pm
index 96699a0..30f925e 100644 (file)
@@ -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<Catalyst>.
+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<Catalyst::Engine::CGI>.
 
 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