#!/usr/bin/perl
use Socket;
use DBI;
use CGI qw(:standard);
use tracker;
use tracker_cgi;

$| = 1;


$_ = param("switch");
print $tracker::tracker_header;

if ( /^\s*([-_.\w]*)/ )
	{
	$_ = $1;
	}
else
	{
	print tracker::html_errors(["Invalid query"]);
	exit
	}

my $dbconn;
$dbconn = tracker::conndb() or cgi_die("database failure");
my $query = "select * from nodes where switch like " . $dbconn->quote($_ . '%') . " order by switch,module,port;";
my $sth = $dbconn->prepare($query);
$sth->execute or cgi_die("Database failure:" . $dbconn->errstr);	

tracker::start_node_table();

while (@row = $sth->fetchrow_array)
	{
	my $hostname,$addr;
	if ($row[5] =~ /^([12]?\d{1,2}\.){3}[12]?\d{1,2}$/)
		{
		$addr = inet_aton($row[5]);
		if ($addr) 
			{
			($hostname,$aliases,$addrtype,$length,@addrs) = gethostbyaddr($addr,AF_INET);
			}
		}
	tracker::node_row($hostname,@row)
	}

$sth->finish;
$dbconn->disconnect;
tracker::end_table();
print $tracker::tracker_footer;

