From 43cba34b649a2df8c170e17a5655d060830a386e Mon Sep 17 00:00:00 2001 From: Damien Miller Date: Tue, 5 Feb 2002 12:12:49 +1100 Subject: [PATCH] - markus@cvs.openbsd.org 2002/01/29 14:27:57 [ssh-add.c] exit 2 if no agent, exit 1 if list fails; debian#61078; ok djm@ --- ChangeLog | 5 ++++- ssh-add.c | 14 +++++++++----- 2 files changed, 13 insertions(+), 6 deletions(-) diff --git a/ChangeLog b/ChangeLog index 5b31c8063..ad3371601 100644 --- a/ChangeLog +++ b/ChangeLog @@ -28,6 +28,9 @@ - stevesk@cvs.openbsd.org 2002/01/27 18:08:17 [ssh.c] handle simple case to identify FamilyLocal display; ok markus@ + - markus@cvs.openbsd.org 2002/01/29 14:27:57 + [ssh-add.c] + exit 2 if no agent, exit 1 if list fails; debian#61078; ok djm@ 20020130 - (djm) Delay PRNG seeding until we need it in ssh-keygen, from markus@ @@ -7430,4 +7433,4 @@ - Wrote replacements for strlcpy and mkdtemp - Released 1.0pre1 -$Id: ChangeLog,v 1.1806 2002/02/05 01:12:09 djm Exp $ +$Id: ChangeLog,v 1.1807 2002/02/05 01:12:49 djm Exp $ diff --git a/ssh-add.c b/ssh-add.c index 6d79357cc..b057a0892 100644 --- a/ssh-add.c +++ b/ssh-add.c @@ -35,7 +35,7 @@ */ #include "includes.h" -RCSID("$OpenBSD: ssh-add.c,v 1.49 2001/12/24 07:29:43 deraadt Exp $"); +RCSID("$OpenBSD: ssh-add.c,v 1.50 2002/01/29 14:27:57 markus Exp $"); #include @@ -187,7 +187,7 @@ update_card(AuthenticationConnection *ac, int add, const char *id) } } -static void +static int list_identities(AuthenticationConnection *ac, int do_fp) { Key *key; @@ -215,8 +215,11 @@ list_identities(AuthenticationConnection *ac, int do_fp) xfree(comment); } } - if (!had_identities) + if (!had_identities) { printf("The agent has no identities.\n"); + return -1; + } + return 0; } static int @@ -266,13 +269,14 @@ main(int argc, char **argv) ac = ssh_get_authentication_connection(); if (ac == NULL) { fprintf(stderr, "Could not open a connection to your authentication agent.\n"); - exit(1); + exit(2); } while ((ch = getopt(argc, argv, "lLdDe:s:")) != -1) { switch (ch) { case 'l': case 'L': - list_identities(ac, ch == 'l' ? 1 : 0); + if (list_identities(ac, ch == 'l' ? 1 : 0) == -1) + ret = 1; goto done; break; case 'd':