dirmngr: Fix error handling.
[gnupg.git] / g10 / server.c
index b89f0be..60b447c 100644 (file)
 
 #include "gpg.h"
 #include <assuan.h>
-#include "util.h"
-#include "i18n.h"
+#include "../common/util.h"
+#include "../common/i18n.h"
 #include "options.h"
 #include "../common/server-help.h"
 #include "../common/sysutils.h"
-#include "status.h"
+#include "../common/status.h"
 
 
 #define set_error(e,t) assuan_set_error (ctx, gpg_error (e), (t))
@@ -770,18 +770,15 @@ gpg_server (ctrl_t ctrl)
 gpg_error_t
 gpg_proxy_pinentry_notify (ctrl_t ctrl, const unsigned char *line)
 {
-  if (opt.verbose)
-    {
-      char *linecopy = xtrystrdup (line);
-      char *fields[4];
-
-      if (linecopy
-          && split_fields (linecopy, fields, DIM (fields)) >= 4
-          && !strcmp (fields[0], "PINENTRY_LAUNCHED"))
-        log_info (_("pinentry launched (pid %s, flavor %s, version %s)\n"),
-                  fields[1], fields[2], fields[3]);
+  const char *s;
 
-      xfree (linecopy);
+  if (opt.verbose
+      && !strncmp (line, "PINENTRY_LAUNCHED", 17)
+      && (line[17]==' '||!line[17]))
+    {
+      for (s = line + 17; *s && spacep (s); s++)
+        ;
+      log_info (_("pinentry launched (%s)\n"), s);
     }
 
   if (!ctrl || !ctrl->server_local