r23648: Allow to list a custom krb5 keytab file with:
authorGünther Deschner <gd@samba.org>
Fri, 29 Jun 2007 09:01:29 +0000 (09:01 +0000)
committerGerald (Jerry) Carter <jerry@samba.org>
Wed, 10 Oct 2007 17:23:41 +0000 (12:23 -0500)
net ads keytab list /path/to/krb5.keytab

Guenther

source/libads/kerberos_keytab.c
source/utils/net_ads.c

index 95a3a37712e13501ac32de3c5949b2edb8e074a3..a1038e1f2d22c2dae935cdaeaa1d538a9b72fafe 100644 (file)
@@ -801,7 +801,7 @@ done:
  List system keytab.
 ***********************************************************************/
 
-int ads_keytab_list(void)
+int ads_keytab_list(const char *keytab_name)
 {
        krb5_error_code ret = 0;
        krb5_context context = NULL;
@@ -819,7 +819,7 @@ int ads_keytab_list(void)
                return ret;
        }
 
-       ret = smb_krb5_open_keytab(context, NULL, False, &keytab);
+       ret = smb_krb5_open_keytab(context, keytab_name, False, &keytab);
        if (ret) {
                DEBUG(1,("ads_keytab_list: smb_krb5_open_keytab failed (%s)\n", error_message(ret)));
                goto out;
index a1206bbd5240509e38ccf3d1d726d4d57de74bf4..29d7e386d8712984060430b99456da6cbc828f63 100644 (file)
@@ -2423,12 +2423,13 @@ static int net_ads_keytab_usage(int argc, const char **argv)
 "  FLUSH     Flushes out all keytab entries\n"\
 "  HELP      Prints this help message\n"\
 "  LIST      List the keytab\n"\
-"The ADD command will take arguments, the other commands\n"\
+"The ADD and LIST command will take arguments, the other commands\n"\
 "will not take any arguments.   The arguments given to ADD\n"\
 "should be a list of principals to add.  For example, \n"\
 "   net ads keytab add srv1 srv2\n"\
 "will add principals for the services srv1 and srv2 to the\n"\
 "system's keytab.\n"\
+"The LIST command takes a keytabname.\n"\
 "\n"
                );
        return -1;
@@ -2479,15 +2480,21 @@ static int net_ads_keytab_create(int argc, const char **argv)
 
 static int net_ads_keytab_list(int argc, const char **argv)
 {
-       return ads_keytab_list();
+       const char *keytab = NULL;
+
+       if (argc >= 1) {
+               keytab = argv[0];
+       }
+
+       return ads_keytab_list(keytab);
 }
 
 
 int net_ads_keytab(int argc, const char **argv)
 {
        struct functable func[] = {
-               {"CREATE", net_ads_keytab_create},
                {"ADD", net_ads_keytab_add},
+               {"CREATE", net_ads_keytab_create},
                {"FLUSH", net_ads_keytab_flush},
                {"HELP", net_ads_keytab_usage},
                {"LIST", net_ads_keytab_list},