# Ignore broken pipes as an HTTP server should
local $SIG{PIPE} = 'IGNORE';
+ # Restart on HUP
+ local $SIG{HUP} = sub {
+ $restart = 1;
+ warn "Restarting server on SIGHUP...\n";
+ };
+
LISTEN:
while ( !$restart ) {
while ( accept( Remote, $daemon ) ) {
$sel->add( \*STDIN );
REQUEST:
- while (1) {
- my ( $path, $query_string ) = split /\?/, $uri, 2;
+ # Initialize CGI environment
+ local %ENV = (
+ PATH_INFO => $path || '',
+ QUERY_STRING => $query_string || '',
+ REMOTE_ADDR => $sockdata->{peeraddr},
+ REMOTE_HOST => $sockdata->{peername},
+ REQUEST_METHOD => $method || '',
+ SERVER_NAME => $sockdata->{localname},
+ SERVER_PORT => $port,
+ SERVER_PROTOCOL => "HTTP/$protocol",
+ %copy_of_env,
+ );
# Initialize CGI environment
local %ENV = (