From 3d204883a69355b95248b72e8c2078718fb07802 Mon Sep 17 00:00:00 2001 From: Sukant Hajra Date: Thu, 11 Jul 2013 01:36:50 -0500 Subject: [PATCH 1/2] fix gpg-agent "running already" check The GPG_ENV file is sourced before doing the gpg-connect-agent check, but this file (unlike the SSH_ENV file) doesn't export GPG_AGENT_INFO, so the check always fails. This results in new gpg-agents continuously being spawned. All this commit does is put in the single export to fix the problem. --- plugins/gpg-agent/gpg-agent.plugin.zsh | 1 + 1 file changed, 1 insertion(+) diff --git a/plugins/gpg-agent/gpg-agent.plugin.zsh b/plugins/gpg-agent/gpg-agent.plugin.zsh index 4071334cb..b6992479d 100644 --- a/plugins/gpg-agent/gpg-agent.plugin.zsh +++ b/plugins/gpg-agent/gpg-agent.plugin.zsh @@ -19,6 +19,7 @@ if ! gpg-connect-agent --quiet /bye > /dev/null 2> /dev/null; then # source settings of old agent, if applicable if [ -f "${GPG_ENV}" ]; then . ${GPG_ENV} > /dev/null + export GPG_AGENT_INFO fi # check again if another agent is running using the newly sourced settings From cf8d76094c2e0032ebe5cc1d579e393521ed3b86 Mon Sep 17 00:00:00 2001 From: Sukant Hajra Date: Mon, 15 Jul 2013 08:51:08 -0500 Subject: [PATCH 2/2] PLUGIN: gpg-agent: export SSH_* environment variables too If using the gpg-agent with --enable-ssh-support, the SSH_AUTH_SOCK and SSH_AGENT_PID environment variables need to be exported once sourced from GPG_ENV. Otherwise, we get no benefit from the persisting these values to GPG_ENV; subsequent openned terminals don't see the existent gpg-agent as a process for an SSH daemon. --- plugins/gpg-agent/gpg-agent.plugin.zsh | 2 ++ 1 file changed, 2 insertions(+) diff --git a/plugins/gpg-agent/gpg-agent.plugin.zsh b/plugins/gpg-agent/gpg-agent.plugin.zsh index b6992479d..3e6a34f42 100644 --- a/plugins/gpg-agent/gpg-agent.plugin.zsh +++ b/plugins/gpg-agent/gpg-agent.plugin.zsh @@ -20,6 +20,8 @@ if ! gpg-connect-agent --quiet /bye > /dev/null 2> /dev/null; then if [ -f "${GPG_ENV}" ]; then . ${GPG_ENV} > /dev/null export GPG_AGENT_INFO + export SSH_AUTH_SOCK + export SSH_AGENT_PID fi # check again if another agent is running using the newly sourced settings