diff options
author | Damien Miller <djm@mindrot.org> | 2001-10-12 11:35:04 +1000 |
---|---|---|
committer | Damien Miller <djm@mindrot.org> | 2001-10-12 11:35:04 +1000 |
commit | 3ec2759ad40f054c152c753db046ac55f9670d14 (patch) | |
tree | 3b26532eed14eaf485834a531a4d187cde1b1149 /clientloop.c | |
parent | 4e088e4de02b6c813b498a1270df85e8136c4499 (diff) |
- (djm) OpenBSD CVS Sync
- markus@cvs.openbsd.org 2001/10/10 22:18:47
[channels.c channels.h clientloop.c nchan.c serverloop.c]
[session.c session.h]
try to keep channels open until an exit-status message is sent.
don't kill the login shells if the shells stdin/out/err is closed.
this should now work:
ssh -2n localhost 'exec > /dev/null 2>&1; sleep 10; exit 5'; echo ?
Diffstat (limited to 'clientloop.c')
-rw-r--r-- | clientloop.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/clientloop.c b/clientloop.c index e6da67d5..43332d1f 100644 --- a/clientloop.c +++ b/clientloop.c @@ -59,7 +59,7 @@ */ #include "includes.h" -RCSID("$OpenBSD: clientloop.c,v 1.82 2001/09/17 20:52:47 markus Exp $"); +RCSID("$OpenBSD: clientloop.c,v 1.83 2001/10/10 22:18:47 markus Exp $"); #include "ssh.h" #include "ssh1.h" @@ -753,6 +753,7 @@ client_channel_closed(int id, void *arg) if (id != session_ident) error("client_channel_closed: id %d != session_ident %d", id, session_ident); + channel_cancel_cleanup(id); session_closed = 1; if (in_raw_mode()) leave_raw_mode(); |