krb5 commit: Implement kpropd -A

Greg Hudson ghudson at MIT.EDU
Thu Feb 20 21:25:35 EST 2014


https://github.com/krb5/krb5/commit/90c11ff42008a90a72ee71444b0ad799e38b7ff0
commit 90c11ff42008a90a72ee71444b0ad799e38b7ff0
Author: Greg Hudson <ghudson at mit.edu>
Date:   Sun Jan 26 22:18:18 2014 -0500

    Implement kpropd -A
    
    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 |    5 +++++
 src/slave/kpropd.c                  |    8 ++++++++
 2 files changed, 13 insertions(+), 0 deletions(-)

diff --git a/doc/admin/admin_commands/kpropd.rst b/doc/admin/admin_commands/kpropd.rst
index 0bd0a02..43b6db7 100644
--- a/doc/admin/admin_commands/kpropd.rst
+++ b/doc/admin/admin_commands/kpropd.rst
@@ -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|\
diff --git a/src/slave/kpropd.c b/src/slave/kpropd.c
index 3573a26..55ca511 100644
--- a/src/slave/kpropd.c
+++ b/src/slave/kpropd.c
@@ -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)


More information about the cvs-krb5 mailing list