From 920753ad5058273aaf790fb20332f437f24b92e9 Mon Sep 17 00:00:00 2001 From: Alexander Krotov Date: Mon, 10 Aug 2020 21:49:17 +0300 Subject: [PATCH] configure: do not try the same username twice If username does not contain "@", don't try again after removing domain part. --- src/configure/mod.rs | 28 ++++++++++++++-------------- 1 file changed, 14 insertions(+), 14 deletions(-) diff --git a/src/configure/mod.rs b/src/configure/mod.rs index be4bbc8b7..2e133d10a 100644 --- a/src/configure/mod.rs +++ b/src/configure/mod.rs @@ -495,14 +495,14 @@ async fn try_imap_usernames( ) -> Result { if param.mail_user.is_empty() { param.mail_user = param.addr.clone(); - if let Ok(()) = try_imap_one_param(context, ¶m, imap).await { - return Ok(param); + if let Err(e) = try_imap_one_param(context, ¶m, imap).await { + if let Some(at) = param.mail_user.find('@') { + param.mail_user = param.mail_user.split_at(at).0.to_string(); + try_imap_one_param(context, ¶m, imap).await?; + } else { + return Err(e); + } } - - if let Some(at) = param.mail_user.find('@') { - param.mail_user = param.mail_user.split_at(at).0.to_string(); - } - try_imap_one_param(context, ¶m, imap).await?; Ok(param) } else { try_imap_one_param(context, ¶m, imap).await?; @@ -619,14 +619,14 @@ async fn try_smtp_usernames( ) -> Result { if param.send_user.is_empty() { param.send_user = param.addr.clone(); - if let Ok(()) = try_smtp_one_param(context, ¶m, smtp).await { - return Ok(param); + if let Err(e) = try_smtp_one_param(context, ¶m, smtp).await { + if let Some(at) = param.send_user.find('@') { + param.send_user = param.send_user.split_at(at).0.to_string(); + try_smtp_one_param(context, ¶m, smtp).await?; + } else { + return Err(e); + } } - - if let Some(at) = param.send_user.find('@') { - param.send_user = param.send_user.split_at(at).0.to_string(); - } - try_smtp_one_param(context, ¶m, smtp).await?; Ok(param) } else { try_smtp_one_param(context, ¶m, smtp).await?;