diff --git a/agent/gpg-agent.c b/agent/gpg-agent.c index d3c3891f3..4dda44cae 100644 --- a/agent/gpg-agent.c +++ b/agent/gpg-agent.c @@ -1045,6 +1045,18 @@ main (int argc, char **argv ) agent_exit (0); } + if (! opt.extra_socket) + { + opt.extra_socket = 1; /* (1 = points into r/o section) */ + socket_name_extra = GPG_AGENT_EXTRA_SOCK_NAME; + } + + if (! opt.browser_socket) + { + opt.browser_socket = 1; /* (1 = points into r/o section) */ + socket_name_browser = GPG_AGENT_BROWSER_SOCK_NAME; + } + set_debug (); if (atexit (cleanup)) @@ -1241,13 +1253,10 @@ main (int argc, char **argv ) &socket_nonce_browser); } - if (ssh_support) - { - socket_name_ssh = create_socket_name (GPG_AGENT_SSH_SOCK_NAME, 1); - fd_ssh = create_server_socket (socket_name_ssh, 0, 1, - &redir_socket_name_ssh, - &socket_nonce_ssh); - } + socket_name_ssh = create_socket_name (GPG_AGENT_SSH_SOCK_NAME, 1); + fd_ssh = create_server_socket (socket_name_ssh, 0, 1, + &redir_socket_name_ssh, + &socket_nonce_ssh); /* If we are going to exec a program in the parent, we record the PID, so that the child may check whether the program is @@ -1313,8 +1322,7 @@ main (int argc, char **argv ) *socket_name_extra = 0; if (opt.browser_socket) *socket_name_browser = 0; - if (ssh_support) - *socket_name_ssh = 0; + *socket_name_ssh = 0; if (argc) { /* Run the program given on the commandline. */ diff --git a/configure.ac b/configure.ac index fe432e8a8..85cd69a79 100644 --- a/configure.ac +++ b/configure.ac @@ -1753,6 +1753,10 @@ AC_DEFINE_UNQUOTED(GPGTAR_NAME, "gpgtar", [The name of the gpgtar tool]) AC_DEFINE_UNQUOTED(GPG_AGENT_SOCK_NAME, "S.gpg-agent", [The name of the agent socket]) +AC_DEFINE_UNQUOTED(GPG_AGENT_EXTRA_SOCK_NAME, "S.gpg-agent.rstrd", + [The name of the agent socket for remote access]) +AC_DEFINE_UNQUOTED(GPG_AGENT_BROWSER_SOCK_NAME, "S.gpg-agent.brwsr", + [The name of the agent socket for browsers]) AC_DEFINE_UNQUOTED(GPG_AGENT_SSH_SOCK_NAME, "S.gpg-agent.ssh", [The name of the agent socket for ssh]) AC_DEFINE_UNQUOTED(DIRMNGR_INFO_NAME, "DIRMNGR_INFO", diff --git a/doc/gpg-agent.texi b/doc/gpg-agent.texi index 53a6f785e..8d86add74 100644 --- a/doc/gpg-agent.texi +++ b/doc/gpg-agent.texi @@ -537,6 +537,9 @@ pinentry to pop up at the @code{tty} or display you started the agent. @anchor{option --extra-socket} @item --extra-socket @var{name} @opindex extra-socket +The extra socket is always created, you may use this option to change +the name of the socket. + Also listen on native gpg-agent connections on the given socket. The intended use for this extra socket is to setup a Unix domain socket forwarding from a remote machine to this socket on the local machine. @@ -552,7 +555,8 @@ remote machine. @opindex enable-ssh-support @opindex enable-putty-support -Enable the OpenSSH Agent protocol. +The OpenSSH Agent protocol is always enabled, but @command{gpg-agent} +will only set the @code{SSH_AUTH_SOCK} variable if this flag is given. In this mode of operation, the agent does not only implement the gpg-agent protocol, but also the agent protocol used by OpenSSH