refactored to leave synopsis to the top, and move the rest of the pod to the
[catagits/Catalyst-Runtime.git] / lib / Catalyst / Engine / HTTP.pm
index 6da9325..d94e94e 100644 (file)
@@ -50,7 +50,12 @@ sub finalize_headers {
     $c->response->headers->date(time);
     $c->response->headers->header(
         Connection => $self->_keep_alive ? 'keep-alive' : 'close' );
-    $self->NEXT::finalize_headers($c);
+        
+    $c->response->header( Status => $c->response->status );
+        
+    # Avoid 'print() on closed filehandle Remote' warnings when using IE
+    print $c->response->headers->as_string("\015\012") if *STDOUT->opened();
+    print "\015\012" if *STDOUT->opened();
 }
 
 =head2 $self->finalize_read($c)
@@ -106,6 +111,19 @@ sub read_chunk {
     }
 }
 
+=head2 $self->write($c, $buffer)
+
+Writes the buffer to the client. Can only be called once for a request.
+
+=cut
+
+sub write {
+       # Avoid 'print() on closed filehandle Remote' warnings when using IE
+       return unless *STDOUT->opened();
+       
+       shift->NEXT::write( @_ );
+}
+
 =head2 run
 
 =cut
@@ -285,7 +303,7 @@ sub _handler {
                 $name = 'HTTP_' . $name
                   unless $name =~ m/\A(?:CONTENT_(?:LENGTH|TYPE)|COOKIE)\z/;
                 if ( exists $ENV{$name} ) {
-                    $ENV{$name} .= "; $value";
+                    $ENV{$name} .= ", $value";
                 }
                 else {
                     $ENV{$name} = $value;