]> andersk Git - moira.git/blame - incremental/ksrvtgt.c
Command line printer manipulation client, and build goo.
[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>
7ac48069 17#include <stdlib.h>
18#include <string.h>
af85f541 19#include <sys/param.h>
20#include <krb.h>
dead7a4c 21/*#include <conf.h>*/
af85f541 22
dead7a4c 23char rcsid[] =
af85f541 24 "$Header$";
25
7ac48069 26void usage(char **argv);
dead7a4c 27
5eaef520 28int main(int argc, char **argv)
af85f541 29{
5eaef520 30 char realm[REALM_SZ + 1];
44d12d58 31 int code;
5eaef520 32 int i, lifetime = 1;
33 char srvtab[MAXPATHLEN + 1];
af85f541 34
5eaef520 35 memset(realm, 0, sizeof(realm));
36 memset(srvtab, 0, sizeof(srvtab));
af85f541 37
5eaef520 38 if (argc < 3)
39 usage(argv);
dead7a4c 40
5eaef520 41 for (i = 3; i < argc; i++)
42 {
43 if (argv[i][0] != '-')
44 usage(argv);
45 switch (argv[i][1])
46 {
dead7a4c 47 case 'r':
5eaef520 48 if (i + 1 >= argc)
49 usage(argv);
50 strncpy(realm, argv[i++ + 1], sizeof(realm) - 1);
51 break;
dead7a4c 52 case 's':
5eaef520 53 if (i + 1 >= argc)
54 usage(argv);
55 strncpy(srvtab, argv[i++ + 1], sizeof(srvtab) - 1);
56 break;
dead7a4c 57 case 'l':
5eaef520 58 if (i + 1 >= argc)
59 usage(argv);
60 lifetime = atoi(argv[i++ + 1]);
61 if (lifetime < 5)
62 lifetime = 1;
63 else
64 lifetime /= 5;
65 if (lifetime > 255)
66 lifetime = 255;
67 break;
dead7a4c 68 default:
5eaef520 69 usage(argv);
dead7a4c 70 }
af85f541 71 }
72
5eaef520 73 if (!*srvtab)
74 strcpy(srvtab, KEYFILE);
af85f541 75
5eaef520 76 if (!*realm)
77 {
78 if (krb_get_lrealm(realm, 1) != KSUCCESS)
79 strcpy(realm, KRB_REALM);
80 }
af85f541 81
5eaef520 82 code = krb_get_svc_in_tkt(argv[1], argv[2], realm,
83 "krbtgt", realm, lifetime, srvtab);
84 if (code)
85 fprintf(stderr, "%s\n", krb_err_txt[code]);
86 exit(code);
af85f541 87}
dead7a4c 88
7ac48069 89void usage(char **argv)
90{
91 fprintf(stderr,
92 "Usage: %s name instance [-r realm] [-s srvtab] [-l lifetime]\n",
93 argv[0]);
94 exit(1);
95}
This page took 0.201976 seconds and 5 git commands to generate.