--- lib/PXElator/httpd.pm 2009/08/18 12:46:41 251 +++ lib/PXElator/httpd.pm 2009/08/27 16:47:42 309 @@ -213,7 +213,10 @@ $ip = $new_ip; } - if ( $ip ne $server::ip ) { + my $ip_short = (split(/\./, $ip, 4))[3]; + + # if ( $ip ne $server::ip ) -- not flexible enough for tunnel endpoints + if ( $ip_short >= $server::ip_from && $ip_short <= $server::ip_to ) { my $hostname = client::conf( $ip, 'hostname' => $param->{hostname} ); my @table = ( @@ -229,7 +232,9 @@ 'mac' => format::mac( $mac => 'html' ), 'deploy' => html::select( 'deploy', $deploy, config::available ) ); - $deploy = qq|

PXElinux

| . html::pre( config::for_ip( $ip ) ); + if ( my $pxelinux = config::for_ip( $ip ) ) { + $deploy = qq|

PXElinux

| . html::pre( $pxelinux ); + } } print $client ok @@ -240,7 +245,7 @@ ; if ( my $amt = client::conf( $ip, 'amt' ) ) { - print $client qq|

AMT

|, amt::info( $amt ); + print $client qq|

AMT

|, amt::info( $amt, $ip ); } } else { @@ -258,30 +263,33 @@ print $client ok , qq|

Clients on $server::ip

| - , html::table( -5, - 'ip', 'hostname', 'mac', 'deploy', 'arp', + , html::table( -6, + 'ip', 'mac', 'arp', 'hostname', 'deploy', 'conf', map { my $ip = $_; - $ip =~ s{^.+/ip/}{}; - my $mac = client::mac_from_ip $ip; - my $arp = $arp->{ $mac }; - $arp = $arp ? $arp->[1] : ''; - $arp =~ s{$ip}{}; + my $conf = client::all_conf( $ip ); + my $mac = delete $conf->{mac} || ''; ( qq|$ip| - , client::conf( $ip, 'hostname' ) , format::mac( $mac => 'html' ) - , html::tt( client::conf( $ip, 'deploy' ) ) - , $arp + , ( $arp->{$mac} ? $arp->{$mac}->[1] : '' ) + , delete $conf->{hostname} + , delete $conf->{deploy} + , html::pre_dump( $conf ) ); } - glob("$server::conf/ip/*") + sort { ip::to_int($a) cmp ip::to_int($b) } + map { + my $ip = $_; + $ip =~ s{^.+/ip/}{}; + $ip; + } glob("$server::conf/ip/*") ) , qq|

ARP

| - , html::table( -3, 'mac', 'dev', 'ip', + , html::table( -3, 'ip', 'mac', 'dev', map { my $c = $arp->{$_}; - ( format::mac( $_ => 'html' ), $c->[1], $c->[0] ) + ( $c->[0], format::mac( $_ => 'html' ), $c->[1] ) } sort keys %$arp ) ;