mirror of
git://anongit.mindrot.org/openssh.git
synced 2025-01-20 16:40:48 +00:00
restore tty force-read hack
This portable-specific hack fixes a hang on exit for ttyful sessions
on Linux and some SysVish Unix variants. It was accidentally disabled
in commit 5c79952dfe
(a precursor to the mainloop poll(2) conversion).
Spotted by John in bz3383
This commit is contained in:
parent
68085066b6
commit
e204b34337
@ -1922,7 +1922,7 @@ channel_handle_rfd(struct ssh *ssh, Channel *c)
|
||||
|
||||
force = c->isatty && c->detach_close && c->istate != CHAN_INPUT_CLOSED;
|
||||
|
||||
if ((c->io_ready & SSH_CHAN_IO_RFD) == 0)
|
||||
if (!force && (c->io_ready & SSH_CHAN_IO_RFD) == 0)
|
||||
return 1;
|
||||
|
||||
errno = 0;
|
||||
@ -2087,7 +2087,7 @@ channel_handle_efd_read(struct ssh *ssh, Channel *c)
|
||||
|
||||
force = c->isatty && c->detach_close && c->istate != CHAN_INPUT_CLOSED;
|
||||
|
||||
if ((c->io_ready & SSH_CHAN_IO_EFD_R) == 0)
|
||||
if (!force && (c->io_ready & SSH_CHAN_IO_EFD_R) == 0)
|
||||
return 1;
|
||||
|
||||
len = read(c->efd, buf, sizeof(buf));
|
||||
|
Loading…
Reference in New Issue
Block a user