summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMarkus Friedl <markus@cvs.openbsd.org>2001-03-03 23:52:23 +0000
committerMarkus Friedl <markus@cvs.openbsd.org>2001-03-03 23:52:23 +0000
commit191d03f15e0a4300b8d3e6689ec1be5f360ad959 (patch)
tree4a955c8900a93ffe06eccef5bfa60ccb391591b3
parentad77c12b4fdab6be7fcd2bc09038018a608f6959 (diff)
clean up arg processing. based on work by Christophe_Moret@hp.com
-rw-r--r--usr.bin/ssh/sftp.c23
1 files changed, 10 insertions, 13 deletions
diff --git a/usr.bin/ssh/sftp.c b/usr.bin/ssh/sftp.c
index a1a5017ac85..a997db083e0 100644
--- a/usr.bin/ssh/sftp.c
+++ b/usr.bin/ssh/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 @@ make_ssh_args(char *add_arg)
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 @@ make_ssh_args(char *add_arg)
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);