Deleted Added
full compact
ktutil.c (90926) ktutil.c (178825)
1/*
1/*
2 * Copyright (c) 1997 - 2002 Kungliga Tekniska H�gskolan
2 * Copyright (c) 1997-2004 Kungliga Tekniska H�gskolan
3 * (Royal Institute of Technology, Stockholm, Sweden).
4 * All rights reserved.
5 *
6 * Redistribution and use in source and binary forms, with or without
7 * modification, are permitted provided that the following conditions
8 * are met:
9 *
10 * 1. Redistributions of source code must retain the above copyright

--- 18 unchanged lines hidden (view full) ---

29 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
30 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
31 * SUCH DAMAGE.
32 */
33
34#include "ktutil_locl.h"
35#include <err.h>
36
3 * (Royal Institute of Technology, Stockholm, Sweden).
4 * All rights reserved.
5 *
6 * Redistribution and use in source and binary forms, with or without
7 * modification, are permitted provided that the following conditions
8 * are met:
9 *
10 * 1. Redistributions of source code must retain the above copyright

--- 18 unchanged lines hidden (view full) ---

29 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
30 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
31 * SUCH DAMAGE.
32 */
33
34#include "ktutil_locl.h"
35#include <err.h>
36
37RCSID("$Id: ktutil.c,v 1.36 2002/02/11 14:14:11 joda Exp $");
37RCSID("$Id: ktutil.c 15585 2005-07-07 21:52:04Z lha $");
38
39static int help_flag;
40static int version_flag;
41int verbose_flag;
42char *keytab_string;
43static char keytab_buf[256];
44
38
39static int help_flag;
40static int version_flag;
41int verbose_flag;
42char *keytab_string;
43static char keytab_buf[256];
44
45static int help(int argc, char **argv);
46
47static SL_cmd cmds[] = {
48 { "add", kt_add, "add",
49 "adds key to keytab" },
50 { "change", kt_change, "change [principal...]",
51 "get new key for principals (all)" },
52 { "copy", kt_copy, "copy src dst",
53 "copy one keytab to another" },
54 { "get", kt_get, "get [principal...]",
55 "create key in database and add to keytab" },
56 { "list", kt_list, "list",
57 "shows contents of a keytab" },
58 { "purge", kt_purge, "purge",
59 "remove old and superceeded entries" },
60 { "remove", kt_remove, "remove",
61 "remove key from keytab" },
62 { "rename", kt_rename, "rename from to",
63 "rename entry" },
64 { "srvconvert", srvconv, "srvconvert [flags]",
65 "convert v4 srvtab to keytab" },
66 { "srv2keytab" },
67 { "srvcreate", srvcreate, "srvcreate [flags]",
68 "convert keytab to v4 srvtab" },
69 { "key2srvtab" },
70 { "help", help, "help", "" },
71 { NULL, NULL, NULL, NULL }
72};
73
74static struct getargs args[] = {
75 {
76 "version",
77 0,
78 arg_flag,
79 &version_flag,
80 NULL,
81 NULL

--- 47 unchanged lines hidden (view full) ---

129 return NULL;
130 }
131 if (verbose_flag)
132 fprintf (stderr, "Using keytab %s\n", keytab_string);
133
134 return keytab;
135}
136
45static struct getargs args[] = {
46 {
47 "version",
48 0,
49 arg_flag,
50 &version_flag,
51 NULL,
52 NULL

--- 47 unchanged lines hidden (view full) ---

100 return NULL;
101 }
102 if (verbose_flag)
103 fprintf (stderr, "Using keytab %s\n", keytab_string);
104
105 return keytab;
106}
107
137static int
138help(int argc, char **argv)
108int
109help(void *opt, int argc, char **argv)
139{
110{
140 sl_help(cmds, argc, argv);
111 if(argc == 0) {
112 sl_help(commands, 1, argv - 1 /* XXX */);
113 } else {
114 SL_cmd *c = sl_match (commands, argv[0], 0);
115 if(c == NULL) {
116 fprintf (stderr, "No such command: %s. "
117 "Try \"help\" for a list of commands\n",
118 argv[0]);
119 } else {
120 if(c->func) {
121 char *fake[] = { NULL, "--help", NULL };
122 fake[0] = argv[0];
123 (*c->func)(2, fake);
124 fprintf(stderr, "\n");
125 }
126 if(c->help && *c->help)
127 fprintf (stderr, "%s\n", c->help);
128 if((++c)->name && c->func == NULL) {
129 int f = 0;
130 fprintf (stderr, "Synonyms:");
131 while (c->name && c->func == NULL) {
132 fprintf (stderr, "%s%s", f ? ", " : " ", (c++)->name);
133 f = 1;
134 }
135 fprintf (stderr, "\n");
136 }
137 }
138 }
141 return 0;
142}
143
144static void
145usage(int status)
146{
147 arg_printusage(args, num_args, NULL, "command");
148 exit(status);
149}
150
151int
152main(int argc, char **argv)
153{
139 return 0;
140}
141
142static void
143usage(int status)
144{
145 arg_printusage(args, num_args, NULL, "command");
146 exit(status);
147}
148
149int
150main(int argc, char **argv)
151{
154 int optind = 0;
152 int optidx = 0;
155 krb5_error_code ret;
156 setprogname(argv[0]);
157 ret = krb5_init_context(&context);
158 if (ret)
159 errx (1, "krb5_init_context failed: %d", ret);
153 krb5_error_code ret;
154 setprogname(argv[0]);
155 ret = krb5_init_context(&context);
156 if (ret)
157 errx (1, "krb5_init_context failed: %d", ret);
160 if(getarg(args, num_args, argc, argv, &optind))
158 if(getarg(args, num_args, argc, argv, &optidx))
161 usage(1);
162 if(help_flag)
163 usage(0);
164 if(version_flag) {
165 print_version(NULL);
166 exit(0);
167 }
159 usage(1);
160 if(help_flag)
161 usage(0);
162 if(version_flag) {
163 print_version(NULL);
164 exit(0);
165 }
168 argc -= optind;
169 argv += optind;
166 argc -= optidx;
167 argv += optidx;
170 if(argc == 0)
171 usage(1);
168 if(argc == 0)
169 usage(1);
172 ret = sl_command(cmds, argc, argv);
170 ret = sl_command(commands, argc, argv);
173 if(ret == -1)
174 krb5_warnx (context, "unrecognized command: %s", argv[0]);
175 return ret;
176}
171 if(ret == -1)
172 krb5_warnx (context, "unrecognized command: %s", argv[0]);
173 return ret;
174}