From 050c335c8da43741ed0df2570ebfbd5d1dfd0a31 Mon Sep 17 00:00:00 2001 From: "djm@openbsd.org" Date: Wed, 15 Nov 2023 22:51:49 +0000 Subject: upstream: when deciding whether to enable keystroke timing obfuscation, only consider enabling it when a channel with a tty is open. Avoids turning on the obfucation when X11 forwarding only is in use, which slows it right down. Reported by Roger Marsh OpenBSD-Commit-ID: c292f738db410f729190f92de100c39ec931a4f1 --- channels.c | 19 ++++++++++++++++++- 1 file changed, 18 insertions(+), 1 deletion(-) (limited to 'channels.c') diff --git a/channels.c b/channels.c index 598ff322..38135e5a 100644 --- a/channels.c +++ b/channels.c @@ -1,4 +1,4 @@ -/* $OpenBSD: channels.c,v 1.433 2023/09/04 00:01:46 djm Exp $ */ +/* $OpenBSD: channels.c,v 1.434 2023/11/15 22:51:49 djm Exp $ */ /* * Author: Tatu Ylonen * Copyright (c) 1995 Tatu Ylonen , Espoo, Finland @@ -898,6 +898,23 @@ channel_still_open(struct ssh *ssh) return 0; } +/* Returns true if a channel with a TTY is open. */ +int +channel_tty_open(struct ssh *ssh) +{ + u_int i; + Channel *c; + + for (i = 0; i < ssh->chanctxt->channels_alloc; i++) { + c = ssh->chanctxt->channels[i]; + if (c == NULL || c->type != SSH_CHANNEL_OPEN) + continue; + if (c->client_tty) + return 1; + } + return 0; +} + /* Returns the id of an open channel suitable for keepaliving */ int channel_find_open(struct ssh *ssh) -- cgit v1.2.3