--- lib/PXElator/httpd.pm 2009/08/28 19:39:54 326 +++ lib/PXElator/httpd.pm 2009/08/29 00:06:32 335 @@ -56,6 +56,8 @@ use wireshark; use syslogd; use nmap; +use ping; +use wol; use CouchDB; @@ -224,13 +226,14 @@ if ( ! $ip ) { my $peer_ip = $client->peerhost; - my $netmask = ip::to_int $server::netmask; - my $network = ip::to_int $server::ip & $netmask; - my ( $from, $to ) = ( $network | $server::ip_from, $network | $server::ip_to ); - my $ip_int = ip::to_int $peer_ip; + my $netmask = ip::to_int $server::netmask; + my $network = ip::to_int($server::ip) & $netmask; + my $from_int = $network | $server::ip_from; + my $to_int = $network | $server::ip_to; + my $ip_int = ip::to_int $peer_ip; # show edit for clients in our dhcp range - if ( $ip_int >= ( $network | $server::ip_from ) && $ip_int <= ( $network | $server::ip_to ) ) { + if ( $ip_int >= $from_int && $ip_int <= $to_int ) { $ip = $peer_ip; } } @@ -241,18 +244,19 @@ my @table = ( 'ip' => qq|