mirror of
https://git.tartarus.org/simon/putty.git
synced 2025-01-09 09:27:59 +00:00
It turns out I was a little over-strict in my handling of EOF in
pscp.c when I did the big revamp in r9279: I assumed that in any SCP
connection we would be the first to send EOF, but in fact this isn't
true - doing downloads with old-SCP, EOF is initiated by the server,
so we were spuriously reporting an error for 'unexpected' EOF when
everything had gone fine. Thanks to Nathan Phelan for the report.
[originally from svn r10016]
[r9279 == 947962e0b9
]
This commit is contained in:
parent
293af847b5
commit
4ae1e260ea
12
pscp.c
12
pscp.c
@ -41,6 +41,7 @@ static int try_sftp = 1;
|
||||
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;
|
||||
@ -231,11 +232,12 @@ int from_backend_untrusted(void *frontend_handle, const char *data, int len)
|
||||
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");
|
||||
}
|
||||
@ -2047,6 +2049,8 @@ static void toremote(int argc, char *argv[])
|
||||
char *cmd;
|
||||
int i, wc_type;
|
||||
|
||||
uploading = 1;
|
||||
|
||||
targ = argv[argc - 1];
|
||||
|
||||
/* Separate host from filename */
|
||||
@ -2136,6 +2140,8 @@ static void tolocal(int argc, char *argv[])
|
||||
char *src, *targ, *host, *user;
|
||||
char *cmd;
|
||||
|
||||
uploading = 0;
|
||||
|
||||
if (argc != 2)
|
||||
bump("More than one remote source not supported");
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user