]> asedeno.scripts.mit.edu Git - PuTTY.git/commitdiff
Better yet, look for sftp-server on the user's PATH as well, which
authorSimon Tatham <anakin@pobox.com>
Wed, 5 Sep 2001 19:58:25 +0000 (19:58 +0000)
committerSimon Tatham <anakin@pobox.com>
Wed, 5 Sep 2001 19:58:25 +0000 (19:58 +0000)
allows individual users with shell access to install it without
reference to the admin.

[originally from svn r1229]

psftp.c

diff --git a/psftp.c b/psftp.c
index 3a50c257d280981bbf91f367a561611366e143e7..49e6749203a1fcd598ce4cfe16a666c38952429b 100644 (file)
--- 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;