]> andersk Git - moira.git/blame - incremental/ksrvtgt.c
use CODE=ANSI_C option to proc
[moira.git] / incremental / ksrvtgt.c
CommitLineData
af85f541 1/*
2 * $Source$
3 * $Author$
4 *
5eaef520 5 * Copyright 1988 by the Massachusetts Institute of Technology.
af85f541 6 *
7 * For copying and distribution information, please see the file
5eaef520 8 * <mit-copyright.h>.
af85f541 9 *
10 * Get a ticket-granting-ticket given a service key file (srvtab)
3ec7ac1b 11 * Modifed from the regular kerberos distribution in that it accepts
12 * the lifetime of the ticket as an command-line argument.
af85f541 13 *
14 */
15
16#include <stdio.h>
17#include <sys/param.h>
18#include <krb.h>
dead7a4c 19/*#include <conf.h>*/
af85f541 20
dead7a4c 21char rcsid[] =
af85f541 22 "$Header$";
23
dead7a4c 24
5eaef520 25void usage(char **argv)
dead7a4c 26{
5eaef520 27 fprintf(stderr,
28 "Usage: %s name instance [-r realm] [-s srvtab] [-l lifetime]\n",
29 argv[0]);
30 exit(1);
dead7a4c 31}
32
33
5eaef520 34int main(int argc, char **argv)
af85f541 35{
5eaef520 36 char realm[REALM_SZ + 1];
44d12d58 37 int code;
5eaef520 38 int i, lifetime = 1;
39 char srvtab[MAXPATHLEN + 1];
af85f541 40
5eaef520 41 memset(realm, 0, sizeof(realm));
42 memset(srvtab, 0, sizeof(srvtab));
af85f541 43
5eaef520 44 if (argc < 3)
45 usage(argv);
dead7a4c 46
5eaef520 47 for (i = 3; i < argc; i++)
48 {
49 if (argv[i][0] != '-')
50 usage(argv);
51 switch (argv[i][1])
52 {
dead7a4c 53 case 'r':
5eaef520 54 if (i + 1 >= argc)
55 usage(argv);
56 strncpy(realm, argv[i++ + 1], sizeof(realm) - 1);
57 break;
dead7a4c 58 case 's':
5eaef520 59 if (i + 1 >= argc)
60 usage(argv);
61 strncpy(srvtab, argv[i++ + 1], sizeof(srvtab) - 1);
62 break;
dead7a4c 63 case 'l':
5eaef520 64 if (i + 1 >= argc)
65 usage(argv);
66 lifetime = atoi(argv[i++ + 1]);
67 if (lifetime < 5)
68 lifetime = 1;
69 else
70 lifetime /= 5;
71 if (lifetime > 255)
72 lifetime = 255;
73 break;
dead7a4c 74 default:
5eaef520 75 usage(argv);
dead7a4c 76 }
af85f541 77 }
78
5eaef520 79 if (!*srvtab)
80 strcpy(srvtab, KEYFILE);
af85f541 81
5eaef520 82 if (!*realm)
83 {
84 if (krb_get_lrealm(realm, 1) != KSUCCESS)
85 strcpy(realm, KRB_REALM);
86 }
af85f541 87
5eaef520 88 code = krb_get_svc_in_tkt(argv[1], argv[2], realm,
89 "krbtgt", realm, lifetime, srvtab);
90 if (code)
91 fprintf(stderr, "%s\n", krb_err_txt[code]);
92 exit(code);
af85f541 93}
dead7a4c 94
This page took 0.085291 seconds and 5 git commands to generate.