From 4f7f5c8fd38c843c667e2b12a350094715a0627b Mon Sep 17 00:00:00 2001
From: "Eric S. Raymond" <esr@thyrsus.com>
Date: Wed, 29 Mar 2000 22:35:23 +0000
Subject: Another shot at making IDLE timeouts work.

svn path=/trunk/; revision=2847
---
 imap.c | 9 +++++----
 1 file changed, 5 insertions(+), 4 deletions(-)

diff --git a/imap.c b/imap.c
index 88591311..a60e9688 100644
--- a/imap.c
+++ b/imap.c
@@ -63,8 +63,8 @@ extern char *strstr();	/* needed on sysV68 R3V7.1. */
 #define IMAP4rev1	1	/* IMAP4 rev 1, RFC2060 */
 
 static int count, seen, recent, unseen, deletions, imap_version, preauth; 
-static int expunged, expunge_period;
-static flag do_idle, idling;
+static int expunged, expunge_period, saved_timeout;
+static flag do_idle;
 static char capabilities[MSGBUFSIZE+1];
 
 int imap_ok(int sock, char *argbuf)
@@ -105,6 +105,7 @@ int imap_ok(int sock, char *argbuf)
 		if (outlevel >= O_MONITOR)
 		    report(stdout, "IMAP> DONE\n");
 
+		mytimeout = saved_timeout;
 		stage = STAGE_FETCH;
 	    }
 	}
@@ -1086,8 +1087,8 @@ static int imap_getrange(int sock,
 	if (do_idle)
 	{
 	    stage = STAGE_IDLE;
-	    /* this is the RFC2177-recommended timeout for an IDLE */
-	    mytimeout = 29 * 60;
+	    saved_timeout = mytimeout;
+	    mytimeout = 0;
 	}
 	if (ok || gen_transact(sock, do_idle ? "IDLE" : "NOOP"))
 	{
-- 
cgit v1.2.3