=================================================================== RCS file: /cvsrepo/anoncvs/cvs/src/usr.bin/ssh/sftp.c,v retrieving revision 1.29.2.2 retrieving revision 1.29.2.3 diff -u -r1.29.2.2 -r1.29.2.3 --- src/usr.bin/ssh/sftp.c 2002/10/11 14:51:52 1.29.2.2 +++ src/usr.bin/ssh/sftp.c 2003/04/03 22:35:17 1.29.2.3 @@ -24,7 +24,7 @@ #include "includes.h" -RCSID("$OpenBSD: sftp.c,v 1.29.2.2 2002/10/11 14:51:52 miod Exp $"); +RCSID("$OpenBSD: sftp.c,v 1.29.2.3 2003/04/03 22:35:17 miod Exp $"); /* XXX: short-form remote directory listings (like 'ls -C') */ @@ -43,6 +43,8 @@ size_t copy_buffer_len = 32768; size_t num_requests = 16; +extern int showprogress; + static void connect_to_server(char *path, char **args, int *in, int *out, pid_t *sshpid) { @@ -102,7 +104,7 @@ int main(int argc, char **argv) { - int in, out, ch; + int in, out, ch, err; pid_t sshpid; char *host, *userhost, *cp, *file2; int debug_level = 0, sshver = 2; @@ -155,6 +157,7 @@ fatal("%s (%s).", strerror(errno), optarg); } else fatal("Filename already specified."); + showprogress = 0; break; case 'P': sftp_direct = optarg; @@ -190,7 +193,7 @@ file1 = cp; } - if ((host = strchr(userhost, '@')) == NULL) + if ((host = strrchr(userhost, '@')) == NULL) host = userhost; else { *host++ = '\0'; @@ -230,7 +233,7 @@ &sshpid); } - interactive_loop(in, out, file1, file2); + err = interactive_loop(in, out, file1, file2); close(in); close(out); @@ -242,5 +245,5 @@ fatal("Couldn't wait for ssh process: %s", strerror(errno)); - exit(0); + exit(err == 0 ? 0 : 1); }