xref: /csrg-svn/old/athena/ksrvtgt/ksrvtgt.c (revision 36667)
136658Skfall /*
236658Skfall  * $Source: /mit/kerberos/src/kuser/RCS/ksrvtgt.c,v $
336658Skfall  * $Author: steiner $
436658Skfall  *
536658Skfall  * Copyright 1988 by the Massachusetts Institute of Technology.
636658Skfall  *
736658Skfall  * For copying and distribution information, please see the file
836658Skfall  * <mit-copyright.h>.
936658Skfall  *
1036658Skfall  * Get a ticket-granting-ticket given a service key file (srvtab)
1136658Skfall  * The lifetime is the shortest allowed [1 five-minute interval]
1236658Skfall  *
1336658Skfall  */
1436658Skfall 
1536658Skfall #include <stdio.h>
16*36667Skfall #include <kerberos/krb.h>
17*36667Skfall #include <kerberos/conf.h>
1836658Skfall 
1936658Skfall const char rcsid[] =
2036658Skfall     "$Header: ksrvtgt.c,v 4.2 89/01/13 18:05:19 steiner Exp $";
2136658Skfall 
22*36667Skfall char	realmbuf[REALM_SZ];
23*36667Skfall static	char *realm = NULL;
24*36667Skfall static	char *srvtab = NULL;
25*36667Skfall static	char srvtabfile[] = KEYFILE;
2636658Skfall 
main(argc,argv)2736658Skfall main(argc,argv)
28*36667Skfall 	int argc;
29*36667Skfall 	char **argv;
3036658Skfall {
31*36667Skfall 	register int code;
32*36667Skfall 	if (argc < 3 || argc > 5) {
33*36667Skfall 		fprintf(stderr, "Usage: %s name instance [[realm] srvtab]\n",
3436658Skfall 		argv[0]);
35*36667Skfall 		exit(1);
36*36667Skfall 	}
37*36667Skfall 	if (argc == 5) {
38*36667Skfall 		realm = argv[3];
39*36667Skfall 		srvtab = argv[4];
40*36667Skfall 	}
41*36667Skfall 	else if (argc == 4)
42*36667Skfall 		srvtab = argv[3];
43*36667Skfall 
44*36667Skfall 	if(realm == NULL) {
45*36667Skfall 		if(krb_get_lrealm(realmbuf, 1) != KSUCCESS) {
46*36667Skfall 			fprintf(stderr, "Couldn't get local relm info.\n");
47*36667Skfall 			exit(1);
48*36667Skfall 		}
49*36667Skfall 		realm = realmbuf;
50*36667Skfall 	}
51*36667Skfall 
52*36667Skfall 	if(srvtab == NULL)
53*36667Skfall 		srvtab = srvtabfile;
54*36667Skfall 
55*36667Skfall 	code = krb_get_svc_in_tkt(argv[1], argv[2], realm,
5636658Skfall 			      "krbtgt", realm, 1, srvtab);
57*36667Skfall 	if (code != KSUCCESS)
58*36667Skfall 		fprintf(stderr, "%s\n", krb_err_txt[code]);
59*36667Skfall 	exit(code);
6036658Skfall }
61