From 7b08e9eb937dfe13d8d4b71d5226f288cdb4a67a Mon Sep 17 00:00:00 2001 From: "Eric S. Raymond" Date: Fri, 28 Feb 2003 10:58:25 +0000 Subject: IDLE and CYgwin fix patch. svn path=/trunk/; revision=3793 --- driver.c | 16 ++++++++++++++-- fetchmail-features.html | 6 +++--- 2 files changed, 17 insertions(+), 5 deletions(-) diff --git a/driver.c b/driver.c index 4a4f4d3f..50596490 100644 --- a/driver.c +++ b/driver.c @@ -70,9 +70,16 @@ flag peek_capable; /* can we peek for better error recovery? */ int mailserver_socket_temp = -1; /* socket to free if connect timeout */ static int timeoutcount; /* count consecutive timeouts */ +static int idletimeout; /* timeout occured in idle stage? */ static jmp_buf restart; +int isidletimeout(void) +/* last timeout occured in idle stage? */ +{ + return idletimeout; +} + void set_timeout(int timeleft) /* reset the nonresponse-timeout */ { @@ -82,6 +89,8 @@ void set_timeout(int timeleft) if (timeleft == 0) timeoutcount = 0; + idletimeout = 1; + ntimeout.it_interval.tv_sec = ntimeout.it_interval.tv_usec = 0; ntimeout.it_value.tv_sec = timeleft; ntimeout.it_value.tv_usec = 0; @@ -92,8 +101,11 @@ void set_timeout(int timeleft) static RETSIGTYPE timeout_handler (int signal) /* handle SIGALRM signal indicating a server timeout */ { - timeoutcount++; - longjmp(restart, THROW_TIMEOUT); + if(stage != STAGE_IDLE) { + timeoutcount++; + longjmp(restart, THROW_TIMEOUT); + } else + idletimeout = 1; } static RETSIGTYPE sigpipe_handler (int signal) diff --git a/fetchmail-features.html b/fetchmail-features.html index 7665a42f..76baad07 100644 --- a/fetchmail-features.html +++ b/fetchmail-features.html @@ -18,7 +18,7 @@ Back to Fetchmail Home Page To Site Map -$Date: 2002/09/09 13:59:55 $ +$Date: 2003/02/28 10:58:25 $ @@ -28,7 +28,7 @@

Since 5.0: