diff options
author | Werner Koch <[email protected]> | 2019-05-15 06:50:15 +0000 |
---|---|---|
committer | Werner Koch <[email protected]> | 2019-05-15 06:53:20 +0000 |
commit | 31e26037bd727a6ee9c96ba168a55c4f9def43b6 (patch) | |
tree | 781b7e73d9c771ae246a3b402763191ba207119f | |
parent | agent: correct length for uri and comment on 64-bit big-endian platforms (diff) | |
download | gnupg-31e26037bd727a6ee9c96ba168a55c4f9def43b6.tar.gz gnupg-31e26037bd727a6ee9c96ba168a55c4f9def43b6.zip |
gpgconf: Support --homedir for --launch.
* tools/gpgconf-comp.c (gpg_agent_runtime_change): Simplify because
gnupg_homedir already returns abd absolute name.
(scdaemon_runtime_change): Ditto.
(dirmngr_runtime_change): Ditto.
(gc_component_launch): Support --homedir.
--
GnuPG-bug-id: 4496
Signed-off-by: Werner Koch <[email protected]>
-rw-r--r-- | doc/tools.texi | 2 | ||||
-rw-r--r-- | tools/gpgconf-comp.c | 25 |
2 files changed, 11 insertions, 16 deletions
diff --git a/doc/tools.texi b/doc/tools.texi index 2ff6afa92..dc5ca2515 100644 --- a/doc/tools.texi +++ b/doc/tools.texi @@ -393,6 +393,8 @@ extends numerical field values by human-readable descriptions. @opindex quiet Try to be as quiet as possible. +@include opt-homedir.texi + @item -n @itemx --dry-run Do not actually change anything. This is currently only implemented diff --git a/tools/gpgconf-comp.c b/tools/gpgconf-comp.c index 79a7489f9..19912baf2 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; @@ -1288,6 +1276,11 @@ gc_component_launch (int component) 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"; |