$options ||= {};
- our $GOT_HUP;
- local $GOT_HUP = 0;
-
- local $SIG{HUP} = sub { $GOT_HUP = 1; };
- local $SIG{CHLD} = 'IGNORE';
-
# Setup restarter
my $restarter;
if ( $options->{restart} ) {
my $regex = $options->{restart_regex};
my $one = _index( $dir, $regex );
RESTART: while (1) {
- sleep $options->{restart_delay};
+ sleep $options->{restart_delay} || 1;
+
+ # check if our parent has died
+ exit if ( getppid == 1 );
+
my $two = _index( $dir, $regex );
my $changes = _compare_index( $one, $two );
if (@$changes) {
}
}
}
+
+ our $GOT_HUP;
+ local $GOT_HUP = 0;
+
+ local $SIG{HUP} = sub { $GOT_HUP = 1; };
+ local $SIG{CHLD} = 'IGNORE';
# Handle requests
# 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;