]> git.ipfire.org Git - thirdparty/openssh-portable.git/commitdiff
upstream commit
authordtucker@openbsd.org <dtucker@openbsd.org>
Fri, 3 Jun 2016 03:14:41 +0000 (03:14 +0000)
committerDamien Miller <djm@mindrot.org>
Wed, 8 Jun 2016 01:39:31 +0000 (11:39 +1000)
Move the host and port used by ssh -W into the Options
 struct. This will make future changes a bit easier.  ok djm@

Upstream-ID: 151bce5ecab2fbedf0d836250a27968d30389382

mux.c
readconf.c
readconf.h
ssh.c

diff --git a/mux.c b/mux.c
index 6086f1ce1a63b9c888b95276e8c0a16d3b594a3d..98e3c0068263e277e0c4ce647b6fb55026a52ace 100644 (file)
--- a/mux.c
+++ b/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>
  *
@@ -88,8 +88,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 {
@@ -1991,8 +1989,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));
@@ -2116,7 +2114,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;
index c706fbf46ab7a95fa0bccc9dcdd812b55a351614..66a36a49f53feb240d335af206c1ecade2d85767 100644 (file)
@@ -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
@@ -1748,6 +1748,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;
index f0e498ea28ff0871d0fa09fbbb37ea54cc7c94df..a8b0b918848b8532c77e1d58efea417e45c42ecc 100644 (file)
@@ -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/ssh.c b/ssh.c
index 7a536a0f74b3d6b7c22b42680bb5732e825e640c..702631c76dcfe2f5794620e78d01ff080a09a185 100644 (file)
--- a/ssh.c
+++ b/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
@@ -151,10 +151,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.
@@ -651,7 +647,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)
@@ -770,13 +766,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,
@@ -1538,18 +1534,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);