mirror of
https://github.com/chatmail/core.git
synced 2026-09-22 04:58:47 +03:00
fix: prefer login errors over connection errors
This commit is contained in:
11
src/imap.rs
11
src/imap.rs
@@ -299,7 +299,8 @@ impl Imap {
|
|||||||
self.conn_backoff_ms = max(BACKOFF_MIN_MS, self.conn_backoff_ms);
|
self.conn_backoff_ms = max(BACKOFF_MIN_MS, self.conn_backoff_ms);
|
||||||
|
|
||||||
let login_params = prioritize_server_login_params(&context.sql, &self.lp, "imap").await?;
|
let login_params = prioritize_server_login_params(&context.sql, &self.lp, "imap").await?;
|
||||||
let mut first_error = None;
|
let mut first_connection_error = None;
|
||||||
|
let mut first_login_error = None;
|
||||||
'candidate: for lp in login_params {
|
'candidate: for lp in login_params {
|
||||||
info!(context, "IMAP trying to connect to {}.", lp.connection);
|
info!(context, "IMAP trying to connect to {}.", lp.connection);
|
||||||
let connection_candidate = lp.connection.clone();
|
let connection_candidate = lp.connection.clone();
|
||||||
@@ -315,7 +316,7 @@ impl Imap {
|
|||||||
Ok(client) => client,
|
Ok(client) => client,
|
||||||
Err(err) => {
|
Err(err) => {
|
||||||
warn!(context, "{err:#}.");
|
warn!(context, "{err:#}.");
|
||||||
first_error.get_or_insert(err);
|
first_connection_error.get_or_insert(err);
|
||||||
continue 'candidate;
|
continue 'candidate;
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
@@ -394,12 +395,14 @@ impl Imap {
|
|||||||
|
|
||||||
Err(err) => {
|
Err(err) => {
|
||||||
warn!(context, "{err:#}.");
|
warn!(context, "{err:#}.");
|
||||||
first_error.get_or_insert(err);
|
first_login_error.get_or_insert(err);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
Err(first_error.unwrap_or_else(|| format_err!("No IMAP connection candidates provided")))
|
Err(first_login_error
|
||||||
|
.or(first_connection_error)
|
||||||
|
.unwrap_or_else(|| format_err!("No IMAP connection candidates provided")))
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Prepare a new IMAP session.
|
/// Prepare a new IMAP session.
|
||||||
|
|||||||
Reference in New Issue
Block a user