#!/afs/net/tools/@sys/perl

#do 'sys/socket.ph' || die "Can't do sys/socket.ph: $@";

($name, $aliases, $hostcheck_port) = getservbyname("hostcheck", 'tcp');

@Month = ("Jan", "Feb", "Mar", "Apr", "May", "Jun", 
	  "Jul", "Aug", "Sep", "Oct", "Nov", "Dec");

@Wday = ("Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat");

if (!$hostcheck_port) {
	$nstats_port = 13132;
}

foreach $host ("kerberos-1", "kerberos-2") {
	($hostname = $host) =~ s/\..*//;
	($name, $aliases, $type, $len, $thisaddr) = gethostbyname($host);
	$port = $hostcheck_port;
	if (&mkport($thisaddr,$port) == $FAIL) {
		print "mkport: $hostname: $!\n";
		next;
	}
	$stime = <SERVER>;
	if ($stime > 0) {
		@ltime = localtime($stime);
		printf("%s: %s %s %d %02d:%02d:%02d 19%02d\n", 
		$hostname, $Wday[$ltime[6]], $Month[$ltime[4]], $ltime[3],
		$ltime[2], $ltime[1], $ltime[0], $ltime[5]);
	}
}


#
# End of main program, subroutines begin here
#

sub mkport {
  $port = $_[1];
  $saddr = $_[0];

#  print "$saddr,$port\n";
  $sockaddr = 'S n a4 x8';
  $sin = pack($sockaddr, 2, $port, $saddr);

  socket(SERVER, 2, 1, 0) || (return $FAIL);
#  setsockopt(SERVER,&SOL_SOCKET,&SO_KEEPALIVE,1)
#       || (print "Server setsockopt failed\n");
  connect(SERVER, $sin) || (return $FAIL);
  $sockname = getsockname(SERVER)
        || (return $FAIL);
  ($family, $port, $addr) =  unpack($sockaddr, $sockname);
  @addr = unpack("CCCC", $addr);

#  select(SERVER); $| = 1; select(STDOUT); $| = 1;
  $connecting = 1;
}

