From fe20b749ab7e8fffcacc2f2bfb2889d9d7140a74 Mon Sep 17 00:00:00 2001 From: dlg Date: Tue, 4 Jul 2023 03:59:21 +0000 Subject: [PATCH] add support for unix domain sockets to ssh -W ok djm@ dtucker@ --- usr.bin/ssh/channels.c | 7 ++++--- usr.bin/ssh/channels.h | 4 ++-- usr.bin/ssh/ssh.c | 6 ++++-- 3 files changed, 10 insertions(+), 7 deletions(-) diff --git a/usr.bin/ssh/channels.c b/usr.bin/ssh/channels.c index 7351b3b6d8d..7c43bf38f94 100644 --- a/usr.bin/ssh/channels.c +++ b/usr.bin/ssh/channels.c @@ -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 * Copyright (c) 1995 Tatu Ylonen , 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; } diff --git a/usr.bin/ssh/channels.h b/usr.bin/ssh/channels.h index fae9cbd7fbf..36820d3ae9a 100644 --- a/usr.bin/ssh/channels.h +++ b/usr.bin/ssh/channels.h @@ -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 @@ -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 *, diff --git a/usr.bin/ssh/ssh.c b/usr.bin/ssh/ssh.c index 5d828f1cd82..3f90b6dd9a9 100644 --- a/usr.bin/ssh/ssh.c +++ b/usr.bin/ssh/ssh.c @@ -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 * Copyright (c) 1995 Tatu Ylonen , 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 { -- 2.20.1