]> andersk Git - openssh.git/commitdiff
- djm@cvs.openbsd.org 2001/12/21 10:06:43
authordjm <djm>
Tue, 22 Jan 2002 12:05:59 +0000 (12:05 +0000)
committerdjm <djm>
Tue, 22 Jan 2002 12:05:59 +0000 (12:05 +0000)
     [ssh-add.1 ssh-add.c]
     Try all standard key files (id_rsa, id_dsa, identity) when invoked with
     no arguments; ok markus@

ChangeLog
ssh-add.1
ssh-add.c

index 74551d4355ee0579ea2fbaed14c3b4bf33455642..3519c17c3a79c23a3207c22b399bf24c32433110 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
    - djm@cvs.openbsd.org 2001/12/21 08:53:45
      [readpass.c]
      Avoid interruptable passphrase read; ok markus@
+   - djm@cvs.openbsd.org 2001/12/21 10:06:43
+     [ssh-add.1 ssh-add.c]
+     Try all standard key files (id_rsa, id_dsa, identity) when invoked with
+     no arguments; ok markus@
 
 20020121
  - (djm) Rework ssh-rand-helper:
index b842080d632ae497d37682457c8dec8e061662b5..ef60d0204a673eafc5538cfd7b9c62d9432d61eb 100644 (file)
--- a/ssh-add.1
+++ b/ssh-add.1
@@ -1,4 +1,4 @@
-.\"    $OpenBSD: ssh-add.1,v 1.27 2001/08/23 18:08:59 stevesk Exp $
+.\"    $OpenBSD: ssh-add.1,v 1.28 2001/12/21 10:06:43 djm Exp $
 .\"
 .\"  -*- nroff -*-
 .\"
 .Nm
 adds RSA or DSA identities to the authentication agent,
 .Xr ssh-agent 1 .
-When run without arguments, it adds the file
+When run without arguments, it adds the files
+.Pa $HOME/.ssh/id_rsa ,
+.Pa $HOME/.ssh/id_dsa 
+and
 .Pa $HOME/.ssh/identity .
 Alternative file names can be given on the command line.
 If any file requires a passphrase,
index 91603399a36cdd31c40d397af1269b0857595aed..4a2b65f545faf190d611719a82edfd97c14ddfc1 100644 (file)
--- a/ssh-add.c
+++ b/ssh-add.c
@@ -35,7 +35,7 @@
  */
 
 #include "includes.h"
-RCSID("$OpenBSD: ssh-add.c,v 1.47 2001/12/19 07:18:56 deraadt Exp $");
+RCSID("$OpenBSD: ssh-add.c,v 1.48 2001/12/21 10:06:43 djm Exp $");
 
 #include <openssl/evp.h>
 
@@ -58,6 +58,15 @@ char *__progname;
 /* argv0 */
 extern char *__progname;
 
+/* Default files to add */
+static char *default_files[] = {
+       _PATH_SSH_CLIENT_ID_RSA,
+       _PATH_SSH_CLIENT_ID_DSA,
+       _PATH_SSH_CLIENT_IDENTITY, 
+       NULL
+};
+
+
 /* we keep a cache of one passphrases */
 static char *pass = NULL;
 static void
@@ -210,6 +219,19 @@ list_identities(AuthenticationConnection *ac, int do_fp)
                printf("The agent has no identities.\n");
 }
 
+static int
+do_file(AuthenticationConnection *ac, int deleting, char *file)
+{
+       if (deleting) {
+               if (delete_file(ac, file) == -1)
+                       return -1;
+       } else {
+               if (add_file(ac, file) == -1)
+                       return -1;
+       }
+       return 0;
+}
+
 static void
 usage(void)
 {
@@ -231,8 +253,6 @@ main(int argc, char **argv)
        extern char *optarg;
        extern int optind;
        AuthenticationConnection *ac = NULL;
-       struct passwd *pw;
-       char buf[1024];
        char *sc_reader_id = NULL;
        int i, ch, deleting = 0, ret = 0;
 
@@ -284,30 +304,26 @@ main(int argc, char **argv)
                goto done;
        }
        if (argc == 0) {
-               pw = getpwuid(getuid());
-               if (!pw) {
+               char buf[MAXPATHLEN];
+               struct passwd *pw;
+
+               if ((pw = getpwuid(getuid())) == NULL) {
                        fprintf(stderr, "No user found with uid %u\n",
                            (u_int)getuid());
                        ret = 1;
                        goto done;
                }
-               snprintf(buf, sizeof buf, "%s/%s", pw->pw_dir, _PATH_SSH_CLIENT_IDENTITY);
-               if (deleting) {
-                       if (delete_file(ac, buf) == -1)
-                               ret = 1;
-               } else {
-                       if (add_file(ac, buf) == -1)
+
+               for(i = 0; default_files[i]; i++) {
+                       snprintf(buf, sizeof(buf), "%s/%s", pw->pw_dir, 
+                           default_files[i]);
+                       if (do_file(ac, deleting, buf) == -1)
                                ret = 1;
                }
        } else {
-               for (i = 0; i < argc; i++) {
-                       if (deleting) {
-                               if (delete_file(ac, argv[i]) == -1)
-                                       ret = 1;
-                       } else {
-                               if (add_file(ac, argv[i]) == -1)
-                                       ret = 1;
-                       }
+               for(i = 0; i < argc; i++) {
+                       if (do_file(ac, deleting, argv[1]) == -1)
+                               ret = 1;
                }
        }
        clear_pass();
This page took 0.078647 seconds and 5 git commands to generate.