From 8d01a8944cd1e709b2077b8169f7becc9e66804e Mon Sep 17 00:00:00 2001 From: Johan Danielsson Date: Wed, 30 Jan 2002 10:12:21 +0000 Subject: get the default keytab from krb5.conf, and list all parts of an ANY type keytab git-svn-id: svn://svn.h5l.se/heimdal/trunk/heimdal@10816 ec53bebd-3082-4978-b11e-865c3cabbd6b --- admin/list.c | 32 ++++++++++++++++++++++++-------- 1 file changed, 24 insertions(+), 8 deletions(-) (limited to 'admin/list.c') diff --git a/admin/list.c b/admin/list.c index 4608ebf7a..503033ef0 100644 --- a/admin/list.c +++ b/admin/list.c @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997 - 2001 Kungliga Tekniska Högskolan + * Copyright (c) 1997 - 2002 Kungliga Tekniska Högskolan * (Royal Institute of Technology, Stockholm, Sweden). * All rights reserved. * @@ -71,6 +71,21 @@ do_list(const char *keytab_string) int max_timestamp = sizeof("Date") - 1; int max_key = sizeof("Key") - 1; + /* XXX specialcase the ANY type */ + if(strncasecmp(keytab_string, "ANY:", 4) == 0) { + int flag = 0; + char buf[1024]; + keytab_string += 4; + while (strsep_copy((const char**)&keytab_string, ",", + buf, sizeof(buf)) != -1) { + if(flag) + printf("\n"); + do_list(buf); + flag = 1; + } + return 0; + } + ret = krb5_kt_resolve(context, keytab_string, &keytab); if (ret) { krb5_warn(context, ret, "resolving keytab %s", keytab_string); @@ -170,7 +185,9 @@ out: int kt_list(int argc, char **argv) { + krb5_error_code ret; int optind = 0; + char kt[1024]; if(verbose_flag) list_timestamp = 1; @@ -185,13 +202,12 @@ kt_list(int argc, char **argv) } if (keytab_string == NULL) { - do_list("FILE:/etc/krb5.keytab"); -#ifdef KRB4 - printf ("\n"); - do_list("krb4:/etc/srvtab"); -#endif - } else { - do_list(keytab_string); + if((ret = krb5_kt_default_name(context, kt, sizeof(kt))) != 0) { + krb5_warn(context, ret, "getting default keytab name"); + return 0; + } + keytab_string = kt; } + do_list(keytab_string); return 0; } -- cgit v1.2.3