Make Imap.connect() async

This commit is contained in:
Alexander Krotov
2019-12-14 22:25:33 +01:00
parent 74923b4575
commit ad700b45d0
2 changed files with 6 additions and 6 deletions

View File

@@ -6,6 +6,8 @@ mod read_url;
use percent_encoding::{utf8_percent_encode, NON_ALPHANUMERIC}; use percent_encoding::{utf8_percent_encode, NON_ALPHANUMERIC};
use async_std::task;
use crate::config::Config; use crate::config::Config;
use crate::constants::*; use crate::constants::*;
use crate::context::Context; use crate::context::Context;
@@ -540,12 +542,12 @@ fn try_imap_one_param(context: &Context, param: &LoginParam) -> Option<bool> {
param.imap_certificate_checks param.imap_certificate_checks
); );
info!(context, "Trying: {}", inf); info!(context, "Trying: {}", inf);
if context if task::block_on(context
.inbox_thread .inbox_thread
.read() .read()
.unwrap() .unwrap()
.imap .imap
.connect(context, &param) .connect(context, &param))
{ {
info!(context, "success: {}", inf); info!(context, "success: {}", inf);
return Some(true); return Some(true);

View File

@@ -339,7 +339,7 @@ impl Imap {
let param = LoginParam::from_database(context, "configured_"); let param = LoginParam::from_database(context, "configured_");
// the trailing underscore is correct // the trailing underscore is correct
if self.connect(context, &param) { if task::block_on(self.connect(context, &param)) {
self.ensure_configured_folders(context, true) self.ensure_configured_folders(context, true)
} else { } else {
Err(Error::ConnectionFailed(format!("{}", param))) Err(Error::ConnectionFailed(format!("{}", param)))
@@ -348,8 +348,7 @@ impl Imap {
/// tries connecting to imap account using the specific login /// tries connecting to imap account using the specific login
/// parameters /// parameters
pub fn connect(&self, context: &Context, lp: &LoginParam) -> bool { pub async fn connect(&self, context: &Context, lp: &LoginParam) -> bool {
task::block_on(async move {
if lp.mail_server.is_empty() || lp.mail_user.is_empty() || lp.mail_pw.is_empty() { if lp.mail_server.is_empty() || lp.mail_user.is_empty() || lp.mail_pw.is_empty() {
return false; return false;
} }
@@ -423,7 +422,6 @@ impl Imap {
} else { } else {
true true
} }
})
} }
pub fn disconnect(&self, context: &Context) { pub fn disconnect(&self, context: &Context) {