krb5 commit: Use krb5_flags_to_strings() in kproplog

Greg Hudson <[email protected]>
Newsgroups gmane.comp.encryption.kerberos.cvs
Message-ID <[email protected]>
https://github.com/krb5/krb5/commit/5c52e281dd30ec7a6cdda2567c2db6dd56e97e93
commit 5c52e281dd30ec7a6cdda2567c2db6dd56e97e93
Author: Greg Hudson <[email protected]>
Date:   Tue Jun 11 11:26:04 2019 -0400

    Use krb5_flags_to_strings() in kproplog
    
    Remove the local flags table in kproplog.c and instead use
    krb5_flags_to_strings(), as was done for kadmin.c in commit
    971fae8285427b27dfd8c9a535a18eb588ee0689.
    
    ticket: 8816

 src/kprop/deps       |    2 +-
 src/kprop/kproplog.c |   40 ++++++++++------------------------------
 2 files changed, 11 insertions(+), 31 deletions(-)

diff --git a/src/kprop/deps b/src/kprop/deps
index c0f558e..cb19b0a 100644
--- a/src/kprop/deps
+++ b/src/kprop/deps
@@ -56,7 +56,7 @@ $(OUTPRE)kproplog.$(OBJEXT): $(BUILDTOP)/include/autoconf.h \
   $(BUILDTOP)/include/kadm5/admin.h $(BUILDTOP)/include/kadm5/chpass_util_strings.h \
   $(BUILDTOP)/include/kadm5/kadm_err.h $(BUILDTOP)/include/krb5/krb5.h \
   $(BUILDTOP)/include/osconf.h $(BUILDTOP)/include/profile.h \
-  $(COM_ERR_DEPS) $(top_srcdir)/include/gssrpc/auth.h \
+  $(COM_ERR_DEPS) $(top_srcdir)/include/adm_proto.h $(top_srcdir)/include/gssrpc/auth.h \
   $(top_srcdir)/include/gssrpc/auth_gss.h $(top_srcdir)/include/gssrpc/auth_unix.h \
   $(top_srcdir)/include/gssrpc/clnt.h $(top_srcdir)/include/gssrpc/rename.h \
   $(top_srcdir)/include/gssrpc/rpc.h $(top_srcdir)/include/gssrpc/rpc_msg.h \
diff --git a/src/kprop/kproplog.c b/src/kprop/kproplog.c
index 5ec97ae..865b0d6 100644
--- a/src/kprop/kproplog.c
+++ b/src/kprop/kproplog.c
@@ -19,6 +19,7 @@
 #include <syslog.h>
 #include <kdb_log.h>
 #include <kadm5/admin.h>
+#include <adm_proto.h>
 
 static char *progname;
 
@@ -36,38 +37,17 @@ usage()
 static void
 print_flags(unsigned int flags)
 {
-    unsigned int i;
-    static char *prflags[] = {
-        "DISALLOW_POSTDATED",     /* 0x00000001 */
-        "DISALLOW_FORWARDABLE",   /* 0x00000002 */
-        "DISALLOW_TGT_BASED",     /* 0x00000004 */
-        "DISALLOW_RENEWABLE",     /* 0x00000008 */
-        "DISALLOW_PROXIABLE",     /* 0x00000010 */
-        "DISALLOW_DUP_SKEY",      /* 0x00000020 */
-        "DISALLOW_ALL_TIX",       /* 0x00000040 */
-        "REQUIRES_PRE_AUTH",      /* 0x00000080 */
-        "REQUIRES_HW_AUTH",       /* 0x00000100 */
-        "REQUIRES_PWCHANGE",      /* 0x00000200 */
-        "UNKNOWN_0x00000400",     /* 0x00000400 */
-        "UNKNOWN_0x00000800",     /* 0x00000800 */
-        "DISALLOW_SVR",           /* 0x00001000 */
-        "PWCHANGE_SERVICE",       /* 0x00002000 */
-        "SUPPORT_DESMD5",         /* 0x00004000 */
-        "NEW_PRINC",              /* 0x00008000 */
-        "UNKNOWN_0x00010000",     /* 0x00010000 */
-        "UNKNOWN_0x00020000",     /* 0x00020000 */
-        "UNKNOWN_0x00040000",     /* 0x00040000 */
-        "UNKNOWN_0x00080000",     /* 0x00080000 */
-        "OK_AS_DELEGATE",         /* 0x00100000 */
-        "OK_TO_AUTH_AS_DELEGATE", /* 0x00200000 */
-        "NO_AUTH_DATA_REQUIRED",  /* 0x00400000 */
-
-    };
-
-    for (i = 0; i < sizeof(prflags) / sizeof(*prflags); i++) {
-        if (flags & (krb5_flags)(1 << i))
-            printf("\t\t\t%s\n", prflags[i]);
+    char **attrstrs, **sp;
+
+    if (krb5_flags_to_strings(flags, &attrstrs) != 0) {
+        printf("\t\t\t(error)\n");
+        return;
+    }
+    for (sp = attrstrs; sp != NULL && *sp != NULL; sp++) {
+        printf("\t\t\t%s\n", *sp);
+        free(*sp);
     }
+    free(attrstrs);
 }
 
 /* ctime() for uint32_t* */
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.