diff svr-chansession.c @ 367:c046b66b76cd channel-fix

propagate from branch 'au.asn.ucc.matt.dropbear' (head 31dcd7a22983ef19d6c63248e415e71d292dd0ec) to branch 'au.asn.ucc.matt.dropbear.channel-fix' (head 7559a8cc4f6abe2338636f2aced3a395a79c172c)
author Matt Johnston <matt@ucc.asn.au>
date Thu, 12 Oct 2006 03:01:10 +0000
parents 90cb290836de
children a5bca950120d
line wrap: on
line diff
--- a/svr-chansession.c	Wed Oct 11 16:00:50 2006 +0000
+++ b/svr-chansession.c	Thu Oct 12 03:01:10 2006 +0000
@@ -59,7 +59,6 @@
 		struct ChanSess * chansess);
 static void send_msg_chansess_exitsignal(struct Channel * channel,
 		struct ChanSess * chansess);
-static int sesscheckclose(struct Channel *channel);
 static void get_termmodes(struct ChanSess *chansess);
 
 
@@ -67,7 +66,8 @@
 extern char** environ;
 
 static int sesscheckclose(struct Channel *channel) {
-	return channel->writefd == -1;
+	struct ChanSess *chansess = (struct ChanSess*)channel->typedata;
+	return chansess->exit.exitpid != -1;
 }
 
 /* Handler for childs exiting, store the state for return to the client */