gpgconf: Support --homedir for --launch.
authorWerner Koch <wk@gnupg.org>
Wed, 15 May 2019 06:50:15 +0000 (08:50 +0200)
committerDaniel Kahn Gillmor <dkg@fifthhorseman.net>
Thu, 22 Aug 2019 19:11:59 +0000 (20:11 +0100)
* 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 <wk@gnupg.org>
(cherry picked from commit 31e26037bd727a6ee9c96ba168a55c4f9def43b6)

Gbp-Pq: Topic from-2.2.16
Gbp-Pq: Name gpgconf-Support-homedir-for-launch.patch

doc/tools.texi
tools/gpgconf-comp.c

index b1e8b0bf039bfe3ecd3071877ab9be120e9b14d8..467fcdca7ad7de4b8e4c1bd1ff3d9a9c9eb5477f 100644 (file)
@@ -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
index b10b146f44a277814ff6931bfc4545b853a58a5f..adecfdee3e459c36d9b645aacd9dffd35fc2d1df 100644 (file)
@@ -1180,12 +1180,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";
@@ -1223,12 +1219,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";
@@ -1267,12 +1259,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;
     }
 
@@ -1294,7 +1282,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;
 
@@ -1316,6 +1304,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";