mirror of
https://git.tartarus.org/simon/putty.git
synced 2025-03-23 15:09:24 -05: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;
|
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 a directory. If no arguments are given, list pwd; otherwise
|
||||||
* list the directory given in words[1].
|
* 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",
|
" use commas to separate different modifiers (\"u+rwx,g+s\").\n",
|
||||||
sftp_cmd_chmod
|
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",
|
"del", TRUE, "delete a file",
|
||||||
" <filename>\n"
|
" <filename>\n"
|
||||||
@ -2579,12 +2604,10 @@ int psftp_main(int argc, char *argv[])
|
|||||||
back->special(backhandle, TS_EOF);
|
back->special(backhandle, TS_EOF);
|
||||||
sftp_recvdata(&ch, 1);
|
sftp_recvdata(&ch, 1);
|
||||||
}
|
}
|
||||||
|
do_sftp_cleanup();
|
||||||
random_save_seed();
|
random_save_seed();
|
||||||
cmdline_cleanup();
|
cmdline_cleanup();
|
||||||
console_provide_logctx(NULL);
|
console_provide_logctx(NULL);
|
||||||
do_sftp_cleanup();
|
|
||||||
backhandle = NULL;
|
|
||||||
back = NULL;
|
|
||||||
sk_cleanup();
|
sk_cleanup();
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user