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

View File

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