aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorWerner Koch <[email protected]>2019-05-15 06:50:15 +0000
committerWerner Koch <[email protected]>2019-05-15 06:53:20 +0000
commit31e26037bd727a6ee9c96ba168a55c4f9def43b6 (patch)
tree781b7e73d9c771ae246a3b402763191ba207119f
parentagent: correct length for uri and comment on 64-bit big-endian platforms (diff)
downloadgnupg-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.texi2
-rw-r--r--tools/gpgconf-comp.c25
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";