From 75394487514a01764a4a5d516fe0d67876e02d68 Mon Sep 17 00:00:00 2001 From: Tom Yu Date: Tue, 31 Aug 2004 22:18:18 +0000 Subject: pullup from trunk ticket: 2677 version_fixed: 1.3.5 git-svn-id: svn://anonsvn.mit.edu/krb5/branches/krb5-1-3@16710 dc483132-0cff-0310-8789-dd5450dbe970 --- src/clients/kvno/ChangeLog | 11 +++++++++++ src/clients/kvno/kvno.M | 7 +++++-- src/clients/kvno/kvno.c | 33 ++++++++++++++++++++++----------- 3 files changed, 38 insertions(+), 13 deletions(-) diff --git a/src/clients/kvno/ChangeLog b/src/clients/kvno/ChangeLog index 6751eb6..9a04ab4 100644 --- a/src/clients/kvno/ChangeLog +++ b/src/clients/kvno/ChangeLog @@ -1,3 +1,14 @@ +2004-08-31 Tom Yu + + * kvno.M: Update usage. + + * kvno.c (xusage): Update usage message. + +2004-08-20 Jeffrey Altman + + * kvno.c: Add -c ccache command line option + use krb5_free_unparsed_name() instead of free() + 2002-08-29 Ken Raeburn * Makefile.in: Revert $(S)=>/ change, for Windows support. diff --git a/src/clients/kvno/kvno.M b/src/clients/kvno/kvno.M index e7c99f7..864f75e 100644 --- a/src/clients/kvno/kvno.M +++ b/src/clients/kvno/kvno.M @@ -28,7 +28,7 @@ .SH NAME kvno \- print key version numbers of Kerberos principals .SH SYNOPSIS -\fBkvno\fP [\fB\-q\fP] [\fB\-h\fP] [\fB\-4\fP] [\fB\-e etype\fP] +\fBkvno\fP [\fB\-q\fP] [\fB\-h\fP] [\fB\-4\fP\ |\ [\fB-c ccache\fP]\ [\fB\-e etype\fP]] \fBservice1\fP \fBservice2\fP \fB...\fP .br .SH DESCRIPTION @@ -37,7 +37,10 @@ acquires a service ticket for the specified Kerberos principals and prints out the key version numbers of each. .SH OPTIONS .TP -.B \-e +.B \-c ccache +specifies the name of a credentials cache to use (if not the default) +.TP +.B \-e etype specifies the enctype which will be requested for the session key of all the services named on the command line. This is useful in certain backward compatibility situations. diff --git a/src/clients/kvno/kvno.c b/src/clients/kvno/kvno.c index 505a73c..c860eb7 100644 --- a/src/clients/kvno/kvno.c +++ b/src/clients/kvno/kvno.c @@ -39,9 +39,12 @@ static char *prog; static void xusage() { #ifdef KRB5_KRB4_COMPAT - fprintf(stderr, "xusage: %s [-4 | -e etype] service1 service2 ...\n", prog); + fprintf(stderr, + "usage: %s [-4 | [-c ccache] [-e etype]] service1 service2 ...\n", + prog); #else - fprintf(stderr, "xusage: %s [-e etype] service1 service2 ...\n", prog); + fprintf(stderr, "usage: %s [-c ccache] [-e etype] service1 service2 ...\n", + prog); #endif exit(1); } @@ -49,19 +52,23 @@ static void xusage() int quiet = 0; static void do_v4_kvno (int argc, char *argv[]); -static void do_v5_kvno (int argc, char *argv[], char *etypestr); +static void do_v5_kvno (int argc, char *argv[], + char *ccachestr, char *etypestr); int main(int argc, char *argv[]) { int option; - char *etypestr = 0; + char *etypestr = 0, *ccachestr = 0; int v4 = 0; prog = strrchr(argv[0], '/'); prog = prog ? (prog + 1) : argv[0]; - while ((option = getopt(argc, argv, "e:hq4")) != -1) { + while ((option = getopt(argc, argv, "c:e:hq4")) != -1) { switch (option) { + case 'c': + ccachestr = optarg; + break; case 'e': etypestr = optarg; break; @@ -83,13 +90,13 @@ int main(int argc, char *argv[]) if ((argc - optind) < 1) xusage(); - if (etypestr != 0 && v4) + if ((ccachestr != 0 || etypestr != 0) && v4) xusage(); if (v4) do_v4_kvno(argc - optind, argv + optind); else - do_v5_kvno(argc - optind, argv + optind, etypestr); + do_v5_kvno(argc - optind, argv + optind, ccachestr, etypestr); return 0; } @@ -142,7 +149,8 @@ static void do_v4_kvno (int count, char *names[]) } #include -static void do_v5_kvno (int count, char *names[], char *etypestr) +static void do_v5_kvno (int count, char *names[], + char * ccachestr, char *etypestr) { krb5_context context; krb5_error_code ret; @@ -170,7 +178,10 @@ static void do_v5_kvno (int count, char *names[], char *etypestr) etype = 0; } - ret = krb5_cc_default(context, &ccache); + if (ccachestr) + ret = krb5_cc_resolve(context, ccachestr, &ccache); + else + ret = krb5_cc_default(context, &ccache); if (ret) { com_err(prog, ret, "while opening ccache"); exit(1); @@ -216,7 +227,7 @@ static void do_v5_kvno (int count, char *names[], char *etypestr) fprintf(stderr, "%s: %s while getting credentials\n", princ, error_message(ret)); - free(princ); + krb5_free_unparsed_name(context, princ); errors++; continue; @@ -229,7 +240,7 @@ static void do_v5_kvno (int count, char *names[], char *etypestr) princ, error_message(ret)); krb5_free_creds(context, out_creds); - free(princ); + krb5_free_unparsed_name(context, princ); errors++; continue; -- cgit v1.1