summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDarren Tucker <dtucker@cvs.openbsd.org>2016-06-03 03:14:42 +0000
committerDarren Tucker <dtucker@cvs.openbsd.org>2016-06-03 03:14:42 +0000
commitdae7b1260f4192cf92eeb3eaa188dba7067b7b17 (patch)
tree436159d7335bd30e7f015c6f7b7b76789335ddb9
parent3a0e6a46a211c4aa0d2a9a84d401bf0e5b3f5c00 (diff)
Move the host and port used by ssh -W into the Options struct.
This will make future changes a bit easier. ok djm@
-rw-r--r--usr.bin/ssh/mux.c10
-rw-r--r--usr.bin/ssh/readconf.c4
-rw-r--r--usr.bin/ssh/readconf.h6
-rw-r--r--usr.bin/ssh/ssh.c23
4 files changed, 22 insertions, 21 deletions
diff --git a/usr.bin/ssh/mux.c b/usr.bin/ssh/mux.c
index 8c5c8dc1518..c797fc6956d 100644
--- a/usr.bin/ssh/mux.c
+++ b/usr.bin/ssh/mux.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: mux.c,v 1.59 2016/04/01 02:34:10 djm Exp $ */
+/* $OpenBSD: mux.c,v 1.60 2016/06/03 03:14:41 dtucker Exp $ */
/*
* Copyright (c) 2002-2008 Damien Miller <djm@openbsd.org>
*
@@ -75,8 +75,6 @@ extern char *host;
extern int subsystem_flag;
extern Buffer command;
extern volatile sig_atomic_t quit_pending;
-extern char *stdio_forward_host;
-extern int stdio_forward_port;
/* Context for session open confirmation callback */
struct mux_session_confirm_ctx {
@@ -1971,8 +1969,8 @@ mux_client_request_stdio_fwd(int fd)
buffer_put_int(&m, MUX_C_NEW_STDIO_FWD);
buffer_put_int(&m, muxclient_request_id);
buffer_put_cstring(&m, ""); /* reserved */
- buffer_put_cstring(&m, stdio_forward_host);
- buffer_put_int(&m, stdio_forward_port);
+ buffer_put_cstring(&m, options.stdio_forward_host);
+ buffer_put_int(&m, options.stdio_forward_port);
if (mux_client_write_packet(fd, &m) != 0)
fatal("%s: write packet: %s", __func__, strerror(errno));
@@ -2094,7 +2092,7 @@ muxclient(const char *path)
u_int pid;
if (muxclient_command == 0) {
- if (stdio_forward_host != NULL)
+ if (options.stdio_forward_host != NULL)
muxclient_command = SSHMUX_COMMAND_STDIO_FWD;
else
muxclient_command = SSHMUX_COMMAND_OPEN;
diff --git a/usr.bin/ssh/readconf.c b/usr.bin/ssh/readconf.c
index b9cb3884e9e..785003e3533 100644
--- a/usr.bin/ssh/readconf.c
+++ b/usr.bin/ssh/readconf.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: readconf.c,v 1.254 2016/05/04 14:29:58 markus Exp $ */
+/* $OpenBSD: readconf.c,v 1.255 2016/06/03 03:14:41 dtucker Exp $ */
/*
* Author: Tatu Ylonen <ylo@cs.hut.fi>
* Copyright (c) 1995 Tatu Ylonen <ylo@cs.hut.fi>, Espoo, Finland
@@ -1733,6 +1733,8 @@ initialize_options(Options * options)
options->forward_x11 = -1;
options->forward_x11_trusted = -1;
options->forward_x11_timeout = -1;
+ options->stdio_forward_host = NULL;
+ options->stdio_forward_port = 0;
options->exit_on_forward_failure = -1;
options->xauth_location = NULL;
options->fwd_opts.gateway_ports = -1;
diff --git a/usr.bin/ssh/readconf.h b/usr.bin/ssh/readconf.h
index f0e498ea28f..a8b0b918848 100644
--- a/usr.bin/ssh/readconf.h
+++ b/usr.bin/ssh/readconf.h
@@ -1,4 +1,4 @@
-/* $OpenBSD: readconf.h,v 1.115 2016/05/04 12:21:53 markus Exp $ */
+/* $OpenBSD: readconf.h,v 1.116 2016/06/03 03:14:41 dtucker Exp $ */
/*
* Author: Tatu Ylonen <ylo@cs.hut.fi>
@@ -112,6 +112,10 @@ typedef struct {
struct Forward *remote_forwards;
int clear_forwardings;
+ /* stdio forwarding (-W) host and port */
+ char *stdio_forward_host;
+ int stdio_forward_port;
+
int enable_ssh_keysign;
int64_t rekey_limit;
int rekey_interval;
diff --git a/usr.bin/ssh/ssh.c b/usr.bin/ssh/ssh.c
index adb88e9d455..bf715c561b2 100644
--- a/usr.bin/ssh/ssh.c
+++ b/usr.bin/ssh/ssh.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: ssh.c,v 1.440 2016/05/04 14:29:58 markus Exp $ */
+/* $OpenBSD: ssh.c,v 1.441 2016/06/03 03:14:41 dtucker Exp $ */
/*
* Author: Tatu Ylonen <ylo@cs.hut.fi>
* Copyright (c) 1995 Tatu Ylonen <ylo@cs.hut.fi>, Espoo, Finland
@@ -136,10 +136,6 @@ int ostdin_null_flag, ono_shell_flag, otty_flag, orequest_tty;
*/
int fork_after_authentication_flag = 0;
-/* forward stdio to remote host and port */
-char *stdio_forward_host = NULL;
-int stdio_forward_port = 0;
-
/*
* General data structure for command line options and options configurable
* in configuration files. See readconf.h.
@@ -621,7 +617,7 @@ main(int ac, char **av)
options.fwd_opts.gateway_ports = 1;
break;
case 'O':
- if (stdio_forward_host != NULL)
+ if (options.stdio_forward_host != NULL)
fatal("Cannot specify multiplexing "
"command with -W");
else if (muxclient_command != 0)
@@ -740,13 +736,13 @@ main(int ac, char **av)
}
break;
case 'W':
- if (stdio_forward_host != NULL)
+ if (options.stdio_forward_host != NULL)
fatal("stdio forward already specified");
if (muxclient_command != 0)
fatal("Cannot specify stdio forward with -O");
if (parse_forward(&fwd, optarg, 1, 0)) {
- stdio_forward_host = fwd.listen_host;
- stdio_forward_port = fwd.listen_port;
+ options.stdio_forward_host = fwd.listen_host;
+ options.stdio_forward_port = fwd.listen_port;
free(fwd.connect_host);
} else {
fprintf(stderr,
@@ -1489,18 +1485,19 @@ ssh_init_stdio_forwarding(void)
Channel *c;
int in, out;
- if (stdio_forward_host == NULL)
+ if (options.stdio_forward_host == NULL)
return;
if (!compat20)
fatal("stdio forwarding require Protocol 2");
- debug3("%s: %s:%d", __func__, stdio_forward_host, stdio_forward_port);
+ debug3("%s: %s:%d", __func__, options.stdio_forward_host,
+ options.stdio_forward_port);
if ((in = dup(STDIN_FILENO)) < 0 ||
(out = dup(STDOUT_FILENO)) < 0)
fatal("channel_connect_stdio_fwd: dup() in/out failed");
- if ((c = channel_connect_stdio_fwd(stdio_forward_host,
- stdio_forward_port, in, out)) == NULL)
+ if ((c = channel_connect_stdio_fwd(options.stdio_forward_host,
+ options.stdio_forward_port, in, out)) == NULL)
fatal("%s: channel_connect_stdio_fwd failed", __func__);
channel_register_cleanup(c->self, client_cleanup_stdio_fwd, 0);
channel_register_open_confirm(c->self, ssh_stdio_confirm, NULL);