summaryrefslogtreecommitdiff
path: root/admin/list.c
diff options
context:
space:
mode:
authorJohan Danielsson <joda@pdc.kth.se>2002-01-30 10:12:21 +0000
committerJohan Danielsson <joda@pdc.kth.se>2002-01-30 10:12:21 +0000
commit8d01a8944cd1e709b2077b8169f7becc9e66804e (patch)
treef74db27c11cc33fd9b3cc3eff62a2276f1f19787 /admin/list.c
parent7f1650193495d5ce2a3bf8dea0e2502221d88f1a (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.c32
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;
}