[git] GnuPG - branch, master, updated. gnupg-2.1.12-58-g36550dd

by Werner Koch cvs at cvs.gnupg.org
Tue Jun 7 13:50:58 CEST 2016


This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "The GNU Privacy Guard".

The branch, master has been updated
       via  36550dde998fa1d497098050ca2d4e1a952ed6b6 (commit)
       via  fb88f37c40dc156fa0b5bfba4ac85f1e553fd7e9 (commit)
      from  22a7ef01aa2c0eb77bcc40174d09104acc35cab1 (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.

- Log -----------------------------------------------------------------
commit 36550dde998fa1d497098050ca2d4e1a952ed6b6
Author: Werner Koch <wk at gnupg.org>
Date:   Tue Jun 7 13:48:46 2016 +0200

    common: New function gnupg_socketdir.
    
    * common/homedir.c (gnupg_socketdir): New.
    * agent/gpg-agent.c (create_socket_name): Use new function instead of
    gnupg_homedir.
    (check_own_socket): Ditto.
    (check_for_running_agent): Ditto.
    * agent/preset-passphrase.c (main): Ditto.
    * common/asshelp.c (start_new_gpg_agent): Ditto.
    * scd/scdaemon.c (create_socket_name): Ditto.
    * tools/gpgconf.c (main): Ditto.
    * tools/symcryptrun.c (main): Ditto.
    
    Signed-off-by: Werner Koch <wk at gnupg.org>

diff --git a/agent/gpg-agent.c b/agent/gpg-agent.c
index 1832296..e5b352c 100644
--- a/agent/gpg-agent.c
+++ b/agent/gpg-agent.c
@@ -1762,7 +1762,7 @@ create_socket_name (char *standard_name, int with_homedir)
   char *name;
 
   if (with_homedir)
-    name = make_filename (gnupg_homedir (), standard_name, NULL);
+    name = make_filename (gnupg_socketdir (), standard_name, NULL);
   else
     name = make_filename (standard_name, NULL);
   if (strchr (name, PATHSEP_C))
@@ -2729,7 +2729,7 @@ check_own_socket (void)
   if (check_own_socket_running || shutdown_pending)
     return;  /* Still running or already shutting down.  */
 
-  sockname = make_filename_try (gnupg_homedir (), GPG_AGENT_SOCK_NAME, NULL);
+  sockname = make_filename_try (gnupg_socketdir (), GPG_AGENT_SOCK_NAME, NULL);
   if (!sockname)
     return; /* Out of memory.  */
 
@@ -2755,7 +2755,7 @@ check_for_running_agent (int silent)
   char *sockname;
   assuan_context_t ctx = NULL;
 
-  sockname = make_filename_try (gnupg_homedir (), GPG_AGENT_SOCK_NAME, NULL);
+  sockname = make_filename_try (gnupg_socketdir (), GPG_AGENT_SOCK_NAME, NULL);
   if (!sockname)
     return gpg_error_from_syserror ();
 
diff --git a/agent/preset-passphrase.c b/agent/preset-passphrase.c
index 29fdfe8..549ecc3 100644
--- a/agent/preset-passphrase.c
+++ b/agent/preset-passphrase.c
@@ -245,7 +245,7 @@ main (int argc, char **argv)
 
   /* Tell simple-pwquery about the the standard socket name.  */
   {
-    char *tmp = make_filename (gnupg_homedir (), GPG_AGENT_SOCK_NAME, NULL);
+    char *tmp = make_filename (gnupg_socketdir (), GPG_AGENT_SOCK_NAME, NULL);
     simple_pw_set_socket (tmp);
     xfree (tmp);
   }
diff --git a/common/asshelp.c b/common/asshelp.c
index f89d1d5..5c32c6e 100644
--- a/common/asshelp.c
+++ b/common/asshelp.c
@@ -374,7 +374,14 @@ start_new_gpg_agent (assuan_context_t *r_ctx,
       return err;
     }
 
-  sockname = make_absfilename (gnupg_homedir (), GPG_AGENT_SOCK_NAME, NULL);
+  sockname = make_filename_try (gnupg_socketdir (), GPG_AGENT_SOCK_NAME, NULL);
+  if (!sockname)
+    {
+      err = gpg_err_make (errsource, gpg_err_code_from_syserror ());
+      assuan_release (ctx);
+      return err;
+    }
+
   err = assuan_socket_connect (ctx, sockname, 0, 0);
   if (err && autostart)
     {
diff --git a/common/homedir.c b/common/homedir.c
index eccffec..8992bc6 100644
--- a/common/homedir.c
+++ b/common/homedir.c
@@ -375,7 +375,7 @@ w32_commondir (void)
 
 
 /* Change the homedir.  Some care must be taken to set this early
- * enough becuase previous calls to gnupg_homedir may else return a
+ * enough because previous calls to gnupg_homedir may else return a
  * different string.  */
 void
 gnupg_set_homedir (const char *newdir)
@@ -400,6 +400,35 @@ gnupg_homedir (void)
 }
 
 
+/*
+ * Return the name of the socket dir.  That is the directory used for
+ * the IPC local sockets.  This is an absolute filename.
+ */
+const char *
+gnupg_socketdir (void)
+{
+  static char *name;
+
+  if (!name)
+    {
+      /* Check XDG variable.  */
+
+      /* XDG is not set: Check whether we have a /run directory.  */
+
+      /* If there is no run directpry we assume a /var/run directory.  */
+
+      /* Check that the user directory exists or create it if
+       * required,  */
+
+      /* If nothing works fall back to the homedir.  */
+      if (!name)
+        name = make_absfilename (gnupg_homedir (), NULL);
+    }
+
+  return name;
+}
+
+
 /* Return the name of the sysconfdir.  This is a static string.  This
    function is required because under Windows we can't simply compile
    it in.  */
@@ -631,7 +660,7 @@ dirmngr_user_socket_name (void)
   static char *name;
 
   if (!name)
-    name = make_absfilename (default_homedir (), DIRMNGR_SOCK_NAME, NULL);
+    name = make_filename (gnupg_socketdir (), DIRMNGR_SOCK_NAME, NULL);
   return name;
 }
 
