From: Marcus Ramberg Date: Tue, 25 Oct 2005 21:38:47 +0000 (+0000) Subject: make the httpd fail if it can't bind. X-Git-Tag: 5.7099_04~1104 X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?p=catagits%2FCatalyst-Runtime.git;a=commitdiff_plain;h=bd357f391bf8e0df526773dc2555127f1cc9e331 make the httpd fail if it can't bind. --- diff --git a/lib/Catalyst/Engine/HTTP.pm b/lib/Catalyst/Engine/HTTP.pm index 8d5cf44..e056fff 100644 --- a/lib/Catalyst/Engine/HTTP.pm +++ b/lib/Catalyst/Engine/HTTP.pm @@ -168,10 +168,14 @@ sub run { # Setup socket $host = $host ? inet_aton($host) : INADDR_ANY; - socket( HTTPDaemon, PF_INET, SOCK_STREAM, getprotobyname('tcp') ); - setsockopt( HTTPDaemon, SOL_SOCKET, SO_REUSEADDR, pack( "l", 1 ) ); - bind( HTTPDaemon, sockaddr_in( $port, $host ) ); - listen( HTTPDaemon, SOMAXCONN ); + socket( HTTPDaemon, PF_INET, SOCK_STREAM, getprotobyname('tcp') ) + || die "Couldn't assign TCP socket: $!"; + setsockopt( HTTPDaemon, SOL_SOCKET, SO_REUSEADDR, pack( "l", 1 ) ) + || die "Couldn't set TCP socket options: $!"; + bind( HTTPDaemon, sockaddr_in( $port, $host ) ) + || die "Couldn't bind socket to $port on $host: $!"; + listen( HTTPDaemon, SOMAXCONN ) + || die "Couldn't listen to socket on $port on $host: $!"; my $url = 'http://'; if ( $host eq INADDR_ANY ) { require Sys::Hostname;