agent: Tell pinentry the hostname the agent is running on.
authorWerner Koch <wk@gnupg.org>
Fri, 3 Feb 2017 20:16:26 +0000 (21:16 +0100)
committerWerner Koch <wk@gnupg.org>
Fri, 3 Feb 2017 20:16:26 +0000 (21:16 +0100)
* agent/call-pinentry.c [!W32]: Incluse utsname.h
(start_pinentry): Pass nodename to OPTION/owner.

Signed-off-by: Werner Koch <wk@gnupg.org>
agent/call-pinentry.c

index 384b23a..9931665 100644 (file)
@@ -31,6 +31,7 @@
 # include <sys/wait.h>
 # include <sys/types.h>
 # include <signal.h>
+# include <sys/utsname.h>
 #endif
 #include <npth.h>
 
@@ -544,7 +545,16 @@ start_pinentry (ctrl_t ctrl)
   if (ctrl->client_pid)
     {
       char *optstr;
-      if ((optstr = xtryasprintf ("OPTION owner=%lu", ctrl->client_pid)))
+      const char *nodename = "";
+
+#ifndef HAVE_W32_SYSTEM
+      struct utsname utsbuf;
+      if (!uname (&utsbuf))
+        nodename = utsbuf.nodename;
+#endif /*!HAVE_W32_SYSTEM*/
+
+      if ((optstr = xtryasprintf ("OPTION owner=%lu %s",
+                                  ctrl->client_pid, nodename)))
         {
           assuan_transact (entry_ctx, optstr, NULL, NULL, NULL, NULL, NULL,
                            NULL);