imap: remove unnecessary Imap.connected variable

It is always the same as Imap.session.is_some().
This commit is contained in:
link2xt
2021-09-12 00:04:18 +00:00
parent da2f30786b
commit 15dcd62652

View File

@@ -88,7 +88,6 @@ pub struct Imap {
idle_interrupt: Receiver<InterruptInfo>,
config: ImapConfig,
session: Option<Session>,
connected: bool,
interrupt: Option<stop_token::StopSource>,
should_reconnect: bool,
login_failed_once: bool,
@@ -200,7 +199,6 @@ impl Imap {
idle_interrupt,
config,
session: None,
connected: false,
interrupt: None,
should_reconnect: false,
login_failed_once: false,
@@ -254,7 +252,7 @@ impl Imap {
if self.should_reconnect() {
self.disconnect(context).await;
self.should_reconnect = false;
} else if self.is_connected() {
} else if self.session.is_some() {
return Ok(());
}
@@ -347,7 +345,6 @@ impl Imap {
match login_res {
Ok(session) => {
// needs to be set here to ensure it is set on reconnects.
self.connected = true;
self.session = Some(session);
self.login_failed_once = false;
context.emit_event(EventType::ImapConnected(format!(
@@ -442,16 +439,11 @@ impl Imap {
warn!(context, "failed to logout: {:?}", err);
}
}
self.connected = false;
self.capabilities_determined = false;
self.config.selected_folder = None;
self.config.selected_mailbox = None;
}
pub fn is_connected(&self) -> bool {
self.connected
}
pub fn should_reconnect(&self) -> bool {
self.should_reconnect
}
@@ -882,19 +874,13 @@ impl Imap {
return (None, 0);
}
if !self.is_connected() {
let session = match self.session.as_mut() {
Some(session) => session,
None => {
warn!(context, "Not connected");
return (None, server_uids.len());
}
if self.session.is_none() {
// we could not get a valid imap session, this should be retried
self.trigger_reconnect(context).await;
warn!(context, "Could not get IMAP session");
return (None, server_uids.len());
}
let session = self.session.as_mut().unwrap();
};
let sets = build_sequence_sets(server_uids.clone());
let mut read_errors = 0;
@@ -1123,7 +1109,7 @@ impl Imap {
if uid == 0 {
return Some(ImapActionResult::RetryLater);
}
if !self.is_connected() {
if self.session.is_none() {
// currently jobs are only performed on the INBOX thread
// TODO: make INBOX/SENT/MVBOX perform the jobs on their
// respective folders to avoid select_folder network traffic
@@ -1283,11 +1269,11 @@ impl Imap {
}
pub async fn configure_folders(&mut self, context: &Context, create_mvbox: bool) -> Result<()> {
if !self.is_connected() {
bail!("IMAP No Connection established");
}
let session = match self.session {
Some(ref mut session) => session,
None => bail!("no IMAP connection established"),
};
if let Some(ref mut session) = &mut self.session {
let mut folders = match session.list(Some(""), Some("*")).await {
Ok(f) => f,
Err(err) => {
@@ -1349,8 +1335,7 @@ impl Imap {
Err(err) => {
warn!(
context,
"Cannot create MVBOX-folder, trying to create INBOX subfolder. ({})",
err
"Cannot create MVBOX-folder, trying to create INBOX subfolder. ({})", err
);
match session.create(&fallback_folder).await {
@@ -1391,7 +1376,7 @@ impl Imap {
.sql
.set_raw_config_int("folders_configured", DC_FOLDERS_CONFIGURED_VERSION)
.await?;
}
info!(context, "FINISHED configuring IMAP-folders.");
Ok(())
}