add support for unix domain sockets to ssh -W
authordlg <dlg@openbsd.org>
Tue, 4 Jul 2023 03:59:21 +0000 (03:59 +0000)
committerdlg <dlg@openbsd.org>
Tue, 4 Jul 2023 03:59:21 +0000 (03:59 +0000)
ok djm@ dtucker@

usr.bin/ssh/channels.c
usr.bin/ssh/channels.h
usr.bin/ssh/ssh.c

index 7351b3b..7c43bf3 100644 (file)
@@ -1,4 +1,4 @@
-/* $OpenBSD: channels.c,v 1.431 2023/06/05 13:24:36 millert Exp $ */
+/* $OpenBSD: channels.c,v 1.432 2023/07/04 03:59:21 dlg Exp $ */
 /*
  * Author: Tatu Ylonen <ylo@cs.hut.fi>
  * Copyright (c) 1995 Tatu Ylonen <ylo@cs.hut.fi>, Espoo, Finland
@@ -1622,7 +1622,7 @@ channel_decode_socks5(Channel *c, struct sshbuf *input, struct sshbuf *output)
 
 Channel *
 channel_connect_stdio_fwd(struct ssh *ssh,
-    const char *host_to_connect, u_short port_to_connect,
+    const char *host_to_connect, int port_to_connect,
     int in, int out, int nonblock)
 {
        Channel *c;
@@ -1639,7 +1639,8 @@ channel_connect_stdio_fwd(struct ssh *ssh,
        c->force_drain = 1;
 
        channel_register_fds(ssh, c, in, out, -1, 0, 1, 0);
-       port_open_helper(ssh, c, "direct-tcpip");
+       port_open_helper(ssh, c, port_to_connect == PORT_STREAMLOCAL ?
+           "direct-streamlocal@openssh.com" : "direct-tcpip");
 
        return c;
 }
index fae9cbd..36820d3 100644 (file)
@@ -1,4 +1,4 @@
-/* $OpenBSD: channels.h,v 1.150 2023/06/05 13:24:36 millert Exp $ */
+/* $OpenBSD: channels.h,v 1.151 2023/07/04 03:59:21 dlg Exp $ */
 
 /*
  * Author: Tatu Ylonen <ylo@cs.hut.fi>
@@ -354,7 +354,7 @@ Channel     *channel_connect_to_port(struct ssh *, const char *, u_short,
            char *, char *, int *, const char **);
 Channel *channel_connect_to_path(struct ssh *, const char *, char *, char *);
 Channel        *channel_connect_stdio_fwd(struct ssh *, const char*,
-           u_short, int, int, int);
+           int, int, int, int);
 Channel        *channel_connect_by_listen_address(struct ssh *, const char *,
            u_short, char *, char *);
 Channel        *channel_connect_by_listen_path(struct ssh *, const char *,
index 5d828f1..3f90b6d 100644 (file)
@@ -1,4 +1,4 @@
-/* $OpenBSD: ssh.c,v 1.589 2023/06/21 05:08:32 djm Exp $ */
+/* $OpenBSD: ssh.c,v 1.590 2023/07/04 03:59:21 dlg Exp $ */
 /*
  * Author: Tatu Ylonen <ylo@cs.hut.fi>
  * Copyright (c) 1995 Tatu Ylonen <ylo@cs.hut.fi>, Espoo, Finland
@@ -881,7 +881,9 @@ main(int ac, char **av)
                        if (muxclient_command != 0)
                                fatal("Cannot specify stdio forward with -O");
                        if (parse_forward(&fwd, optarg, 1, 0)) {
-                               options.stdio_forward_host = fwd.listen_host;
+                               options.stdio_forward_host =
+                                   fwd.listen_port == PORT_STREAMLOCAL ?
+                                   fwd.listen_path : fwd.listen_host;
                                options.stdio_forward_port = fwd.listen_port;
                                free(fwd.connect_host);
                        } else {