Implement kpropd -A
authorGreg Hudson <ghudson@mit.edu>
Mon, 27 Jan 2014 03:18:18 +0000 (22:18 -0500)
committerGreg Hudson <ghudson@mit.edu>
Fri, 21 Feb 2014 01:45:55 +0000 (20:45 -0500)
The -A option causes kpropd to contact a specified admin server
(normally an intermediate slave running kadmind -proponly) instead of
the master admin server.

Based on code submitted by Richard Basch.

ticket: 7855

doc/admin/admin_commands/kpropd.rst
src/slave/kpropd.c

index 0bd0a02608f8e9baff32c7d3cb19dfe3596ae519..43b6db762e98f95975470c5daf83d59839d3ef77 100644 (file)
@@ -8,6 +8,7 @@ SYNOPSIS
 
 **kpropd**
 [**-r** *realm*]
+[**-A** *admin_server*]
 [**-a** *acl_file*]
 [**-f** *slave_dumpfile*]
 [**-F** *principal_database*]
@@ -70,6 +71,10 @@ OPTIONS
 **-r** *realm*
     Specifies the realm of the master server.
 
+**-A** *admin_server*
+    Specifies the server to be contacted for incremental updates; by
+    default, the master admin server is contacted.
+
 **-f** *file*
     Specifies the filename where the dumped principal database file is
     to be stored; by default the dumped database file is |kdcdir|\
index 3573a262ba7b4910eb40efcff98dff9a34f2f067..55ca511599c9c9e9feee91fb70c05740512b6ba6 100644 (file)
@@ -174,6 +174,7 @@ usage()
             progname);
     fprintf(stderr, _("\t[-F kerberos_db_file ] [-p kdb5_util_pathname]\n"));
     fprintf(stderr, _("\t[-x db_args]* [-P port] [-a acl_file]\n"));
+    fprintf(stderr, _("\t[-A admin_server]\n"));
     exit(1);
 }
 
@@ -1056,6 +1057,13 @@ parse_args(char **argv)
         word++;
         while (word != NULL && (ch = *word++) != '\0') {
             switch (ch) {
+            case 'A':
+                params.mask |= KADM5_CONFIG_ADMIN_SERVER;
+                params.admin_server = (*word != '\0') ? word : *argv++;
+                if (params.admin_server == NULL)
+                    usage();
+                word = NULL;
+                break;
             case 'f':
                 file = (*word != '\0') ? word : *argv++;
                 if (file == NULL)