common: Minor change of hex2str to allow for embedded nul.
[gnupg.git] / dirmngr / dirmngr-client.c
index e20e6c0..770e941 100644 (file)
@@ -40,6 +40,7 @@
 
 #include "i18n.h"
 #include "util.h"
+#include "init.h"
 
 
 /* Constants for the options.  */
@@ -76,7 +77,7 @@ static ARGPARSE_OPTS opts[] = {
   { oUrl,      "url",       0, N_("expect an URL for --lookup")},
   { oLoadCRL,  "load-crl",  0, N_("load a CRL into the dirmngr")},
   { oSquidMode,"squid-mode",0, N_("special mode for use by Squid")},
-  { oPEM,      "pem",       0, N_("certificates are expected in PEM format")},
+  { oPEM,      "pem",       0, N_("expect certificates in PEM format")},
   { oForceDefaultResponder, "force-default-responder", 0,
     N_("force the use of the default OCSP responder")},
   { 0, NULL, 0, NULL }
@@ -140,7 +141,7 @@ my_strusage (int level)
 
   switch(level)
     {
-    case 11: p = "dirmngr-client (GnuPG)";
+    case 11: p = "dirmngr-client (@GNUPG@)";
       break;
     case 13: p = VERSION; break;
     case 17: p = PRINTABLE_OS_NAME; break;
@@ -180,6 +181,7 @@ main (int argc, char **argv )
   int cmd_loadcrl = 0;
   int cmd_squid_mode = 0;
 
+  early_system_init ();
   set_strusage (my_strusage);
   log_set_prefix ("dirmngr-client",
                   JNLIB_LOG_WITH_PREFIX);
@@ -272,7 +274,7 @@ main (int argc, char **argv )
     {
       err = read_certificate (*argv, &certbuf, &certbuflen);
       if (err)
-        log_error (_("error reading certificate from `%s': %s\n"),
+        log_error (_("error reading certificate from '%s': %s\n"),
                    *argv, gpg_strerror (err));
     }
   else
@@ -327,7 +329,7 @@ main (int argc, char **argv )
           err = do_loadcrl (ctx, *argv);
           if (err)
             {
-              log_error (_("loading CRL `%s' failed: %s\n"),
+              log_error (_("loading CRL '%s' failed: %s\n"),
                          *argv, gpg_strerror (err));
               last_err = err;
             }
@@ -408,7 +410,7 @@ status_cb (void *opaque, const char *line)
   (void)opaque;
 
   if (opt.verbose > 2)
-    log_info (_("got status: `%s'\n"), line);
+    log_info (_("got status: '%s'\n"), line);
   return 0;
 }
 
@@ -440,10 +442,13 @@ start_dirmngr (int only_daemon)
   assuan_context_t ctx;
   int try_default = 0;
 
-  infostr = opt.force_pipe_server? NULL : getenv ("DIRMNGR_INFO");
+  infostr = opt.force_pipe_server? NULL : getenv (DIRMNGR_INFO_NAME);
   if (only_daemon && (!infostr || !*infostr))
     {
-      infostr = xstrdup (dirmngr_socket_name ());
+      if (dirmngr_user_socket_name ())
+        infostr = xstrdup (dirmngr_user_socket_name ());
+      else
+        infostr = xstrdup (dirmngr_sys_socket_name ());
       try_default = 1;
     }
 
@@ -459,7 +464,7 @@ start_dirmngr (int only_daemon)
     {
       const char *pgmname;
       const char *argv[3];
-      int no_close_list[3];
+      assuan_fd_t no_close_list[3];
       int i;
 
       if (only_daemon)
@@ -486,7 +491,7 @@ start_dirmngr (int only_daemon)
       if (log_get_fd () != -1)
         no_close_list[i++] = assuan_fd_from_posix_fd (log_get_fd ());
       no_close_list[i++] = assuan_fd_from_posix_fd (es_fileno (es_stderr));
-      no_close_list[i] = -1;
+      no_close_list[i] = ASSUAN_INVALID_FD;
 
       /* Connect to the agent and perform initial handshaking.  */
       rc = assuan_pipe_connect (ctx, opt.dirmngr_program, argv,
@@ -502,7 +507,8 @@ start_dirmngr (int only_daemon)
         {
           if ( !(p = strchr (infostr, ':')) || p == infostr)
             {
-              log_error (_("malformed DIRMNGR_INFO environment variable\n"));
+              log_error (_("malformed %s environment variable\n"),
+                         DIRMNGR_INFO_NAME);
               xfree (infostr);
               if (only_daemon)
                 return NULL;
@@ -791,7 +797,7 @@ inq_cert (void *opaque, const char *line)
     }
   else
     {
-      log_info (_("unsupported inquiry `%s'\n"), line);
+      log_info (_("unsupported inquiry '%s'\n"), line);
       err = gpg_error (GPG_ERR_ASS_UNKNOWN_INQUIRE);
       /* Note that this error will let assuan_transact terminate
          immediately instead of return the error to the caller.  It is
@@ -884,7 +890,7 @@ do_loadcrl (assuan_context_t ctx, const char *filename)
       fname = canonicalize_file_name (filename);
       if (!fname)
         {
-          log_error ("error canonicalizing `%s': %s\n",
+          log_error ("error canonicalizing '%s': %s\n",
                      filename, strerror (errno));
           return gpg_error (GPG_ERR_GENERAL);
         }
@@ -938,7 +944,7 @@ do_lookup (assuan_context_t ctx, const char *pattern)
   struct b64state state;
 
   if (opt.verbose)
-    log_info (_("looking up `%s'\n"), pattern);
+    log_info (_("looking up '%s'\n"), pattern);
 
   err = b64enc_start (&state, stdout, NULL);
   if (err)