From ef7b3a72f68a7b7f1cfdf5d690487e175f7525bb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Love=20H=C3=B6rnquist=20=C3=85strand?= Date: Tue, 18 Nov 2003 23:19:26 +0000 Subject: [PATCH] (main): parse kdc.conf From: Jeffrey Hutzelman git-svn-id: svn://svn.h5l.se/heimdal/trunk/heimdal@13124 ec53bebd-3082-4978-b11e-865c3cabbd6b --- lib/kadm5/dump_log.c | 15 +++++++++++++++ lib/kadm5/ipropd_master.c | 15 +++++++++++++++ lib/kadm5/ipropd_slave.c | 15 +++++++++++++++ lib/kadm5/replay_log.c | 16 ++++++++++++++++ lib/kadm5/truncate_log.c | 15 +++++++++++++++ 5 files changed, 76 insertions(+) diff --git a/lib/kadm5/dump_log.c b/lib/kadm5/dump_log.c index 4bd515e86..b59640fbc 100644 --- a/lib/kadm5/dump_log.c +++ b/lib/kadm5/dump_log.c @@ -214,10 +214,12 @@ print_entry(kadm5_server_context *server_context, } static char *realm; +static char *config_file; static int version_flag; static int help_flag; static struct getargs args[] = { + { "config-file", 'c', arg_string, &config_file }, { "realm", 'r', arg_string, &realm }, { "version", 0, arg_flag, &version_flag }, { "help", 0, arg_flag, &help_flag } @@ -232,6 +234,7 @@ main(int argc, char **argv) void *kadm_handle; kadm5_server_context *server_context; kadm5_config_params conf; + char **files; krb5_program_setup(&context, argc, argv, args, num_args, NULL); @@ -242,6 +245,18 @@ main(int argc, char **argv) exit(0); } + if (config_file == NULL) + config_file = HDB_DB_DIR "/kdc.conf"; + + ret = krb5_prepend_config_files_default(config_file, &files); + if (ret) + krb5_err(context, 1, ret, "getting configuration files"); + + ret = krb5_set_config_files(context, files); + krb5_free_config_files(files); + if (ret) + krb5_err(context, 1, ret, "reading configuration files"); + memset(&conf, 0, sizeof(conf)); if(realm) { conf.mask |= KADM5_CONFIG_REALM; diff --git a/lib/kadm5/ipropd_master.c b/lib/kadm5/ipropd_master.c index bda6788f8..f778b6198 100644 --- a/lib/kadm5/ipropd_master.c +++ b/lib/kadm5/ipropd_master.c @@ -557,8 +557,10 @@ static int version_flag; static int help_flag; static char *keytab_str = "HDB:"; static char *database; +static char *config_file; static struct getargs args[] = { + { "config-file", 'c', arg_string, &config_file }, { "realm", 'r', arg_string, &realm }, { "keytab", 'k', arg_string, &keytab_str, "keytab to get authentication from", "kspec" }, @@ -585,6 +587,7 @@ main(int argc, char **argv) u_int32_t current_version = 0, old_version = 0; krb5_keytab keytab; int optind; + char **files; optind = krb5_program_setup(&context, argc, argv, args, num_args, NULL); @@ -595,6 +598,18 @@ main(int argc, char **argv) exit(0); } + if (config_file == NULL) + config_file = HDB_DB_DIR "/kdc.conf"; + + ret = krb5_prepend_config_files_default(config_file, &files); + if (ret) + krb5_err(context, 1, ret, "getting configuration files"); + + ret = krb5_set_config_files(context, files); + krb5_free_config_files(files); + if (ret) + krb5_err(context, 1, ret, "reading configuration files"); + time_before_gone = parse_time (slave_time_gone, "s"); if (time_before_gone < 0) krb5_errx (context, 1, "couldn't parse time: %s", slave_time_gone); diff --git a/lib/kadm5/ipropd_slave.c b/lib/kadm5/ipropd_slave.c index 23f84ae88..ef9219035 100644 --- a/lib/kadm5/ipropd_slave.c +++ b/lib/kadm5/ipropd_slave.c @@ -338,12 +338,14 @@ receive_everything (krb5_context context, int fd, krb5_err (context, 1, ret, "db->destroy"); } +static char *config_file; static char *realm; static int version_flag; static int help_flag; static char *keytab_str; static struct getargs args[] = { + { "config-file", 'c', arg_string, &config_file }, { "realm", 'r', arg_string, &realm }, { "keytab", 'k', arg_string, &keytab_str, "keytab to get authentication from", "kspec" }, @@ -374,6 +376,7 @@ main(int argc, char **argv) int master_fd; krb5_ccache ccache; krb5_principal server; + char **files; int optind; const char *master; @@ -387,6 +390,18 @@ main(int argc, char **argv) exit(0); } + if (config_file == NULL) + config_file = HDB_DB_DIR "/kdc.conf"; + + ret = krb5_prepend_config_files_default(config_file, &files); + if (ret) + krb5_err(context, 1, ret, "getting configuration files"); + + ret = krb5_set_config_files(context, files); + krb5_free_config_files(files); + if (ret) + krb5_err(context, 1, ret, "reading configuration files"); + argc -= optind; argv += optind; diff --git a/lib/kadm5/replay_log.c b/lib/kadm5/replay_log.c index 50e92bf7f..d7c61fe65 100644 --- a/lib/kadm5/replay_log.c +++ b/lib/kadm5/replay_log.c @@ -66,9 +66,12 @@ apply_entry(kadm5_server_context *server_context, printf ("done\n"); } +static char *config_file; int version_flag; int help_flag; + struct getargs args[] = { + { "config-file", 'c', arg_string, &config_file }, { "start-version", 0, arg_integer, &start_version, "start replay with this version" }, { "end-version", 0, arg_integer, &end_version, "end replay with this version" }, { "version", 0, arg_flag, &version_flag }, @@ -84,6 +87,7 @@ main(int argc, char **argv) void *kadm_handle; kadm5_config_params conf; kadm5_server_context *server_context; + char **files; krb5_program_setup(&context, argc, argv, args, num_args, NULL); @@ -94,6 +98,18 @@ main(int argc, char **argv) exit(0); } + if (config_file == NULL) + config_file = HDB_DB_DIR "/kdc.conf"; + + ret = krb5_prepend_config_files_default(config_file, &files); + if (ret) + krb5_err(context, 1, ret, "getting configuration files"); + + ret = krb5_set_config_files(context, files); + krb5_free_config_files(files); + if (ret) + krb5_err(context, 1, ret, "reading configuration files"); + memset(&conf, 0, sizeof(conf)); ret = kadm5_init_with_password_ctx (context, KADM5_ADMIN_SERVICE, diff --git a/lib/kadm5/truncate_log.c b/lib/kadm5/truncate_log.c index be1f99b8a..800fb0be1 100644 --- a/lib/kadm5/truncate_log.c +++ b/lib/kadm5/truncate_log.c @@ -35,11 +35,13 @@ RCSID("$Id$"); +static char *config_file; static char *realm; static int version_flag; static int help_flag; static struct getargs args[] = { + { "config-file", 'c', arg_string, &config_file }, { "realm", 'r', arg_string, &realm }, { "version", 0, arg_flag, &version_flag }, { "help", 0, arg_flag, &help_flag } @@ -55,6 +57,7 @@ main(int argc, char **argv) void *kadm_handle; kadm5_server_context *server_context; kadm5_config_params conf; + char **files; krb5_program_setup(&context, argc, argv, args, num_args, NULL); @@ -65,6 +68,18 @@ main(int argc, char **argv) exit(0); } + if (config_file == NULL) + config_file = HDB_DB_DIR "/kdc.conf"; + + ret = krb5_prepend_config_files_default(config_file, &files); + if (ret) + krb5_err(context, 1, ret, "getting configuration files"); + + ret = krb5_set_config_files(context, files); + krb5_free_config_files(files); + if (ret) + krb5_err(context, 1, ret, "reading configuration files"); + memset(&conf, 0, sizeof(conf)); if(realm) { conf.mask |= KADM5_CONFIG_REALM;