1
0
mirror of https://git.tartarus.org/simon/putty.git synced 2025-01-09 09:27:59 +00:00

PSFTP will now attempt to find /usr/[local]/lib/sftp-server if it

can't start the sftp subsystem. This should enable convenient sftp
access to SSH1-only systems: all the admin needs is to install
sftp-server in the right place.

[originally from svn r1228]
This commit is contained in:
Simon Tatham 2001-09-05 19:48:52 +00:00
parent b27c27f657
commit cb1aa5d0f3

28
psftp.c
View File

@ -1504,11 +1504,37 @@ int main(int argc, char *argv[])
/* SFTP uses SSH2 by default always */
cfg.sshprot = 2;
/* Set up subsystem name. FIXME: fudge for SSH1. */
/* Set up subsystem name. */
strcpy(cfg.remote_cmd, "sftp");
cfg.ssh_subsys = TRUE;
cfg.nopty = TRUE;
/*
* Set up fallback option, for SSH1 servers or servers with the
* sftp subsystem not enabled but the server binary installed
* in the usual place. We only support fallback on Unix
* systems, and we use the kludgy command string
*
* if test ! -x /usr/lib/sftp-server -a -x /usr/local/lib/sftp-server
* then
* exec /usr/local/lib/sftp-server
* else
* exec /usr/lib/sftp-server
* fi
*
* the idea being that this will attempt to use either of the
* obvious pathnames and then give up, and when it does give up
* it will print the preferred pathname in the error messages.
*/
cfg.remote_cmd_ptr2 =
"if test ! -x /usr/lib/sftp-server -a -x /usr/local/lib/sftp-server\n"
"then\n"
" exec /usr/local/lib/sftp-server\n"
"else\n"
" exec /usr/lib/sftp-server\n"
"fi";
cfg.ssh_subsys2 = FALSE;
back = &ssh_backend;
err = back->init(cfg.host, cfg.port, &realhost);