fake_idle: unwrap watch_folder early to avoid doing it in a loop

This also makes info message "IMAP-fake-IDLEing folder=..." nicer,
because the folder name is not wrapped into Some() anymore.
This commit is contained in:
link2xt
2021-02-03 23:14:48 +03:00
committed by link2xt
parent b0a3a0046c
commit dc893bf5cd

View File

@@ -125,10 +125,12 @@ impl Imap {
let fake_idle_start_time = SystemTime::now(); let fake_idle_start_time = SystemTime::now();
// Do not poll, just wait for an interrupt when no folder is passed in. // Do not poll, just wait for an interrupt when no folder is passed in.
if watch_folder.is_none() { let watch_folder = if let Some(watch_folder) = watch_folder {
watch_folder
} else {
info!(context, "IMAP-fake-IDLE: no folder, waiting for interrupt"); info!(context, "IMAP-fake-IDLE: no folder, waiting for interrupt");
return self.idle_interrupt.recv().await.unwrap_or_default(); return self.idle_interrupt.recv().await.unwrap_or_default();
} };
info!(context, "IMAP-fake-IDLEing folder={:?}", watch_folder); info!(context, "IMAP-fake-IDLEing folder={:?}", watch_folder);
// check every minute if there are new messages // check every minute if there are new messages
@@ -170,8 +172,7 @@ impl Imap {
// will have already fetched the messages so perform_*_fetch // will have already fetched the messages so perform_*_fetch
// will not find any new. // will not find any new.
if let Some(ref watch_folder) = watch_folder { match self.fetch_new_messages(context, &watch_folder, false).await {
match self.fetch_new_messages(context, watch_folder, false).await {
Ok(res) => { Ok(res) => {
info!(context, "fetch_new_messages returned {:?}", res); info!(context, "fetch_new_messages returned {:?}", res);
if res { if res {
@@ -184,7 +185,6 @@ impl Imap {
} }
} }
} }
}
Event::Interrupt(info) => { Event::Interrupt(info) => {
// Interrupt // Interrupt
break info; break info;