Andreas Krennmair:
[apps/madmutt.git] / imap / imap.c
index eefdd31..0ad54d1 100644 (file)
@@ -1484,3 +1484,21 @@ int imap_complete(char* dest, size_t dlen, char* path) {
   FREE (&mx.mbox);
   return -1;
 }
+
+/* reconnect and verify indexes if connection was lost */
+int imap_reconnect(CONTEXT* ctx) {
+  IMAP_DATA* imap_data = (IMAP_DATA *)ctx->data;
+
+  if (imap_data->status == IMAP_CONNECTED)
+    return -1;
+  if (imap_data->status == IMAP_BYE)
+    return 0;
+
+  mutt_socket_close(imap_data->conn);
+
+  if (query_quadoption(OPT_IMAPRECONNECT,_("Connection lost. Reconnect to IMAP server?")) != M_YES)
+    return -1;
+
+  return imap_open_mailbox(ctx);
+}
+