From 924355df23d02fa7219141163c7b537ee234968a Mon Sep 17 00:00:00 2001 From: Colin Patrick McCabe Date: Sun, 2 Jan 2011 12:50:53 -0800 Subject: [PATCH] auth: CEPH_KEYRING overrides g_conf.keyring Allow users to choose different keyring files by setting an environment variable, CEPH_KEYRING. Signed-off-by: Colin McCabe --- src/config.cc | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/src/config.cc b/src/config.cc index 28adc6c4fdf1b..12b135b75838a 100644 --- a/src/config.cc +++ b/src/config.cc @@ -1277,6 +1277,16 @@ ExportControl *conf_get_export_control() return ec; } +static void env_override(char **ceph_var, const char * const env_var) +{ + char *e = getenv(env_var); + if (!e) + return; + if (*ceph_var) + free(*ceph_var); + *ceph_var = strdup(e); +} + void parse_config_options(std::vector& args) { int opt_len = sizeof(config_optionsp)/sizeof(config_option); @@ -1305,6 +1315,8 @@ void parse_config_options(std::vector& args) nargs.push_back(args[i]); } + env_override(&g_conf.keyring, "CEPH_KEYRING"); + install_sighandler(SIGHUP, sighup_handler, SA_RESTART); install_sighandler(SIGSEGV, handle_fatal_signal, SA_RESETHAND | SA_NODEFER); install_sighandler(SIGABRT, handle_fatal_signal, SA_RESETHAND | SA_NODEFER); -- 2.39.5