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