diff --git a/common/util.h b/common/util.h
index 634ae06..0621047 100644
--- a/common/util.h
+++ b/common/util.h
@@ -222,6 +222,7 @@ const char *standard_homedir (void);
 const char *default_homedir (void);
 void gnupg_set_homedir (const char *newdir);
 const char *gnupg_homedir (void);
+const char *gnupg_socketdir (void);
 const char *gnupg_sysconfdir (void);
 const char *gnupg_bindir (void);
 const char *gnupg_libexecdir (void);
diff --git a/scd/scdaemon.c b/scd/scdaemon.c
index 576dbf9..215e63f 100644
--- a/scd/scdaemon.c
+++ b/scd/scdaemon.c
@@ -1042,7 +1042,7 @@ create_socket_name (char *standard_name)
 {
   char *name;
 
-  name = make_filename (gnupg_homedir (), standard_name, NULL);
+  name = make_filename (gnupg_socketdir (), standard_name, NULL);
   if (strchr (name, PATHSEP_C))
     {
       log_error (("'%s' are not allowed in the socket name\n"), PATHSEP_S);
diff --git a/tools/gpgconf.c b/tools/gpgconf.c
index 180c88a..e5a6c22 100644
--- a/tools/gpgconf.c
+++ b/tools/gpgconf.c
@@ -375,7 +375,7 @@ main (int argc, char **argv)
         }
 
       {
-        char *tmp = make_filename (default_homedir (),
+        char *tmp = make_filename (gnupg_socketdir (),
                                    GPG_AGENT_SOCK_NAME, NULL);
         es_fprintf (outfp, "agent-socket:%s\n", gc_percent_escape (tmp));
         xfree (tmp);
diff --git a/tools/symcryptrun.c b/tools/symcryptrun.c
index 49c17c5..98813d5 100644
--- a/tools/symcryptrun.c
+++ b/tools/symcryptrun.c
@@ -1008,7 +1008,7 @@ main (int argc, char **argv)
 
   /* Tell simple-pwquery about the the standard socket name.  */
   {
-    char *tmp = make_filename (gnupg_homedir (), GPG_AGENT_SOCK_NAME, NULL);
+    char *tmp = make_filename (gnupg_socketgdir (), GPG_AGENT_SOCK_NAME, NULL);
     simple_pw_set_socket (tmp);
     xfree (tmp);
   }

commit fb88f37c40dc156fa0b5bfba4ac85f1e553fd7e9
Author: Werner Koch <wk at gnupg.org>
Date:   Tue Jun 7 13:09:00 2016 +0200

    common: Remove homedir arg from start_new_{dirmngr,gpg_agent}.
    
    * common/asshelp.c (start_new_gpg_agent): Remove arg 'homedir' in
    favor of gnupg_homedir ().  Change all callers.
    (start_new_dirmngr): Ditto.
    * common/get-passphrase.c (gnupg_prepare_get_passphrase): Remove arg
    'homedir'.
    
    Signed-off-by: Werner Koch <wk at gnupg.org>

diff --git a/agent/protect-tool.c b/agent/protect-tool.c
index fdb7913..c2bf87d 100644
--- a/agent/protect-tool.c
+++ b/agent/protect-tool.c
@@ -630,7 +630,6 @@ main (int argc, char **argv )
   /* Set the information which can't be taken from envvars.  */
   gnupg_prepare_get_passphrase (GPG_ERR_SOURCE_DEFAULT,
                                 opt.verbose,
-                                gnupg_homedir (),
                                 opt_agent_program,
                                 NULL, NULL, NULL);
 
diff --git a/common/asshelp.c b/common/asshelp.c
index f2b4402..f89d1d5 100644
--- a/common/asshelp.c
+++ b/common/asshelp.c
@@ -351,7 +351,6 @@ unlock_spawning (lock_spawn_t *lock, const char *name)
 gpg_error_t
 start_new_gpg_agent (assuan_context_t *r_ctx,
                      gpg_err_source_t errsource,
-                     const char *homedir,
                      const char *agent_program,
                      const char *opt_lc_ctype,
                      const char *opt_lc_messages,
@@ -375,7 +374,7 @@ start_new_gpg_agent (assuan_context_t *r_ctx,
       return err;
     }
 
-  sockname = make_absfilename (homedir, GPG_AGENT_SOCK_NAME, NULL);
+  sockname = make_absfilename (gnupg_homedir (), GPG_AGENT_SOCK_NAME, NULL);
   err = assuan_socket_connect (ctx, sockname, 0, 0);
   if (err && autostart)
     {
@@ -418,7 +417,7 @@ start_new_gpg_agent (assuan_context_t *r_ctx,
       /* We better pass an absolute home directory to the agent just
          in case gpg-agent does not convert the passed name to an
          absolute one (which it should do).  */
-      abs_homedir = make_absfilename_try (homedir, NULL);
+      abs_homedir = make_absfilename_try (gnupg_homedir (), NULL);
       if (!abs_homedir)
         {
           gpg_error_t tmperr = gpg_err_make (errsource,
@@ -455,7 +454,7 @@ start_new_gpg_agent (assuan_context_t *r_ctx,
       argv[i++] = "--daemon";
       argv[i++] = NULL;
 
-      if (!(err = lock_spawning (&lock, homedir, "agent", verbose))
+      if (!(err = lock_spawning (&lock, gnupg_homedir (), "agent", verbose))
           && assuan_socket_connect (ctx, sockname, 0, 0))
         {
           err = gnupg_spawn_process_detached (program? program : agent_program,
@@ -538,7 +537,6 @@ start_new_gpg_agent (assuan_context_t *r_ctx,
 gpg_error_t
 start_new_dirmngr (assuan_context_t *r_ctx,
                    gpg_err_source_t errsource,
-                   const char *homedir,
                    const char *dirmngr_program,
                    int autostart,
                    int verbose, int debug,
@@ -605,7 +603,7 @@ start_new_dirmngr (assuan_context_t *r_ctx,
         status_cb (status_cb_arg, STATUS_PROGRESS,
                    "starting_dirmngr ? 0 0", NULL);
 
-      abs_homedir = make_absfilename (homedir, NULL);
+      abs_homedir = make_absfilename (gnupg_homedir (), NULL);
       if (!abs_homedir)
         {
           gpg_error_t tmperr = gpg_err_make (errsource,
@@ -641,7 +639,7 @@ start_new_dirmngr (assuan_context_t *r_ctx,
          TRY_SYSTEM_DAEMON should never be true because
          dirmngr_user_socket_name() won't return NULL.  */
 
-      if (!(err = lock_spawning (&lock, homedir, "dirmngr", verbose))
+      if (!(err = lock_spawning (&lock, gnupg_homedir (), "dirmngr", verbose))
           && assuan_socket_connect (ctx, sockname, 0, 0))
         {
           err = gnupg_spawn_process_detached (dirmngr_program, argv, NULL);
@@ -678,7 +676,6 @@ start_new_dirmngr (assuan_context_t *r_ctx,
       xfree (abs_homedir);
     }
 #else
-  (void)homedir;
   (void)dirmngr_program;
   (void)verbose;
   (void)status_cb;
diff --git a/common/asshelp.h b/common/asshelp.h
index 20414bd..4eb1d92 100644
--- a/common/asshelp.h
+++ b/common/asshelp.h
@@ -54,7 +54,6 @@ send_pinentry_environment (assuan_context_t ctx,
 gpg_error_t
 start_new_gpg_agent (assuan_context_t *r_ctx,
                      gpg_err_source_t errsource,
-                     const char *homedir,
                      const char *agent_program,
                      const char *opt_lc_ctype,
                      const char *opt_lc_messages,
@@ -68,7 +67,6 @@ start_new_gpg_agent (assuan_context_t *r_ctx,
 gpg_error_t
 start_new_dirmngr (assuan_context_t *r_ctx,
                    gpg_err_source_t errsource,
-                   const char *homedir,
                    const char *dirmngr_program,
                    int autostart, int verbose, int debug,
                    gpg_error_t (*status_cb)(ctrl_t, int, ...),
diff --git a/common/get-passphrase.c b/common/get-passphrase.c
index f1517fb..8f3137b 100644
--- a/common/get-passphrase.c
+++ b/common/get-passphrase.c
@@ -47,7 +47,6 @@ static struct
 {
   gpg_err_source_t errsource;
   int verbosity;
-  const char *homedir;
   const char *agent_program;
   const char *lc_ctype;
   const char *lc_messages;
@@ -62,7 +61,6 @@ static struct
 void
 gnupg_prepare_get_passphrase (gpg_err_source_t errsource,
                               int verbosity,
-                              const char *homedir,
                               const char *agent_program,
                               const char *opt_lc_ctype,
                               const char *opt_lc_messages,
@@ -70,7 +68,6 @@ gnupg_prepare_get_passphrase (gpg_err_source_t errsource,
 {
   agentargs.errsource          = errsource;
   agentargs.verbosity          = verbosity;
-  agentargs.homedir            = homedir;
   agentargs.agent_program      = agent_program;
   agentargs.lc_ctype           = opt_lc_ctype;
   agentargs.lc_messages        = opt_lc_messages;
@@ -93,7 +90,6 @@ start_agent (void)
 
   err = start_new_gpg_agent (&agent_ctx,
                              agentargs.errsource,
-                             agentargs.homedir,
                              agentargs.agent_program,
                              agentargs.lc_ctype,
                              agentargs.lc_messages,
diff --git a/common/get-passphrase.h b/common/get-passphrase.h
index a69262f..7e5cac0 100644
--- a/common/get-passphrase.h
+++ b/common/get-passphrase.h
@@ -34,7 +34,6 @@
 
 void gnupg_prepare_get_passphrase (gpg_err_source_t errsource,
                                    int verbosity,
-                                   const char *homedir,
                                    const char *agent_program,
                                    const char *opt_lc_ctype,
                                    const char *opt_lc_messages,
diff --git a/dirmngr/dirmngr-client.c b/dirmngr/dirmngr-client.c
index c6a33d7..9b004cc 100644
--- a/dirmngr/dirmngr-client.c
+++ b/dirmngr/dirmngr-client.c
@@ -298,7 +298,6 @@ main (int argc, char **argv )
 
   err = start_new_dirmngr (&ctx,
                            GPG_ERR_SOURCE_DEFAULT,
-                           default_homedir (),
                            opt.dirmngr_program
                              ? opt.dirmngr_program
                              : gnupg_module_name (GNUPG_MODULE_NAME_DIRMNGR),
diff --git a/g10/call-agent.c b/g10/call-agent.c
index ad4e67c..46dfd57 100644
--- a/g10/call-agent.c
+++ b/g10/call-agent.c
@@ -303,7 +303,6 @@ start_agent (ctrl_t ctrl, int for_card)
     {
       rc = start_new_gpg_agent (&agent_ctx,
                                 GPG_ERR_SOURCE_DEFAULT,
-                                gnupg_homedir (),
                                 opt.agent_program,
                                 opt.lc_ctype, opt.lc_messages,
                                 opt.session_env,
diff --git a/g10/call-dirmngr.c b/g10/call-dirmngr.c
index f9a0e19..75a7f46 100644
--- a/g10/call-dirmngr.c
+++ b/g10/call-dirmngr.c
@@ -177,7 +177,6 @@ create_context (ctrl_t ctrl, assuan_context_t *r_ctx)
   *r_ctx = NULL;
   err = start_new_dirmngr (&ctx,
                            GPG_ERR_SOURCE_DEFAULT,
-                           gnupg_homedir (),
                            opt.dirmngr_program,
                            opt.autostart, opt.verbose, DBG_IPC,
                            NULL /*gpg_status2*/, ctrl);
diff --git a/sm/call-agent.c b/sm/call-agent.c
index 09ae359..c7facbb 100644
--- a/sm/call-agent.c
+++ b/sm/call-agent.c
@@ -133,7 +133,6 @@ start_agent (ctrl_t ctrl)
     {
       rc = start_new_gpg_agent (&agent_ctx,
                                 GPG_ERR_SOURCE_DEFAULT,
-                                gnupg_homedir (),
                                 opt.agent_program,
                                 opt.lc_ctype, opt.lc_messages,
                                 opt.session_env,
diff --git a/sm/call-dirmngr.c b/sm/call-dirmngr.c
index a3b9ca8..7e26c3a 100644
--- a/sm/call-dirmngr.c
+++ b/sm/call-dirmngr.c
@@ -248,7 +248,7 @@ start_dirmngr_ext (ctrl_t ctrl, assuan_context_t *ctx_r)
      to take care of the implicit option sending caching. */
 
   err = start_new_dirmngr (&ctx, GPG_ERR_SOURCE_DEFAULT,
-                           gnupg_homedir (), opt.dirmngr_program,
+                           opt.dirmngr_program,
                            opt.autostart, opt.verbose, DBG_IPC,
                            gpgsm_status2, ctrl);
   if (!opt.autostart && gpg_err_code (err) == GPG_ERR_NO_DIRMNGR)
diff --git a/tools/gpg-connect-agent.c b/tools/gpg-connect-agent.c
index eb8b51f..0eb43fb 100644
--- a/tools/gpg-connect-agent.c
+++ b/tools/gpg-connect-agent.c
@@ -2208,7 +2208,6 @@ start_agent (void)
   if (opt.use_dirmngr)
     err = start_new_dirmngr (&ctx,
                              GPG_ERR_SOURCE_DEFAULT,
-                             gnupg_homedir (),
                              opt.dirmngr_program,
                              opt.autostart,
                              !opt.quiet, 0,
@@ -2216,7 +2215,6 @@ start_agent (void)
   else
     err = start_new_gpg_agent (&ctx,
                                GPG_ERR_SOURCE_DEFAULT,
-                               gnupg_homedir (),
                                opt.agent_program,
                                NULL, NULL,
                                session_env,

-----------------------------------------------------------------------

Summary of changes:
 agent/gpg-agent.c         |  6 +++---
 agent/preset-passphrase.c |  2 +-
 agent/protect-tool.c      |  1 -
 common/asshelp.c          | 20 ++++++++++++--------
 common/asshelp.h          |  2 --
 common/get-passphrase.c   |  4 ----
 common/get-passphrase.h   |  1 -
 common/homedir.c          | 33 +++++++++++++++++++++++++++++++--
 common/util.h             |  1 +
 dirmngr/dirmngr-client.c  |  1 -
 g10/call-agent.c          |  1 -
 g10/call-dirmngr.c        |  1 -
 scd/scdaemon.c            |  2 +-
 sm/call-agent.c           |  1 -
 sm/call-dirmngr.c         |  2 +-
 tools/gpg-connect-agent.c |  2 --
 tools/gpgconf.c           |  2 +-
 tools/symcryptrun.c       |  2 +-
 18 files changed, 52 insertions(+), 32 deletions(-)


hooks/post-receive
-- 
The GNU Privacy Guard
http://git.gnupg.org




More information about the Gnupg-commits mailing list