summaryrefslogtreecommitdiff
path: root/ssh-agent.c
diff options
context:
space:
mode:
authorDamien Miller <djm@mindrot.org>2003-01-22 11:47:19 +1100
committerDamien Miller <djm@mindrot.org>2003-01-22 11:47:19 +1100
commit53d81483f0bcea8af2207583bb6e83c187d522fc (patch)
treeead593d8abda01c84fe93cf74121e397fc0b1527 /ssh-agent.c
parent89fe3f30a71dee3b5effbcbc3b142c86ab129fe2 (diff)
- (djm) OpenBSD CVS Sync
- marc@cvs.openbsd.org 2003/01/21 18:14:36 [ssh-agent.1 ssh-agent.c] Add a -t life option to ssh-agent that set the default lifetime. The default can still be overriden by using -t in ssh-add. OK markus@
Diffstat (limited to 'ssh-agent.c')
-rw-r--r--ssh-agent.c16
1 files changed, 14 insertions, 2 deletions
diff --git a/ssh-agent.c b/ssh-agent.c
index cca720ee2..554f8942a 100644
--- a/ssh-agent.c
+++ b/ssh-agent.c
@@ -35,7 +35,7 @@
#include "includes.h"
#include "openbsd-compat/sys-queue.h"
-RCSID("$OpenBSD: ssh-agent.c,v 1.105 2002/10/01 20:34:12 markus Exp $");
+RCSID("$OpenBSD: ssh-agent.c,v 1.106 2003/01/21 18:14:36 marc Exp $");
#include <openssl/evp.h>
#include <openssl/md5.h>
@@ -106,6 +106,9 @@ extern char *__progname;
char *__progname;
#endif
+/* Default lifetime (0 == forever) */
+static int lifetime = 0;
+
static void
close_socket(SocketEntry *e)
{
@@ -468,6 +471,8 @@ process_add_identity(SocketEntry *e, int version)
break;
}
}
+ if (lifetime && !death)
+ death = time(NULL) + lifetime;
if (lookup_identity(k, version) == NULL) {
Identity *id = xmalloc(sizeof(Identity));
id->key = k;
@@ -930,6 +935,7 @@ usage(void)
fprintf(stderr, " -k Kill the current agent.\n");
fprintf(stderr, " -d Debug mode.\n");
fprintf(stderr, " -a socket Bind agent socket to given name.\n");
+ fprintf(stderr, " -t life Default identity lifetime (seconds).\n");
exit(1);
}
@@ -961,7 +967,7 @@ main(int ac, char **av)
init_rng();
seed_rng();
- while ((ch = getopt(ac, av, "cdksa:")) != -1) {
+ while ((ch = getopt(ac, av, "cdksa:t:")) != -1) {
switch (ch) {
case 'c':
if (s_flag)
@@ -984,6 +990,12 @@ main(int ac, char **av)
case 'a':
agentsocket = optarg;
break;
+ case 't':
+ if ((lifetime = convtime(optarg)) == -1) {
+ fprintf(stderr, "Invalid lifetime\n");
+ usage();
+ }
+ break;
default:
usage();
}