[ssh-add.c]
     convert to getopt(3)
This commit is contained in:
Ben Lindstrom 2001-07-04 05:03:51 +00:00
parent f7297dd79d
commit 44e49afae2
2 changed files with 44 additions and 50 deletions

View File

@ -93,6 +93,9 @@
[rsa.c rsa.h ssh-agent.c ssh-keygen.c] [rsa.c rsa.h ssh-agent.c ssh-keygen.c]
s/generate_additional_parameters/rsa_generate_additional_parameters/ s/generate_additional_parameters/rsa_generate_additional_parameters/
http://www.humppa.com/ http://www.humppa.com/
- markus@cvs.openbsd.org 2001/06/27 06:26:36
[ssh-add.c]
convert to getopt(3)
20010629 20010629
- (bal) Removed net_aton() since we don't use it any more - (bal) Removed net_aton() since we don't use it any more
@ -5920,4 +5923,4 @@
- Wrote replacements for strlcpy and mkdtemp - Wrote replacements for strlcpy and mkdtemp
- Released 1.0pre1 - Released 1.0pre1
$Id: ChangeLog,v 1.1365 2001/07/04 05:02:23 mouring Exp $ $Id: ChangeLog,v 1.1366 2001/07/04 05:03:51 mouring Exp $

View File

@ -35,7 +35,7 @@
*/ */
#include "includes.h" #include "includes.h"
RCSID("$OpenBSD: ssh-add.c,v 1.42 2001/06/26 04:59:59 markus Exp $"); RCSID("$OpenBSD: ssh-add.c,v 1.43 2001/06/27 06:26:36 markus Exp $");
#include <openssl/evp.h> #include <openssl/evp.h>
@ -201,20 +201,17 @@ usage(void)
printf(" -D : delete all identities\n"); printf(" -D : delete all identities\n");
printf(" -s reader_num : add key in the smartcard in reader_num.\n"); printf(" -s reader_num : add key in the smartcard in reader_num.\n");
printf(" -e reader_num : remove key in the smartcard in reader_num.\n"); printf(" -e reader_num : remove key in the smartcard in reader_num.\n");
exit (1);
} }
int int
main(int argc, char **argv) main(int argc, char **argv)
{ {
extern char *optarg;
extern int optind;
AuthenticationConnection *ac = NULL; AuthenticationConnection *ac = NULL;
struct passwd *pw; struct passwd *pw;
char buf[1024]; char buf[1024];
int no_files = 1; int i, ch, deleting = 0, sc_reader_num = -1;
int i;
int deleting = 0;
int sc_mode = 0;
int sc_reader_num = 0;
__progname = get_progname(argv[0]); __progname = get_progname(argv[0]);
init_rng(); init_rng();
@ -228,55 +225,40 @@ main(int argc, char **argv)
fprintf(stderr, "Could not open a connection to your authentication agent.\n"); fprintf(stderr, "Could not open a connection to your authentication agent.\n");
exit(1); exit(1);
} }
for (i = 1; i < argc; i++) { while ((ch = getopt(argc, argv, "lLdDe:s:")) != -1) {
if ((strcmp(argv[i], "-l") == 0) || switch (ch) {
(strcmp(argv[i], "-L") == 0)) { case 'l':
list_identities(ac, argv[i][1] == 'l' ? 1 : 0); case 'L':
/* Don't default-add/delete if -l. */ list_identities(ac, ch == 'l' ? 1 : 0);
no_files = 0; goto done;
continue; break;
} case 'd':
if (strcmp(argv[i], "-d") == 0) {
deleting = 1; deleting = 1;
continue; break;
} case 'D':
if (strcmp(argv[i], "-D") == 0) {
delete_all(ac); delete_all(ac);
no_files = 0; goto done;
continue; break;
} case 's':
if (strcmp(argv[i], "-s") == 0) { sc_reader_num = atoi(optarg);
sc_mode = 1; break;
deleting = 0; case 'e':
i++;
if (i >= argc)
usage();
sc_reader_num = atoi(argv[i]);
continue;
}
if (strcmp(argv[i], "-e") == 0) {
sc_mode = 1;
deleting = 1; deleting = 1;
i++; sc_reader_num = atoi(optarg);
if (i >= argc) break;
usage(); default:
sc_reader_num = atoi(argv[i]); usage();
continue; exit(1);
break;
} }
if (sc_mode == 1)
update_card(ac, !deleting, sc_reader_num);
no_files = 0;
if (deleting)
delete_file(ac, argv[i]);
else
add_file(ac, argv[i]);
} }
if (sc_mode == 1) { argc -= optind;
argv += optind;
if (sc_reader_num != -1) {
update_card(ac, !deleting, sc_reader_num); update_card(ac, !deleting, sc_reader_num);
ssh_close_authentication_connection(ac); goto done;
exit(0);
} }
if (no_files) { if (argc == 0) {
pw = getpwuid(getuid()); pw = getpwuid(getuid());
if (!pw) { if (!pw) {
fprintf(stderr, "No user found with uid %u\n", fprintf(stderr, "No user found with uid %u\n",
@ -289,8 +271,17 @@ main(int argc, char **argv)
delete_file(ac, buf); delete_file(ac, buf);
else else
add_file(ac, buf); add_file(ac, buf);
} else {
for (i = 0; i < argc; i++) {
if (deleting)
delete_file(ac, argv[i]);
else
add_file(ac, argv[i]);
}
} }
clear_pass(); clear_pass();
done:
ssh_close_authentication_connection(ac); ssh_close_authentication_connection(ac);
exit(0); exit(0);
} }