From c5867bde0e74b21b4ed8a105297b08213bfd5404 Mon Sep 17 00:00:00 2001 From: Nicolas Williams Date: Fri, 2 Aug 2013 19:09:36 -0500 Subject: [PATCH] Add options to kcpytkt and kdeltkt for exp tix --- kuser/kcpytkt.c | 8 ++++++++ kuser/kdeltkt.c | 8 ++++++++ 2 files changed, 16 insertions(+) diff --git a/kuser/kcpytkt.c b/kuser/kcpytkt.c index 4fd55c9d4..591a6eec4 100644 --- a/kuser/kcpytkt.c +++ b/kuser/kcpytkt.c @@ -4,6 +4,7 @@ static char *etypestr = 0; static char *fromccachestr = 0; static char *flagstr = 0; +static int exp_ok = 0; static int quiet_flag = 0; static int version_flag = 0; static int help_flag = 0; @@ -15,6 +16,8 @@ struct getargs args[] = { "Encryption type", "enctype" }, { "flags", 'f', arg_string, &flagstr, "Flags", "flags" }, + { "expired-ok", 'E', arg_flag, &exp_ok, + "Keep expired tickets" }, { "quiet", 'q', arg_flag, &quiet_flag, "Quiet" }, { "version", 0, arg_flag, &version_flag }, { "help", 0, arg_flag, &help_flag } @@ -129,6 +132,11 @@ static void do_kcpytkt (int count, char *names[], in_creds.session.keytype = etype; + if (!exp_ok) { + krb5_timeofday(context, &in_creds.times.endtime); + retflags |= KRB5_TC_MATCH_TIMES; + } + ret = krb5_cc_retrieve_cred(context, fromccache, retflags, &in_creds, &out_creds); if (ret) { diff --git a/kuser/kdeltkt.c b/kuser/kdeltkt.c index 1b4f9b655..aab78373f 100644 --- a/kuser/kdeltkt.c +++ b/kuser/kdeltkt.c @@ -4,6 +4,7 @@ static char *etypestr = 0; static char *ccachestr = 0; static char *flagstr = 0; +static int exp_only = 0; static int quiet_flag = 0; static int help_flag = 0; static int version_flag = 0; @@ -15,6 +16,8 @@ struct getargs args[] = { "Encryption type", "enctype" }, { "flags", 'f', arg_string, &flagstr, "Flags", "flags" }, + { "expired-only", 'E', arg_flag, &exp_only, + "Delete only expired tickets" }, { "quiet", 'q', arg_flag, &quiet_flag, "Quiet" }, { "version", 0, arg_flag, &version_flag }, { "help", 0, arg_flag, &help_flag } @@ -124,6 +127,11 @@ static void do_kdeltkt (int count, char *names[], in_creds.session.keytype = etype; + if (exp_only) { + krb5_timeofday(context, &in_creds.times.endtime); + retflags |= KRB5_TC_MATCH_TIMES; + } + ret = krb5_cc_retrieve_cred(context, ccache, retflags, &in_creds, &out_creds); if (ret) {