show better error message for a simple 'bad credentials' error and give some more hints for other errors

This commit is contained in:
B. Petersen
2019-10-09 01:27:13 +02:00
committed by holger krekel
parent 469f8ac31d
commit 27627b4f74
2 changed files with 14 additions and 10 deletions

View File

@@ -16,6 +16,7 @@ use crate::login_param::{dc_build_tls, CertificateChecks, LoginParam};
use crate::message::{self, update_msg_move_state, update_server_uid};
use crate::oauth2::dc_get_oauth2_access_token;
use crate::param::Params;
use crate::stock::StockMessage;
use crate::wrapmime;
const DC_IMAP_SEEN: usize = 0x0001;
@@ -445,15 +446,14 @@ impl Imap {
let config = self.config.read().unwrap();
let imap_server: &str = config.imap_server.as_ref();
let imap_port = config.imap_port;
emit_event!(
context,
Event::ErrorNetwork(format!(
"Could not connect to IMAP-server {}:{}. ({})",
imap_server, imap_port, err
))
let message = context.stock_string_repl_str2(
StockMessage::ServerResponse,
format!("{}:{}", imap_server, imap_port),
format!("{}", err),
);
emit_event!(context, Event::ErrorNetwork(message));
return false;
}
};
@@ -467,9 +467,13 @@ impl Imap {
true
}
Err((err, _)) => {
let config = self.config.read().unwrap();
let imap_user: &str = config.imap_user.as_ref();
let message = context.stock_string_repl_str(StockMessage::CannotLogin, imap_user);
emit_event!(
context,
Event::ErrorNetwork(format!("Cannot login ({})", err))
Event::ErrorNetwork(format!("{} ({})", message, err))
);
self.unsetup_handle(context);

View File

@@ -96,7 +96,7 @@ pub enum StockMessage {
SelfTalkSubTitle = 50,
#[strum(props(fallback = "Cannot login as %1$s."))]
CannotLogin = 60,
#[strum(props(fallback = "Response from %1$s: %2$s"))]
#[strum(props(fallback = "Could not connect to %1$s: %2$s"))]
ServerResponse = 61,
#[strum(props(fallback = "%1$s by %2$s."))]
MsgActionByUser = 62,
@@ -334,7 +334,7 @@ mod tests {
assert_eq!(
t.ctx
.stock_string_repl_str2(StockMessage::ServerResponse, "foo", "bar"),
"Response from foo: bar"
"Could not connect to foo: bar"
);
}