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
This commit is contained in:
32
admin/list.c
32
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).
|
* (Royal Institute of Technology, Stockholm, Sweden).
|
||||||
* All rights reserved.
|
* All rights reserved.
|
||||||
*
|
*
|
||||||
@@ -71,6 +71,21 @@ do_list(const char *keytab_string)
|
|||||||
int max_timestamp = sizeof("Date") - 1;
|
int max_timestamp = sizeof("Date") - 1;
|
||||||
int max_key = sizeof("Key") - 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);
|
ret = krb5_kt_resolve(context, keytab_string, &keytab);
|
||||||
if (ret) {
|
if (ret) {
|
||||||
krb5_warn(context, ret, "resolving keytab %s", keytab_string);
|
krb5_warn(context, ret, "resolving keytab %s", keytab_string);
|
||||||
@@ -170,7 +185,9 @@ out:
|
|||||||
int
|
int
|
||||||
kt_list(int argc, char **argv)
|
kt_list(int argc, char **argv)
|
||||||
{
|
{
|
||||||
|
krb5_error_code ret;
|
||||||
int optind = 0;
|
int optind = 0;
|
||||||
|
char kt[1024];
|
||||||
|
|
||||||
if(verbose_flag)
|
if(verbose_flag)
|
||||||
list_timestamp = 1;
|
list_timestamp = 1;
|
||||||
@@ -185,13 +202,12 @@ kt_list(int argc, char **argv)
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (keytab_string == NULL) {
|
if (keytab_string == NULL) {
|
||||||
do_list("FILE:/etc/krb5.keytab");
|
if((ret = krb5_kt_default_name(context, kt, sizeof(kt))) != 0) {
|
||||||
#ifdef KRB4
|
krb5_warn(context, ret, "getting default keytab name");
|
||||||
printf ("\n");
|
return 0;
|
||||||
do_list("krb4:/etc/srvtab");
|
}
|
||||||
#endif
|
keytab_string = kt;
|
||||||
} else {
|
|
||||||
do_list(keytab_string);
|
|
||||||
}
|
}
|
||||||
|
do_list(keytab_string);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user