Exemple #1
0
int
set_entry(krb5_context contextp,
	  kadm5_principal_ent_t ent,
	  int *mask,
	  const char *max_ticket_life,
	  const char *max_renewable_life,
	  const char *expiration,
	  const char *pw_expiration,
	  const char *attributes,
	  const char *policy)
{
    if (max_ticket_life != NULL) {
	if (parse_deltat (max_ticket_life, &ent->max_life,
			  mask, KADM5_MAX_LIFE)) {
	    krb5_warnx (contextp, "unable to parse `%s'", max_ticket_life);
	    return 1;
	}
    }
    if (max_renewable_life != NULL) {
	if (parse_deltat (max_renewable_life, &ent->max_renewable_life,
			  mask, KADM5_MAX_RLIFE)) {
	    krb5_warnx (contextp, "unable to parse `%s'", max_renewable_life);
	    return 1;
	}
    }

    if (expiration) {
	if (parse_timet (expiration, &ent->princ_expire_time,
			mask, KADM5_PRINC_EXPIRE_TIME)) {
	    krb5_warnx (contextp, "unable to parse `%s'", expiration);
	    return 1;
	}
    }
    if (pw_expiration) {
	if (parse_timet (pw_expiration, &ent->pw_expiration,
			 mask, KADM5_PW_EXPIRATION)) {
	    krb5_warnx (contextp, "unable to parse `%s'", pw_expiration);
	    return 1;
	}
    }
    if (attributes != NULL) {
	if (parse_attributes (attributes, &ent->attributes,
			      mask, KADM5_ATTRIBUTES)) {
	    krb5_warnx (contextp, "unable to parse `%s'", attributes);
	    return 1;
	}
    }
    if (policy != NULL) {
	if (parse_policy (policy, &ent->policy,
			      mask, KADM5_POLICY)) {
	    krb5_warnx (contextp, "unable to parse `%s'", policy);
	    return 1;
	}
    }
    return 0;
}
Exemple #2
0
int
edit_deltat (const char *prompt, krb5_deltat *value, int *mask, int bit)
{
    char buf[1024], resp[1024];

    if (mask && (*mask & bit))
	return 0;

    deltat2str(*value, buf, sizeof(buf));
    for (;;) {
	if(get_response(prompt, buf, resp, sizeof(resp)) != 0)
	    return 1;
	if (parse_deltat (resp, value, mask, bit) == 0)
	    break;
    }
    return 0;
}