From 056cf73d35e36521f5d8c9e799f1d21c6976d99c Mon Sep 17 00:00:00 2001 From: Damien Miller Date: Tue, 22 Jan 2002 23:21:39 +1100 Subject: - markus@cvs.openbsd.org 2002/01/10 11:13:29 [serverloop.c] skip client_alive_check until there are channels; ok beck@ --- serverloop.c | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) (limited to 'serverloop.c') diff --git a/serverloop.c b/serverloop.c index 0c75b05c9..39d992057 100644 --- a/serverloop.c +++ b/serverloop.c @@ -35,7 +35,7 @@ */ #include "includes.h" -RCSID("$OpenBSD: serverloop.c,v 1.93 2001/12/28 15:06:00 markus Exp $"); +RCSID("$OpenBSD: serverloop.c,v 1.94 2002/01/10 11:13:29 markus Exp $"); #include "xmalloc.h" #include "packet.h" @@ -209,15 +209,21 @@ make_packets_from_stdout_data(void) static void client_alive_check(void) { + static int had_channel = 0; int id; + id = channel_find_open(); + if (id == -1) { + if (!had_channel) + return; + packet_disconnect("No open channels after timeout!"); + } + had_channel = 1; + /* timeout, check to see how many we have had */ if (++client_alive_timeouts > options.client_alive_count_max) packet_disconnect("Timeout, your session not responding."); - id = channel_find_open(); - if (id == -1) - packet_disconnect("No open channels after timeout!"); /* * send a bogus channel request with "wantreply", * we should get back a failure -- cgit v1.2.3