#!/usr/um/bin/perl

# Sample client using Krb4

use Socket;
use Krb4;

$SERVER='server';
$SERVER_PORT='6789';
$SERVICE='rcmd';

sub ConnectToServer
{	my($name,$aliases,$proto,$iaddr,$paddr);
	unless ($SERVER && $SERVER_PORT)
	{	print "Need to set server and/or server port!\n";
	}
	($name,$aliases,$proto)=getprotobyname('tcp');
	$iaddr=inet_aton($SERVER);
	$paddr=sockaddr_in($SERVER_PORT,$iaddr);
	socket(SOCK,&AF_INET,&SOCK_STREAM,$proto);
	connect(SOCK,$paddr) || die $!;
	select(SOCK); $|=1; select(STDOUT);
}

ConnectToServer();

# get realm of server
$realm=Krb4::realmofhost($SERVER);

# get instance of server
$phost=Krb4::get_phost($SERVER);

# get a ticket object for SERVICE.phost@realm
$ticket=Krb4::mk_req($SERVICE,$phost,$realm,0);

# send the ticket over
print SOCK $ticket->dat,"\n";

# print what we get back
while($line=<SOCK>)
{	print $line;
}

close(SOCK);
