summaryrefslogtreecommitdiff
path: root/src/share/m
diff options
context:
space:
mode:
authorDaniel Kahn Gillmor <dkg@fifthhorseman.net>2009-02-21 17:06:47 -0500
committerDaniel Kahn Gillmor <dkg@fifthhorseman.net>2009-02-21 17:06:47 -0500
commit9e5a8d819afd3ded051bef739dbc4bfb1446dc2e (patch)
tree099cf57ae697cf67ea7ba66c3756ba0be1d25ee8 /src/share/m
parenteb88374be90344d1808fe49a5bc69a547a09280d (diff)
correct return codes for monkeysphere subkey-to-ssh-agent
Diffstat (limited to 'src/share/m')
-rw-r--r--src/share/m/subkey_to_ssh_agent14
1 files changed, 8 insertions, 6 deletions
diff --git a/src/share/m/subkey_to_ssh_agent b/src/share/m/subkey_to_ssh_agent
index 7fb2fdb..4ce14f8 100644
--- a/src/share/m/subkey_to_ssh_agent
+++ b/src/share/m/subkey_to_ssh_agent
@@ -13,6 +13,9 @@
# try to add all authentication subkeys to the agent
+# FIXME: what if you only want to add one authentication subkey to the
+# agent?
+
subkey_to_ssh_agent() {
local sshaddresponse=0
local secretkeys
@@ -68,7 +71,6 @@ You might want to 'monkeysphere gen-subkey'"
trap "rm -rf $workingdir" EXIT
umask 077
mkfifo "$workingdir/passphrase"
- keysuccess=1
# FIXME: we're currently allowing any other options to get passed
# through to ssh-add. should we limit it to known ones? For
@@ -88,7 +90,7 @@ You might want to 'monkeysphere gen-subkey'"
if [ "$1" = '-d' ]; then
# we're removing the subkey:
gpg_user --export "0x${subkey}!" | openpgp2ssh "$subkey" > "$workingdir/$kname"
- (cd "$workingdir" && ssh-add -d "$kname")
+ (cd "$workingdir" && ssh-add -d "$kname") || keysuccess="$?"
else
# we're adding the subkey:
mkfifo "$workingdir/$kname"
@@ -98,8 +100,8 @@ You might want to 'monkeysphere gen-subkey'"
(cd "$workingdir" && DISPLAY=nosuchdisplay SSH_ASKPASS=/bin/false ssh-add "$@" "$kname" </dev/null )&
passphrase_prompt "Enter passphrase for key $kname: " "$workingdir/passphrase"
- wait %2
- fi || keysuccess="$?"
+ wait %2 || keysuccess="$?"
+ fi
rm -f "$workingdir/$kname"
done
@@ -108,7 +110,7 @@ You might want to 'monkeysphere gen-subkey'"
rm -rf "$workingdir"
# FIXME: sort out the return values: we're just returning the
- # success or failure of the final authentication subkey in this
- # case. What if earlier ones failed?
+ # failure code of the last authentication subkey which fails.
+ # what if more than one authentication subkey fails?
return "$keysuccess"
}