Add $imap_poll_timeout poll for IDLE, since this is also a command
that will freeze after waking if $imap_idle is set.
{
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);