use strict;
use base 'Catalyst::Engine::HTTP::Base';
+use Catalyst::Exception;
use IO::Select;
use IO::Socket;
);
unless ( defined $daemon ) {
- die(qq/Failed to create daemon. Reason: '$!'/);
+
+ Catalyst::Exception->throw(
+ message => qq/Failed to create daemon. Reason: '$!'/
+ );
}
my $base = URI->new( $daemon->url )->canonical;
$client->response->header( Server => $daemon->product_tokens );
- my $connection = $client->request->header('Connection');
+ my $connection = $client->request->header('Connection') || '';
- if ( $connection && $connection =~ /Keep-Alive/i ) {
+ if ( $connection =~ /Keep-Alive/i ) {
$client->response->header( 'Connection' => 'Keep-Alive' );
$client->response->header( 'Keep-Alive' => 'timeout=60, max=100' );
}
- if ( $connection && $connection =~ /close/i ) {
+ if ( $connection =~ /close/i ) {
$client->response->header( 'Connection' => 'close' );
}
if ( $client->response_offset == $client->response_length ) {
- my $persistent = 0;
-
- my $connection = $client->request->header('Connection');
+ my $connection = $client->request->header('Connection') || '';
my $protocol = $client->request->protocol;
+ my $persistent = 0;
- if ( $protocol eq 'HTTP/1.1' ) {
-
+ if ( $protocol eq 'HTTP/1.1' && $connection !~ /close/i ) {
$persistent++;
-
- if ( $connection && $connection =~ /close/i ) {
- $persistent--;
- }
}
- else {
-
- if ( $connection && $connection =~ /Keep-Alive/i ) {
- $persistent++;
- }
+ if ( $protocol ne 'HTTP/1.1' && $connection =~ /Keep-Alive/i ) {
+ $persistent++;
}
unless ( $persistent ) {