=================================================================== RCS file: /cvsrepo/anoncvs/cvs/src/usr.bin/ssh/sftp.c,v retrieving revision 1.21.2.1 retrieving revision 1.21.2.2 diff -u -r1.21.2.1 -r1.21.2.2 --- src/usr.bin/ssh/sftp.c 2002/03/07 17:37:47 1.21.2.1 +++ src/usr.bin/ssh/sftp.c 2002/05/17 00:03:24 1.21.2.2 @@ -24,7 +24,7 @@ #include "includes.h" -RCSID("$OpenBSD: sftp.c,v 1.21.2.1 2002/03/07 17:37:47 jason Exp $"); +RCSID("$OpenBSD: sftp.c,v 1.21.2.2 2002/05/17 00:03:24 miod Exp $"); /* XXX: short-form remote directory listings (like 'ls -C') */ @@ -88,7 +88,7 @@ usage(void) { extern char *__progname; - + fprintf(stderr, "usage: %s [-vC1] [-b batchfile] [-o option] [-s subsystem|path] [-B buffer_size]\n" " [-F config] [-P direct server path] [-S program]\n" @@ -165,7 +165,7 @@ case 'R': num_requests = strtol(optarg, &cp, 10); if (num_requests == 0 || *cp != '\0') - fatal("Invalid number of requests \"%s\"", + fatal("Invalid number of requests \"%s\"", optarg); break; case 'h': @@ -174,6 +174,8 @@ } } + log_init(argv[0], ll, SYSLOG_FACILITY_USER, 1); + if (sftp_direct == NULL) { if (optind == argc || argc > (optind + 2)) usage(); @@ -203,7 +205,6 @@ usage(); } - log_init(argv[0], ll, SYSLOG_FACILITY_USER, 1); addargs(&args, "-oProtocol %d", sshver); /* no subsystem if the server-spec contains a '/' */ @@ -211,19 +212,19 @@ addargs(&args, "-s"); addargs(&args, "%s", host); - addargs(&args, "%s", (sftp_server != NULL ? + addargs(&args, "%s", (sftp_server != NULL ? sftp_server : "sftp")); args.list[0] = ssh_program; fprintf(stderr, "Connecting to %s...\n", host); - connect_to_server(ssh_program, args.list, &in, &out, + connect_to_server(ssh_program, args.list, &in, &out, &sshpid); } else { args.list = NULL; addargs(&args, "sftp-server"); fprintf(stderr, "Attaching to %s...\n", sftp_direct); - connect_to_server(sftp_direct, args.list, &in, &out, + connect_to_server(sftp_direct, args.list, &in, &out, &sshpid); } @@ -234,8 +235,10 @@ if (infile != stdin) fclose(infile); - if (waitpid(sshpid, NULL, 0) == -1) - fatal("Couldn't wait for ssh process: %s", strerror(errno)); + while (waitpid(sshpid, NULL, 0) == -1) + if (errno != EINTR) + fatal("Couldn't wait for ssh process: %s", + strerror(errno)); exit(0); }