X-Git-Url: https://git.distorted.org.uk/u/mdw/putty/blobdiff_plain/bebf22d0b9d2f0bd19089feee92980125f4dcccc..248c0c5a75ec3e23d966af7e8d8d1f6af0092ff2:/psftp.c diff --git a/psftp.c b/psftp.c index 3a50c257..49e67492 100644 --- a/psftp.c +++ b/psftp.c @@ -1513,26 +1513,23 @@ int main(int argc, char *argv[]) * 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 + * systems, and we use a kludgy piece of shellery which should + * try to find sftp-server in various places (the obvious + * systemwide spots /usr/lib and /usr/local/lib, and then the + * user's PATH) and finally give up. * - * 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 + * test -x /usr/lib/sftp-server && exec /usr/lib/sftp-server + * test -x /usr/local/lib/sftp-server && exec /usr/local/lib/sftp-server + * exec sftp-server * * 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"; + "test -x /usr/lib/sftp-server && exec /usr/lib/sftp-server\n" + "test -x /usr/local/lib/sftp-server && exec /usr/local/lib/sftp-server\n" + "exec sftp-server"; cfg.ssh_subsys2 = FALSE; back = &ssh_backend;