- markus@cvs.openbsd.org 2001/03/03 23:52:22
     [sftp.c]
     clean up arg processing. based on work by Christophe_Moret@hp.com
diff --git a/ChangeLog b/ChangeLog
index a0bb45a..1eab73d 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -137,6 +137,9 @@
    - deraadt@cvs.openbsd.org 2001/03/03 22:07:50
      [sftp-server.c]
      KNF
+   - markus@cvs.openbsd.org 2001/03/03 23:52:22
+     [sftp.c]
+     clean up arg processing. based on work by Christophe_Moret@hp.com
 
 20010304
  - (bal) Remove make-ssh-known-hosts.1 since it's no longer valid.
@@ -4329,4 +4332,4 @@
  - Wrote replacements for strlcpy and mkdtemp
  - Released 1.0pre1
 
-$Id: ChangeLog,v 1.893 2001/03/05 07:09:11 mouring Exp $
+$Id: ChangeLog,v 1.894 2001/03/05 07:10:47 mouring Exp $
diff --git a/sftp.c b/sftp.c
index 16a2616..b2c4a64 100644
--- a/sftp.c
+++ b/sftp.c
@@ -24,7 +24,7 @@
 
 #include "includes.h"
 
-RCSID("$OpenBSD: sftp.c,v 1.8 2001/02/28 05:36:28 deraadt Exp $");
+RCSID("$OpenBSD: sftp.c,v 1.9 2001/03/03 23:52:22 markus Exp $");
 
 /* XXX: commandline mode */
 /* XXX: copy between two remote hosts (commandline) */
@@ -91,24 +91,14 @@
 	static char **args = NULL;
 	static int nargs = 0;
 	char debug_buf[4096];
-	int i, use_subsystem = 1;
-
-	/* no subsystem if protocol 1 or the server-spec contains a '/' */
-	if (use_ssh1 ||
-	    (sftp_server != NULL && strchr(sftp_server, '/') != NULL))
-		use_subsystem = 0;
+	int i;
 
 	/* Init args array */
 	if (args == NULL) {
-		nargs = use_subsystem ? 6 : 5;
+		nargs = 2;
 		i = 0;
 		args = xmalloc(sizeof(*args) * nargs);
 		args[i++] = "ssh";
-		args[i++] = use_ssh1 ? "-oProtocol=1" : "-oProtocol=2";
-		if (use_subsystem)
-			args[i++] = "-s";
-		args[i++] = "-oForwardAgent=no";
-		args[i++] = "-oForwardX11=no";
 		args[i++] = NULL;
 	}
 
@@ -121,6 +111,13 @@
 		return(NULL);
 	}
 
+	/* no subsystem if the server-spec contains a '/' */
+	if (sftp_server == NULL || strchr(sftp_server, '/') == NULL)
+		make_ssh_args("-s");
+	make_ssh_args("-oForwardX11=no");
+	make_ssh_args("-oForwardAgent=no");
+	make_ssh_args(use_ssh1 ? "-oProtocol=1" : "-oProtocol=2");
+
 	/* Otherwise finish up and return the arg array */
 	if (sftp_server != NULL)
 		make_ssh_args(sftp_server);