diff --git a/agent/call-pinentry.c b/agent/call-pinentry.c index fa00bf921..2bebee205 100644 --- a/agent/call-pinentry.c +++ b/agent/call-pinentry.c @@ -541,7 +541,7 @@ start_pinentry (ctrl_t ctrl) } - /* Ask the pinentry for its version and flavor and streo that as a + /* Ask the pinentry for its version and flavor and store that as a * string in MB. This information is useful for helping users to * figure out Pinentry problems. */ { @@ -555,6 +555,10 @@ start_pinentry (ctrl_t ctrl) if (assuan_transact (entry_ctx, "GETINFO version", put_membuf_cb, &mb, NULL, NULL, NULL, NULL)) put_membuf_str (&mb, "unknown"); + put_membuf_str (&mb, " "); + if (assuan_transact (entry_ctx, "GETINFO ttyinfo", + put_membuf_cb, &mb, NULL, NULL, NULL, NULL)) + put_membuf_str (&mb, "? ? ?"); put_membuf (&mb, "", 1); flavor_version = get_membuf (&mb, NULL); } diff --git a/g10/server.c b/g10/server.c index b89f0be69..e3a3bad22 100644 --- a/g10/server.c +++ b/g10/server.c @@ -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) + const char *s; + + if (opt.verbose + && !strncmp (line, "PINENTRY_LAUNCHED", 17) + && (line[17]==' '||!line[17])) { - 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]); - - xfree (linecopy); + for (s = line + 17; *s && spacep (s); s++) + ; + log_info (_("pinentry launched (%s)\n"), s); } if (!ctrl || !ctrl->server_local