diff options
author | Johan Danielsson <joda@pdc.kth.se> | 2002-01-30 10:12:21 +0000 |
---|---|---|
committer | Johan Danielsson <joda@pdc.kth.se> | 2002-01-30 10:12:21 +0000 |
commit | 8d01a8944cd1e709b2077b8169f7becc9e66804e (patch) | |
tree | f74db27c11cc33fd9b3cc3eff62a2276f1f19787 /admin/list.c | |
parent | 7f1650193495d5ce2a3bf8dea0e2502221d88f1a (diff) |
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
Diffstat (limited to 'admin/list.c')
-rw-r--r-- | admin/list.c | 32 |
1 files changed, 24 insertions, 8 deletions
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; } |