#include <stdio.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <netdb.h>
#include <krb.h>


main()
{
int sock,rc;
long                authopts;
KTEXT_ST            ticket;
MSG_DAT             msg_data;
CREDENTIALS         cred;
Key_schedule        sched;
int status,cnamelen,snamelen;
struct sockaddr_in srv_addr, cl_addr;
char inbuf[BUFSIZ];

sock = inet_establish_connection("begonia","9002", 0);

   cnamelen = sizeof (cl_addr);
    if (getsockname (sock, (struct sockaddr *) & cl_addr, &cnamelen) < 0)
    {
        perror ("getsockname");
        close (sock);
        return;
    }

    /* find out who the other side is */

    snamelen = sizeof (srv_addr);
    if (getpeername (sock, (struct sockaddr *) & srv_addr, &snamelen) < 0)
    {
        perror ("getpeername");
        close (sock);
        return;
    }

    authopts = KOPT_DO_MUTUAL;
    status = krb_sendauth (authopts, sock, &ticket,
                               "rcmd", "BEGONIA",
                               NULL, (u_long) 0, &msg_data, &cred,
                               sched, &cl_addr, &srv_addr, "VER8");

printf("status = %d\n",status);

rc = read(sock,inbuf,BUFSIZ);
if (rc > 0)
  printf("inbuf = <%s>\n",inbuf);
}
