From 9d0e388c6f6094308868b6fcb929b765c8fa05d9 Mon Sep 17 00:00:00 2001 From: Johan Danielsson Date: Fri, 8 Aug 1997 22:11:10 +0000 Subject: [PATCH] Use hdb_foreach. git-svn-id: svn://svn.h5l.se/heimdal/trunk/heimdal@2819 ec53bebd-3082-4978-b11e-865c3cabbd6b --- admin/dump.c | 32 +++++++++++++++++--------------- kadmin/dump.c | 32 +++++++++++++++++--------------- 2 files changed, 34 insertions(+), 30 deletions(-) diff --git a/admin/dump.c b/admin/dump.c index 5da100c2c..486176c30 100644 --- a/admin/dump.c +++ b/admin/dump.c @@ -152,14 +152,22 @@ hdb_entry2string(hdb_entry *ent, char **str) return 0; } +krb5_error_code +print_entry(krb5_context context, HDB *db, hdb_entry *entry, void *data) +{ + char *p; + hdb_entry2string(entry, &p); + fprintf((FILE*)data, "%s\n", p); + free(p); + return 0; +} + int dump(int argc, char **argv) { HDB *db; - hdb_entry ent; - int err; - int i; + int ret; FILE *f; if(argc < 2) @@ -168,22 +176,16 @@ dump(int argc, char **argv) f = fopen(argv[1], "w"); - err = hdb_open(context, &db, database, O_RDONLY, 0600); - if(err){ - warnx("hdb_open: %s", krb5_get_err_text(context, err)); + ret = hdb_open(context, &db, database, O_RDONLY, 0600); + if(ret){ + krb5_warn(context, ret, "hdb_open"); if(f != stdout) fclose(f); return 0; } - err = db->firstkey(context, db, &ent); - while(err == 0){ - char *p; - hdb_entry2string(&ent, &p); - fprintf(f, "%s\n", p); - free(p); - hdb_free_entry(context, &ent); - err = db->nextkey(context, db, &ent); - } + + hdb_foreach(context, db, print_entry, f); + if(f != stdout) fclose(f); db->close(context, db); diff --git a/kadmin/dump.c b/kadmin/dump.c index 5da100c2c..486176c30 100644 --- a/kadmin/dump.c +++ b/kadmin/dump.c @@ -152,14 +152,22 @@ hdb_entry2string(hdb_entry *ent, char **str) return 0; } +krb5_error_code +print_entry(krb5_context context, HDB *db, hdb_entry *entry, void *data) +{ + char *p; + hdb_entry2string(entry, &p); + fprintf((FILE*)data, "%s\n", p); + free(p); + return 0; +} + int dump(int argc, char **argv) { HDB *db; - hdb_entry ent; - int err; - int i; + int ret; FILE *f; if(argc < 2) @@ -168,22 +176,16 @@ dump(int argc, char **argv) f = fopen(argv[1], "w"); - err = hdb_open(context, &db, database, O_RDONLY, 0600); - if(err){ - warnx("hdb_open: %s", krb5_get_err_text(context, err)); + ret = hdb_open(context, &db, database, O_RDONLY, 0600); + if(ret){ + krb5_warn(context, ret, "hdb_open"); if(f != stdout) fclose(f); return 0; } - err = db->firstkey(context, db, &ent); - while(err == 0){ - char *p; - hdb_entry2string(&ent, &p); - fprintf(f, "%s\n", p); - free(p); - hdb_free_entry(context, &ent); - err = db->nextkey(context, db, &ent); - } + + hdb_foreach(context, db, print_entry, f); + if(f != stdout) fclose(f); db->close(context, db);