[prev in list] [next in list] [prev in thread] [next in thread] 

List:       mutt-dev
Subject:    mutt: Add polling for the IDLE command. (closes #3957)
From:       Brendan Cully <brendan () kublai ! com>
Date:       2017-10-15 7:15:39
Message-ID: hg.321805c70d99.1508051739.1928362535899276112 () dev ! cs ! ubc ! ca
[Download RAW message or body]

changeset: 7174:321805c70d99
user:      Kevin McCarthy <kevin@8t8.us>
date:      Sun Oct 15 15:13:18 2017 +0800
link:      http://dev.mutt.org/hg/mutt/rev/321805c70d99

Add polling for the IDLE command. (closes #3957)

Add $imap_poll_timeout poll for IDLE, since this is also a command
that will freeze after waking if $imap_idle is set.

diffs (26 lines):

diff -r ba4a3cb944c5 -r 321805c70d99 imap/command.c
--- a/imap/command.c	Sat Sep 30 19:16:56 2017 -0700
+++ b/imap/command.c	Sun Oct 15 15:13:18 2017 +0800
@@ -333,7 +333,21 @@
 {
   int rc;
 
-  imap_cmd_start (idata, "IDLE");
+  if (cmd_start (idata, "IDLE", IMAP_CMD_POLL) < 0)
+  {
+    cmd_handle_fatal (idata);
+    return -1;
+  }
+
+  if ((ImapPollTimeout > 0) &&
+      (mutt_socket_poll (idata->conn, ImapPollTimeout)) == 0)
+  {
+    mutt_error (_("Connection to %s timed out"), idata->conn->account.host);
+    mutt_sleep (2);
+    cmd_handle_fatal (idata);
+    return -1;
+  }
+
   do
     rc = imap_cmd_step (idata);
   while (rc == IMAP_CMD_CONTINUE);
[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic