static int main_cmd_is_sftp = 0;
static int fallback_cmd_is_sftp = 0;
static int using_sftp = 0;
+static int uploading = 0;
static Backend *back;
static void *backhandle;
int from_backend_eof(void *frontend)
{
/*
- * We expect to be the party deciding when to close the
+ * We usually expect to be the party deciding when to close the
* connection, so if we see EOF before we sent it ourselves, we
- * should panic.
+ * should panic. The exception is if we're using old-style scp and
+ * downloading rather than uploading.
*/
- if (!sent_eof) {
+ if ((using_sftp || uploading) && !sent_eof) {
connection_fatal(frontend,
"Received unexpected end-of-file from server");
}
set_file_times(f, act.mtime, act.atime);
}
- sfree(stat_name);
close_wfile(f);
if (wrerror) {
run_err("%s: Write error", destfname);
char *cmd;
int i, wc_type;
+ uploading = 1;
+
targ = argv[argc - 1];
/* Separate host from filename */
char *src, *targ, *host, *user;
char *cmd;
+ uploading = 0;
+
if (argc != 2)
bump("More than one remote source not supported");