summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDamien Miller <djm@mindrot.org>2000-11-29 11:26:45 +1100
committerDamien Miller <djm@mindrot.org>2000-11-29 11:26:45 +1100
commita2e53ccb64c42a635b4618b592e470a02c0142b0 (patch)
tree591f4bb959812ebf69d5edaa1d6bc2832fdc690f
parentd592b632968fbec154c81b93c99b283200b257b6 (diff)
- (djm) Fix(?) the ssh hang-on-logout/data-from-child race
-rw-r--r--ChangeLog3
-rw-r--r--session.c5
2 files changed, 5 insertions, 3 deletions
diff --git a/ChangeLog b/ChangeLog
index 82288c998..092741164 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,6 @@
120001129
2 - (djm) Fix(?) the ssh hang-on-logout/data-from-child race
3
120001125 420001125
2 - (djm) Give up privs when reading seed file 5 - (djm) Give up privs when reading seed file
3 6
diff --git a/session.c b/session.c
index 826307ef1..b6c847b8f 100644
--- a/session.c
+++ b/session.c
@@ -1898,13 +1898,12 @@ session_exit_message(Session *s, int status)
1898 * interested in data we write. 1898 * interested in data we write.
1899 * Note that we must not call 'chan_read_failed', since there could 1899 * Note that we must not call 'chan_read_failed', since there could
1900 * be some more data waiting in the pipe. 1900 * be some more data waiting in the pipe.
1901 * djm - This is no longer true as we have allowed one pass through
1902 * the select loop before killing the connection
1903 */ 1901 */
1904 if (c->ostate != CHAN_OUTPUT_CLOSED) 1902 if (c->ostate != CHAN_OUTPUT_CLOSED)
1905 chan_write_failed(c); 1903 chan_write_failed(c);
1906 if (c->istate != CHAN_INPUT_CLOSED) 1904 if (c->istate != CHAN_INPUT_CLOSED)
1907 chan_read_failed(c); 1905 c->istate = CHAN_INPUT_WAIT_DRAIN;
1906
1908 s->chanid = -1; 1907 s->chanid = -1;
1909} 1908}
1910 1909