mirror of
https://git.tartarus.org/simon/putty.git
synced 2025-01-09 17:38:00 +00:00
Implement the `close' command, which terminates an SFTP session but
does not quit PSFTP, so you can then issue another `open' to connect to somewhere else. This has apparently been trivial for some time, for exactly the same reasons that `reuse-windows' was so easy, but it hadn't occurred to me to actually do it until now. [originally from svn r4994]
This commit is contained in:
parent
f1585f8f46
commit
5ea746b15d
29
psftp.c
29
psftp.c
@ -767,6 +767,23 @@ int sftp_cmd_quit(struct sftp_command *cmd)
|
||||
return -1;
|
||||
}
|
||||
|
||||
int sftp_cmd_close(struct sftp_command *cmd)
|
||||
{
|
||||
if (back == NULL) {
|
||||
printf("psftp: not connected to a host; use \"open host.name\"\n");
|
||||
return 0;
|
||||
}
|
||||
|
||||
if (back != NULL && back->socket(backhandle) != NULL) {
|
||||
char ch;
|
||||
back->special(backhandle, TS_EOF);
|
||||
sftp_recvdata(&ch, 1);
|
||||
}
|
||||
do_sftp_cleanup();
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
/*
|
||||
* List a directory. If no arguments are given, list pwd; otherwise
|
||||
* list the directory given in words[1].
|
||||
@ -1631,6 +1648,14 @@ static struct sftp_cmd_lookup {
|
||||
" use commas to separate different modifiers (\"u+rwx,g+s\").\n",
|
||||
sftp_cmd_chmod
|
||||
},
|
||||
{
|
||||
"close", TRUE, "finish your SFTP session but do not quit PSFTP",
|
||||
"\n"
|
||||
" Terminates your SFTP session, but does not quit the PSFTP\n"
|
||||
" program. You can then use \"open\" to start another SFTP\n"
|
||||
" session, to the same server or to a different one.\n",
|
||||
sftp_cmd_close
|
||||
},
|
||||
{
|
||||
"del", TRUE, "delete a file",
|
||||
" <filename>\n"
|
||||
@ -2579,12 +2604,10 @@ int psftp_main(int argc, char *argv[])
|
||||
back->special(backhandle, TS_EOF);
|
||||
sftp_recvdata(&ch, 1);
|
||||
}
|
||||
do_sftp_cleanup();
|
||||
random_save_seed();
|
||||
cmdline_cleanup();
|
||||
console_provide_logctx(NULL);
|
||||
do_sftp_cleanup();
|
||||
backhandle = NULL;
|
||||
back = NULL;
|
||||
sk_cleanup();
|
||||
|
||||
return 0;
|
||||
|
Loading…
Reference in New Issue
Block a user