Move read_autoconf_file to its own module

This commit is contained in:
Alexander Krotov
2019-12-02 02:10:46 +01:00
parent 1b0ff9f5be
commit 774106fc26
4 changed files with 40 additions and 26 deletions

View File

@@ -9,10 +9,10 @@ use crate::constants::*;
use crate::context::Context;
use crate::login_param::LoginParam;
use super::read_autoconf_file;
use super::read_url::read_url;
#[derive(Debug, Fail)]
enum Error {
pub enum Error {
#[fail(display = "XML error at position {}", position)]
InvalidXml {
position: usize,
@@ -24,6 +24,8 @@ enum Error {
IncompleteAutoconfig(LoginParam),
}
pub type Result<T> = std::result::Result<T, Error>;
struct OutlookAutodiscover {
pub out: LoginParam,
pub out_imap_set: bool,
@@ -133,9 +135,9 @@ pub fn outlk_autodiscover(
_param_in: &LoginParam,
) -> Option<LoginParam> {
let mut url = url.to_string();
/* Follow up to 10 xml-redirects (http-redirects are followed in read_autoconf_file() */
/* Follow up to 10 xml-redirects (http-redirects are followed in read_url() */
for _i in 0..10 {
if let Some(xml_raw) = read_autoconf_file(context, &url) {
if let Ok(xml_raw) = read_url(context, &url) {
match parse_xml(&xml_raw) {
Err(err) => {
warn!(context, "{}", err);