X-Git-Url: https://git.distorted.org.uk/u/mdw/putty/blobdiff_plain/0ac1920cf35f15c8fd8dbfedb332bd79e5ecdd33..a97cd7806569d0b993b80cd99b7902b4d1f3aeda:/pscp.c diff --git a/pscp.c b/pscp.c index a906303b..1809c6f7 100644 --- a/pscp.c +++ b/pscp.c @@ -180,12 +180,6 @@ int from_backend(void *frontend, int is_stderr, const char *data, int datalen) return 0; } - /* - * If this is before the real session begins, just return. - */ - if (!outptr) - return 0; - if ((outlen > 0) && (len > 0)) { unsigned used = outlen; if (used > len) @@ -245,7 +239,7 @@ static int ssh_scp_recv(unsigned char *buf, int len) } while (outlen > 0) { - if (ssh_sftp_loop_iteration() < 0) + if (back->exitcode(backhandle) >= 0 || ssh_sftp_loop_iteration() < 0) return 0; /* doom */ } @@ -292,7 +286,7 @@ static void bump(char *fmt, ...) sfree(str2); errs++; - if (back != NULL && back->socket(backhandle) != NULL) { + if (back != NULL && back->connected(backhandle)) { char ch; back->special(backhandle, TS_EOF); ssh_scp_recv((unsigned char *) &ch, 1); @@ -424,6 +418,7 @@ static void do_cmd(char *host, char *user, char *cmd) cfg.x11_forward = 0; cfg.agentfwd = 0; cfg.portfwd[0] = cfg.portfwd[1] = '\0'; + cfg.ssh_simple = TRUE; /* * Set up main and possibly fallback command depending on @@ -2285,7 +2280,7 @@ int psftp_main(int argc, char *argv[]) tolocal(argc, argv); } - if (back != NULL && back->socket(backhandle) != NULL) { + if (back != NULL && back->connected(backhandle)) { char ch; back->special(backhandle, TS_EOF); ssh_scp_recv((unsigned char *) &ch, 1);