xref: /original-bsd/old/athena/ksrvtgt/ksrvtgt.c (revision e59fb703)
1 /*
2  * $Source: /mit/kerberos/src/kuser/RCS/ksrvtgt.c,v $
3  * $Author: steiner $
4  *
5  * Copyright 1988 by the Massachusetts Institute of Technology.
6  *
7  * For copying and distribution information, please see the file
8  * <mit-copyright.h>.
9  *
10  * Get a ticket-granting-ticket given a service key file (srvtab)
11  * The lifetime is the shortest allowed [1 five-minute interval]
12  *
13  */
14 
15 #include <stdio.h>
16 #include <kerberos/krb.h>
17 #include <kerberos/conf.h>
18 
19 const char rcsid[] =
20     "$Header: ksrvtgt.c,v 4.2 89/01/13 18:05:19 steiner Exp $";
21 
22 char	realmbuf[REALM_SZ];
23 static	char *realm = NULL;
24 static	char *srvtab = NULL;
25 static	char srvtabfile[] = KEYFILE;
26 
27 main(argc,argv)
28 	int argc;
29 	char **argv;
30 {
31 	register int code;
32 	if (argc < 3 || argc > 5) {
33 		fprintf(stderr, "Usage: %s name instance [[realm] srvtab]\n",
34 		argv[0]);
35 		exit(1);
36 	}
37 	if (argc == 5) {
38 		realm = argv[3];
39 		srvtab = argv[4];
40 	}
41 	else if (argc == 4)
42 		srvtab = argv[3];
43 
44 	if(realm == NULL) {
45 		if(krb_get_lrealm(realmbuf, 1) != KSUCCESS) {
46 			fprintf(stderr, "Couldn't get local relm info.\n");
47 			exit(1);
48 		}
49 		realm = realmbuf;
50 	}
51 
52 	if(srvtab == NULL)
53 		srvtab = srvtabfile;
54 
55 	code = krb_get_svc_in_tkt(argv[1], argv[2], realm,
56 			      "krbtgt", realm, 1, srvtab);
57 	if (code != KSUCCESS)
58 		fprintf(stderr, "%s\n", krb_err_txt[code]);
59 	exit(code);
60 }
61