From 9fa736c82070ff2a51aa3057c064ebe1dc28be67 Mon Sep 17 00:00:00 2001 From: Johan Danielsson Date: Thu, 29 Jun 2000 08:31:47 +0000 Subject: [PATCH] use parse_time to parse age git-svn-id: svn://svn.h5l.se/heimdal/trunk/heimdal@8491 ec53bebd-3082-4978-b11e-865c3cabbd6b --- admin/purge.c | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/admin/purge.c b/admin/purge.c index c88afe829..ea0b04972 100644 --- a/admin/purge.c +++ b/admin/purge.c @@ -101,9 +101,10 @@ kt_purge(int argc, char **argv) krb5_kt_cursor cursor; krb5_keytab_entry entry; int help_flag = 0; - int age = 7 * 24 * 60 * 60; + char *age_str = "1 week"; + int age; struct getargs args[] = { - { "age", 0, arg_integer, NULL, "age to retire" }, + { "age", 0, arg_string, NULL, "age to retire" }, { "help", 'h', arg_flag, NULL } }; int num_args = sizeof(args) / sizeof(args[0]); @@ -112,7 +113,7 @@ kt_purge(int argc, char **argv) struct e *head = NULL; time_t judgement_day; - args[i++].value = &age; + args[i++].value = &age_str; args[i++].value = &help_flag; if(getarg(args, num_args, argc, argv, &optind)) { @@ -124,6 +125,12 @@ kt_purge(int argc, char **argv) return 0; } + age = parse_time(age_str, "s"); + if(age < 0) { + krb5_warnx(context, "unparasable time `%s'", age_str); + return 0; + } + ret = krb5_kt_start_seq_get(context, keytab, &cursor); if(ret){ krb5_warn(context, ret, "krb5_kt_start_seq_get %s", keytab_string);