#!/usr/local/bin/perl

# A very simple client using Krb4

use IO::Socket;
use Krb4;

$SERVER='servername'; # change this to your server
$SERVER_PORT=6789;
$SERVICE='rcmd';

$sock=new IO::Socket::INET(
	PeerAddr	=> $SERVER,
	PeerPort	=> $SERVER_PORT,
	Proto		=> 'tcp'
);

$sock or die "couldn't connect to server: $!";

# 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);

$ticket or die "mk_req failed";

# send the ticket over with an end tag (it's variable-length binary data)
print $sock $ticket->dat,"___END_TICKET\n";

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

close($sock);
