From 248c0c5a75ec3e23d966af7e8d8d1f6af0092ff2 Mon Sep 17 00:00:00 2001 From: simon Date: Wed, 5 Sep 2001 19:58:25 +0000 Subject: [PATCH] Better yet, look for sftp-server on the user's PATH as well, which allows individual users with shell access to install it without reference to the admin. git-svn-id: svn://svn.tartarus.org/sgt/putty@1229 cda61777-01e9-0310-a592-d414129be87e --- psftp.c | 23 ++++++++++------------- 1 file changed, 10 insertions(+), 13 deletions(-) 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; -- 2.11.0