-/* $OpenBSD: clientloop.h,v 1.39 2025/12/05 06:16:27 dtucker Exp $ */
+/* $OpenBSD: clientloop.h,v 1.40 2025/12/22 01:17:31 djm Exp $ */
/*
* Author: Tatu Ylonen <ylo@cs.hut.fi>
#define SSHMUX_COMMAND_CANCEL_FWD 7 /* Cancel forwarding(s) */
#define SSHMUX_COMMAND_PROXY 8 /* Open new connection */
#define SSHMUX_COMMAND_CONNINFO 9 /* Show connection information */
+#define SSHMUX_COMMAND_CHANINFO 10 /* Show channels information */
void muxserver_listen(struct ssh *);
int muxclient(const char *);
-/* $OpenBSD: mux.c,v 1.108 2025/12/05 06:16:27 dtucker Exp $ */
+/* $OpenBSD: mux.c,v 1.109 2025/12/22 01:17:31 djm Exp $ */
/*
* Copyright (c) 2002-2008 Damien Miller <djm@openbsd.org>
*
if ((msg = connection_info_message(ssh)) == NULL)
fatal_f("connection_info_message");
status = 1;
+ } else if (strcmp(name, "channels") == 0) {
+ if ((msg = channel_open_message(ssh)) == NULL)
+ fatal_f("channel_open_message");
+ status = 1;
} else {
msg = xstrdup("info request type not supported");
}
struct sockaddr_un addr;
int sock, timeout = options.connection_timeout, timeout_ms = -1;
u_int pid;
- char *conninfo = NULL;
+ char *info = NULL;
if (muxclient_command == 0) {
if (options.stdio_forward_host != NULL)
fprintf(stderr, "Master running (pid=%u)\r\n", pid);
exit(0);
case SSHMUX_COMMAND_CONNINFO:
+ case SSHMUX_COMMAND_CHANINFO:
if (!(extensions & MUX_EXT_INFO))
- fatal("mux server does not support conninfo");
- conninfo = mux_client_request_info(sock, "connection");
- if (conninfo == NULL)
- fatal_f("connection info request failed");
- printf("%s", conninfo);
+ fatal("mux server does not support info request");
+ info = mux_client_request_info(sock,
+ muxclient_command == SSHMUX_COMMAND_CONNINFO ?
+ "connection" : "channels");
+ if (info == NULL)
+ fatal_f("info request failed");
+ printf("%s", info);
exit(0);
case SSHMUX_COMMAND_TERMINATE:
mux_client_request_terminate(sock);
.\" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
.\" THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
-.\" $OpenBSD: ssh.1,v 1.446 2025/12/05 06:16:27 dtucker Exp $
-.Dd $Mdocdate: December 5 2025 $
+.\" $OpenBSD: ssh.1,v 1.447 2025/12/22 01:17:31 djm Exp $
+.Dd $Mdocdate: December 22 2025 $
.Dt SSH 1
.Os
.Sh NAME
(check that the master process is running),
.Dq conninfo
(report information about the master connection),
+.Dq channels
+(report information about open channels),
.Dq forward
(request forwardings without command execution),
.Dq cancel
-/* $OpenBSD: ssh.c,v 1.621 2025/12/05 06:16:27 dtucker Exp $ */
+/* $OpenBSD: ssh.c,v 1.622 2025/12/22 01:17:31 djm Exp $ */
/*
* Author: Tatu Ylonen <ylo@cs.hut.fi>
* Copyright (c) 1995 Tatu Ylonen <ylo@cs.hut.fi>, Espoo, Finland
muxclient_command = SSHMUX_COMMAND_ALIVE_CHECK;
else if (strcmp(optarg, "conninfo") == 0)
muxclient_command = SSHMUX_COMMAND_CONNINFO;
+ else if (strcmp(optarg, "channels") == 0)
+ muxclient_command = SSHMUX_COMMAND_CHANINFO;
else if (strcmp(optarg, "forward") == 0)
muxclient_command = SSHMUX_COMMAND_FORWARD;
else if (strcmp(optarg, "exit") == 0)