r9552@zaphod (orig r6082): jrockway | 2007-02-17 04:24:04 +1100
Kieren Diment [Mon, 12 Mar 2007 11:06:11 +0000 (11:06 +0000)]
fix C<???> business
r9553@zaphod (orig r6083):  jcamacho | 2007-02-17 15:57:46 +1100
save template_type with setup

r9561@zaphod (orig r6084):  jrockway | 2007-02-19 17:32:52 +1100
r18696@foo:  jon | 2007-02-18 23:53:28 -0600
adding Catalyst::Component::ACCEPT_CONTEXT

r9562@zaphod (orig r6085):  jrockway | 2007-02-19 17:37:35 +1100
r18704@foo:  jon | 2007-02-18 23:57:44 -0600
convert .cvsignore to svn ignore rules
r18705@foo:  jon | 2007-02-18 23:58:13 -0600
META.yml and inc too

r9563@zaphod (orig r6086):  jrockway | 2007-02-19 17:41:04 +1100
r18707@foo:  jon | 2007-02-19 00:00:42 -0600
remove .cvsignore from MANIFEST grr

r9564@zaphod (orig r6087):  jrockway | 2007-02-19 20:17:04 +1100
r18709@foo:  jon | 2007-02-19 02:37:40 -0600
add COMPONENT method to use the app as context in new (fix later)

r9565@zaphod (orig r6088):  jrockway | 2007-02-19 20:20:44 +1100
r18711@foo:  jon | 2007-02-19 02:41:21 -0600
tests for app => context at new

r9566@zaphod (orig r6089):  jayk | 2007-02-20 05:35:25 +1100
fix _auth_realms check to actually work now that we create the classdata in
the initialize routine

r9567@zaphod (orig r6090):  jayk | 2007-02-20 06:11:03 +1100
making debug call during setup conditional.

r9568@zaphod (orig r6091):  ash | 2007-02-22 04:43:57 +1100
MyAction attribute - thanks aherzog
r9569@zaphod (orig r6092):  ash | 2007-02-22 04:53:13 +1100
Add lets add the new file shall we
r9570@zaphod (orig r6093):  jayk | 2007-02-22 05:30:13 +1100
Documentation changes

r9571@zaphod (orig r6094):  jayk | 2007-02-22 05:31:09 +1100
Documentation fixes and prep for dist

r9572@zaphod (orig r6095):  andyg | 2007-02-22 06:53:00 +1100
C::E::HTTP::POE::YieldCC experiment
r9573@zaphod (orig r6096):  joel | 2007-02-22 09:24:17 +1100
added support for:
'force_plugins => [ qw(Config::Any::Foo Config::Any::Blah) ]' parameter to load_(files|stems)
$Config::Any::INI::MAP_SECTION_SPACE_TO_NESTED_KEY - boolean, defaulting to on, controlling whether to map spaces
in INI section headings to nested hashrefs

r9588@zaphod (orig r6097):  joel | 2007-02-23 08:44:59 +1100
Removed Test::Exception line which was causing test failures
Bumped version number

