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