diff options
author | DongHun Kwak <dh0128.kwak@samsung.com> | 2021-02-09 16:00:46 +0900 |
---|---|---|
committer | DongHun Kwak <dh0128.kwak@samsung.com> | 2021-02-09 16:00:46 +0900 |
commit | d5a3e1c5fe16a0142f2a4554c4cfed53453bdaa2 (patch) | |
tree | 509fadb6ecb2174394d85b588b6cc74946f8d239 /tools | |
parent | e299a90138c4ee04892f06ea99394c0f55d311db (diff) | |
download | gpg2-d5a3e1c5fe16a0142f2a4554c4cfed53453bdaa2.tar.gz gpg2-d5a3e1c5fe16a0142f2a4554c4cfed53453bdaa2.tar.bz2 gpg2-d5a3e1c5fe16a0142f2a4554c4cfed53453bdaa2.zip |
Imported Upstream version 2.2.16upstream/2.2.16
Diffstat (limited to 'tools')
-rw-r--r-- | tools/gpgconf-comp.c | 43 | ||||
-rw-r--r-- | tools/gpgconf.c | 1 |
2 files changed, 24 insertions, 20 deletions
diff --git a/tools/gpgconf-comp.c b/tools/gpgconf-comp.c index 79a7489..d4b3ebd 100644 --- a/tools/gpgconf-comp.c +++ b/tools/gpgconf-comp.c @@ -1152,12 +1152,8 @@ gpg_agent_runtime_change (int killflag) pgmname = gnupg_module_name (GNUPG_MODULE_NAME_CONNECT_AGENT); if (!gnupg_default_homedir_p ()) { - abs_homedir = make_absfilename_try (gnupg_homedir (), NULL); - if (!abs_homedir) - err = gpg_error_from_syserror (); - argv[i++] = "--homedir"; - argv[i++] = abs_homedir; + argv[i++] = gnupg_homedir (); } argv[i++] = "--no-autostart"; argv[i++] = killflag? "KILLAGENT" : "RELOADAGENT"; @@ -1195,12 +1191,8 @@ scdaemon_runtime_change (int killflag) pgmname = gnupg_module_name (GNUPG_MODULE_NAME_CONNECT_AGENT); if (!gnupg_default_homedir_p ()) { - abs_homedir = make_absfilename_try (gnupg_homedir (), NULL); - if (!abs_homedir) - err = gpg_error_from_syserror (); - argv[i++] = "--homedir"; - argv[i++] = abs_homedir; + argv[i++] = gnupg_homedir (); } argv[i++] = "-s"; argv[i++] = "--no-autostart"; @@ -1239,12 +1231,8 @@ dirmngr_runtime_change (int killflag) argv[3] = NULL; else { - abs_homedir = make_absfilename_try (gnupg_homedir (), NULL); - if (!abs_homedir) - err = gpg_error_from_syserror (); - argv[3] = "--homedir"; - argv[4] = abs_homedir; + argv[4] = gnupg_homedir (); argv[5] = NULL; } @@ -1266,7 +1254,7 @@ gc_component_launch (int component) { gpg_error_t err; const char *pgmname; - const char *argv[3]; + const char *argv[5]; int i; pid_t pid; @@ -1281,13 +1269,27 @@ gc_component_launch (int component) if (!(component == GC_COMPONENT_GPG_AGENT || component == GC_COMPONENT_DIRMNGR)) { - es_fputs (_("Component not suitable for launching"), es_stderr); - es_putc ('\n', es_stderr); + log_error ("%s\n", _("Component not suitable for launching")); + gpgconf_failure (0); + } + + if (gc_component_check_options (component, NULL, NULL)) + { + log_error (_("Configuration file of component %s is broken\n"), + gc_component[component].name); + if (!opt.quiet) + log_info (_("Note: Use the command \"%s%s\" to get details.\n"), + "gpgconf --check-options ", gc_component[component].name); gpgconf_failure (0); } pgmname = gnupg_module_name (GNUPG_MODULE_NAME_CONNECT_AGENT); i = 0; + if (!gnupg_default_homedir_p ()) + { + argv[i++] = "--homedir"; + argv[i++] = gnupg_homedir (); + } if (component == GC_COMPONENT_DIRMNGR) argv[i++] = "--dirmngr"; argv[i++] = "NOP"; @@ -1688,8 +1690,9 @@ collect_error_output (estream_t fp, const char *tag) } -/* Check the options of a single component. Returns 0 if everything - is OK. */ +/* Check the options of a single component. If CONF_FILE is NULL the + * standard config file is used. If OUT is not NULL the output is + * written to that stream. Returns 0 if everything is OK. */ int gc_component_check_options (int component, estream_t out, const char *conf_file) { diff --git a/tools/gpgconf.c b/tools/gpgconf.c index 4cd0505..d9ee4a9 100644 --- a/tools/gpgconf.c +++ b/tools/gpgconf.c @@ -900,6 +900,7 @@ main (int argc, char **argv) void gpgconf_failure (gpg_error_t err) { + log_flush (); if (!err) err = gpg_error (GPG_ERR_GENERAL); gpgconf_write_status |