summaryrefslogtreecommitdiffstats
path: root/melib/src/backends/imap.rs
diff options
context:
space:
mode:
authorManos Pitsidianakis <el13635@mail.ntua.gr>2020-09-14 19:32:43 +0300
committerManos Pitsidianakis <el13635@mail.ntua.gr>2020-09-14 19:32:43 +0300
commit17a4ccdcbc37977cf7c4c17b8180a922936ee2f5 (patch)
tree2d0549fb266783b652665937475e0f7faaf15756 /melib/src/backends/imap.rs
parent670675edcc48480a8e250d9b2b06b69c837df51c (diff)
melib/imap: perform reconnect on IDLE failure
Diffstat (limited to 'melib/src/backends/imap.rs')
-rw-r--r--melib/src/backends/imap.rs11
1 files changed, 11 insertions, 0 deletions
diff --git a/melib/src/backends/imap.rs b/melib/src/backends/imap.rs
index f346d164..b69569aa 100644
--- a/melib/src/backends/imap.rs
+++ b/melib/src/backends/imap.rs
@@ -479,6 +479,17 @@ impl MailBackend for ImapType {
main_conn.uid_store.is_online.lock().unwrap().1 = Err(err.clone());
}
debug!("failure: {}", err.to_string());
+ match timeout(timeout_dur, main_conn.connect())
+ .await
+ .and_then(|res| res)
+ {
+ Err(err2) => {
+ debug!("reconnect attempt failed: {}", err2.to_string());
+ }
+ Ok(()) => {
+ debug!("reconnect attempt succesful");
+ }
+ }
let account_hash = main_conn.uid_store.account_hash;
main_conn.add_refresh_event(RefreshEvent {
account_hash,