r9589@zaphod (orig r6098):  andyg | 2007-02-23 10:19:34 +1100
POE engine: Working on keep-alive support, but it's horribly slow for some reason... this code is currently BROKEN so don't use it from here
r9590@zaphod (orig r6099):  andyg | 2007-02-23 16:54:42 +1100
Improve performance by skipping body processing if we don't have Content-Length
r9591@zaphod (orig r6100):  andyg | 2007-02-23 16:56:21 +1100
Bump version in C::R
r9592@zaphod (orig r6101):  nothingmuch | 2007-02-24 02:44:03 +1100
support single list during set() for expires
r9593@zaphod (orig r6102):  andyg | 2007-02-24 02:51:49 +1100
Revert ningu's body change, can't see a good reason for this, and it has no tests
r9594@zaphod (orig r6103):  dwc | 2007-02-24 04:17:25 +1100
Preparing for release
r9595@zaphod (orig r6104):  dwc | 2007-02-24 04:27:11 +1100
Tagging 0.15
r9596@zaphod (orig r6105):  andyg | 2007-02-24 04:27:13 +1100
Checkpoint, back to a working state.  Keep alive disabled for now
r9597@zaphod (orig r6106):  andyg | 2007-02-24 07:12:09 +1100
Avoid a call to the slow str2time when setting HTTP Date header
r9598@zaphod (orig r6107):  andyg | 2007-02-24 08:48:02 +1100
Fix and sync POE engine tests
r9599@zaphod (orig r6108):  andyg | 2007-02-24 08:49:55 +1100
Reworked a lot of the POE engine to be faster.  Can now get about 145 req/sec out of it
r9600@zaphod (orig r6109):  andyg | 2007-02-24 10:38:46 +1100
Add a default body to redirect responses
r9601@zaphod (orig r6110):  andyg | 2007-02-24 10:48:05 +1100
Optimize constant subs
r9602@zaphod (orig r6111):  andyg | 2007-02-24 16:34:24 +1100
Add tests for body on redirects
r9603@zaphod (orig r6112):  andyg | 2007-02-26 04:23:01 +1100
POE engine is not an HTTP/1.1 server yet, so respond as 1.0
r9604@zaphod (orig r6113):  joel | 2007-02-26 07:08:33 +1100
fixed bug: [rt.cpan.org #25143] make tests fails
- t/61_features.t had 1 more test added than was set to skip if the INI parser
was not installed. Fixed by s/9/10/ on the skip() line.

r9605@zaphod (orig r6114):  jcamacho | 2007-02-26 08:04:11 +1100
increment for release. Update Changes file.

r9606@zaphod (orig r6115):  bricas | 2007-02-27 02:10:56 +1100
bumped version for repackaging
r9607@zaphod (orig r6116):  bricas | 2007-02-27 03:21:23 +1100
release 0.15
r9608@zaphod (orig r6117):  andyg | 2007-02-27 05:07:01 +1100
Patch from zamolxes: MyApp->model/view now looks at MyApp->config->{default_view/model}
r9609@zaphod (orig r6118):  andyg | 2007-02-27 05:14:35 +1100
Serve proper HTML for the redirect message

Changes
lib/Catalyst/Engine/HTTP.pm

diff --git a/Changes b/Changes
index a17a6b4..12a52d9 100644 (file)
--- a/Changes
+++ b/Changes
@@ -1,7 +1,6 @@
 This file documents the revision history for Perl extension Catalyst.
 
 5.7007  ??
-        - Performance and stability improvements to the built-in HTTP server.
         - Don't ignore file uploads if form contains a text field with the same name.
           (Carl Franks)
         - Support restart_delay of 0 (for use in the POE engine).
index 365249a..e1682af 100644 (file)
@@ -5,7 +5,6 @@ use base 'Catalyst::Engine::CGI';
 use Data::Dump qw(dump);
 use Errno 'EWOULDBLOCK';
 use HTTP::Date ();
-use HTTP::Headers;
 use HTTP::Status;
 use NEXT;
 use Socket;
@@ -54,30 +53,17 @@ sub finalize_headers {
     my $status   = $c->response->status;
     my $message  = status_message($status);
     
-    my @headers;
-    push @headers, "$protocol $status $message";
+    print "$protocol $status $message\015\012";
     
     $c->response->headers->header( Date => HTTP::Date::time2str(time) );
+    $c->response->headers->header(
+        Connection => $self->_keep_alive ? 'keep-alive' : 'close' );
+        
     $c->response->headers->header( Status => $status );
-    
-    # Should we keep the connection open?
-    my $connection = $c->request->header('Connection');
-    if (   $self->{options}->{keepalive} 
-        && $connection 
-        && $connection =~ /^keep-alive$/i
-    ) {
-        $c->response->headers->header( Connection => 'keep-alive' );
-        $self->{_keepalive} = 1;
-    }
-    else {
-        $c->response->headers->header( Connection => 'close' );
-    }
-    
-    push @headers, $c->response->headers->as_string("\x0D\x0A");
-    
-    # Buffer the headers so they are sent with the first write() call
-    # This reduces the number of TCP packets we are sending
-    $self->{_header_buf} = join("\x0D\x0A", @headers, '');
+        
+    # 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)