convert to use slc; also add stash subcommand

git-svn-id: svn://svn.h5l.se/heimdal/trunk/heimdal@13970 ec53bebd-3082-4978-b11e-865c3cabbd6b
This commit is contained in:
Johan Danielsson
2004-06-21 19:19:45 +00:00
parent 3cc8ea1b60
commit d7f9fac88e
18 changed files with 646 additions and 608 deletions

View File

@@ -35,22 +35,13 @@
RCSID("$Id$");
struct mod_entry_data {
char *attr_str;
char *max_life_str;
char *max_rlife_str;
char *expiration_str;
char *pw_expiration_str;
int new_kvno;
};
static int
do_mod_entry(krb5_principal principal, void *data)
{
krb5_error_code ret;
kadm5_principal_ent_rec princ;
int mask = 0;
struct mod_entry_data *e = data;
struct modify_options *e = data;
memset (&princ, 0, sizeof(princ));
ret = kadm5_get_principal(kadm_handle, principal, &princ,
@@ -61,20 +52,22 @@ do_mod_entry(krb5_principal principal, void *data)
if(ret)
return ret;
if(e->max_life_str || e->max_rlife_str ||
e->expiration_str || e->pw_expiration_str || e->attr_str ||
e->new_kvno != -1) {
if(e->max_ticket_life_string ||
e->max_renewable_life_string ||
e->expiration_time_string ||
e->pw_expiration_time_string ||
e->attributes_string ||
e->kvno_integer != -1) {
ret = set_entry(context, &princ, &mask,
e->max_life_str,
e->max_rlife_str,
e->expiration_str,
e->pw_expiration_str,
e->attr_str);
if(e->new_kvno != -1) {
princ.kvno = e->new_kvno;
e->max_ticket_life_string,
e->max_renewable_life_string,
e->expiration_time_string,
e->pw_expiration_time_string,
e->attributes_string);
if(e->kvno_integer != -1) {
princ.kvno = e->kvno_integer;
mask |= KADM5_KVNO;
}
} else
ret = edit_entry(&princ, &mask, NULL, 0);
if(ret == 0) {
@@ -88,64 +81,18 @@ do_mod_entry(krb5_principal principal, void *data)
}
int
mod_entry(int argc, char **argv)
mod_entry(struct modify_options *opt, int argc, char **argv)
{
krb5_error_code ret;
int optind;
struct mod_entry_data data;
int i;
struct getargs args[] = {
{"attributes", 'a', arg_string, NULL, "Attributies",
"attributes"},
{"max-ticket-life", 0, arg_string, NULL, "max ticket lifetime",
"lifetime"},
{"max-renewable-life", 0, arg_string, NULL,
"max renewable lifetime", "lifetime" },
{"expiration-time", 0, arg_string,
NULL, "Expiration time", "time"},
{"pw-expiration-time", 0, arg_string,
NULL, "Password expiration time", "time"},
{"kvno", 0, arg_integer,
NULL, "Key version number", "number"},
};
i = 0;
data.attr_str = NULL;
args[i++].value = &data.attr_str;
data.max_life_str = NULL;
args[i++].value = &data.max_life_str;
data.max_rlife_str = NULL;
args[i++].value = &data.max_rlife_str;
data.expiration_str = NULL;
args[i++].value = &data.expiration_str;
data.pw_expiration_str = NULL;
args[i++].value = &data.pw_expiration_str;
data.new_kvno = -1;
args[i++].value = &data.new_kvno;
optind = 0;
if(getarg(args, sizeof(args) / sizeof(args[0]),
argc, argv, &optind)){
arg_printusage(args,
sizeof(args) / sizeof(args[0]),
"mod",
"principal...");
return -1;
}
argc -= optind;
argv += optind;
if (argc < 1) {
printf ("Usage: mod [options] principal\n");
return 0;
}
for(i = 0; i < argc; i++)
ret = foreach_principal(argv[i], do_mod_entry, "mod", &data);
ret = foreach_principal(argv[i], do_mod_entry, "mod", opt);
return 0;
}