summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorMatt Johnston <matt@ucc.asn.au>2015-11-17 20:53:30 +0800
committerMatt Johnston <matt@ucc.asn.au>2015-11-17 20:53:30 +0800
commite0ae527190ab2d7aa6d58cd50abbcde8ef32df8c (patch)
tree60113f2e90e9b4c65b89aacba86695d27c69fb5b
parent7fb1bec84ab9386ae8638864b7832d52c3501942 (diff)
Only clear channel_signal_pending after handling all channels,
from Andrzej Szombierski
-rw-r--r--common-channel.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/common-channel.c b/common-channel.c
index abe5941..b846f28 100644
--- a/common-channel.c
+++ b/common-channel.c
@@ -256,7 +256,6 @@ void channelio(fd_set *readfds, fd_set *writefds) {
if (ses.channel_signal_pending) {
/* SIGCHLD can change channel state for server sessions */
do_check_close = 1;
- ses.channel_signal_pending = 0;
}
/* handle any channel closing etc */
@@ -265,6 +264,8 @@ void channelio(fd_set *readfds, fd_set *writefds) {
}
}
+ ses.channel_signal_pending = 0;
+
#ifdef USING_LISTENERS
handle_listeners(readfds);
#endif