BEGIN { $ENV{PATH} = '/' } sub logmsg { print "@_ at ", scalar localtime, "\n" } my $port = shift || $conf{port}; my $proto = getprotobyname('tcp'); socket(Server, PF_INET, SOCK_STREAM, $proto) or die "socket: $!"; setsockopt(Server, SOL_SOCKET, SO_REUSEADDR, pack ("l", 1)) or die "setsockopt: $!"; bind(Server, sockaddr_in($port, INADDR_ANY)) or die "bind: $!"; listen (Server, SOMAXCONN) or die "listen: $!"; logmsg "Server started on port $port"; my $paddr; $SIG{CHLD} = \&REAPER; for ( ; $paddr = accept(Client, Server); close Client) { my ($port, $iaddr) = sockaddr_in($paddr); my $name = gethostbyaddr($iaddr, AF_INET); logmsg "connection from $name [", inet_ntoa($iaddr), "] at port $port"; my $request = ; $request =~ s/HTTP.*//g; print "$request"; my $line; print Client "Perl WebServer"; }