mirror of
https://github.com/chatmail/core.git
synced 2026-04-29 11:26:29 +03:00
Merge pull request #1441 from deltachat/config-from-provider-db
optionally get default-options from provider-db
This commit is contained in:
@@ -69,6 +69,7 @@ pub(crate) fn JobConfigureImap(context: &Context) -> job::Status {
|
|||||||
let mut smtp_connected_here = false;
|
let mut smtp_connected_here = false;
|
||||||
|
|
||||||
let mut param_autoconfig: Option<LoginParam> = None;
|
let mut param_autoconfig: Option<LoginParam> = None;
|
||||||
|
let was_configured_before = context.is_configured();
|
||||||
|
|
||||||
context
|
context
|
||||||
.inbox_thread
|
.inbox_thread
|
||||||
@@ -441,6 +442,15 @@ pub(crate) fn JobConfigureImap(context: &Context) -> job::Status {
|
|||||||
}
|
}
|
||||||
|
|
||||||
if let Some(provider) = provider::get_provider_info(¶m.addr) {
|
if let Some(provider) = provider::get_provider_info(¶m.addr) {
|
||||||
|
if !was_configured_before {
|
||||||
|
if let Some(config_defaults) = &provider.config_defaults {
|
||||||
|
for def in config_defaults.iter() {
|
||||||
|
info!(context, "apply config_defaults {}={}", def.key, def.value);
|
||||||
|
context.set_config(def.key, Some(def.value));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if !provider.after_login_hint.is_empty() {
|
if !provider.after_login_hint.is_empty() {
|
||||||
let mut msg = Message::new(Viewtype::Text);
|
let mut msg = Message::new(Viewtype::Text);
|
||||||
msg.text = Some(provider.after_login_hint.to_string());
|
msg.text = Some(provider.after_login_hint.to_string());
|
||||||
|
|||||||
@@ -18,6 +18,7 @@ lazy_static::lazy_static! {
|
|||||||
Server { protocol: IMAP, socket: STARTTLS, hostname: "newyear.aktivix.org", port: 143, username_pattern: EMAIL },
|
Server { protocol: IMAP, socket: STARTTLS, hostname: "newyear.aktivix.org", port: 143, username_pattern: EMAIL },
|
||||||
Server { protocol: SMTP, socket: STARTTLS, hostname: "newyear.aktivix.org", port: 25, username_pattern: EMAIL },
|
Server { protocol: SMTP, socket: STARTTLS, hostname: "newyear.aktivix.org", port: 25, username_pattern: EMAIL },
|
||||||
],
|
],
|
||||||
|
config_defaults: None,
|
||||||
};
|
};
|
||||||
|
|
||||||
// aol.md: aol.com
|
// aol.md: aol.com
|
||||||
@@ -28,6 +29,7 @@ lazy_static::lazy_static! {
|
|||||||
overview_page: "https://providers.delta.chat/aol",
|
overview_page: "https://providers.delta.chat/aol",
|
||||||
server: vec![
|
server: vec![
|
||||||
],
|
],
|
||||||
|
config_defaults: None,
|
||||||
};
|
};
|
||||||
|
|
||||||
// autistici.org.md: autistici.org
|
// autistici.org.md: autistici.org
|
||||||
@@ -40,6 +42,7 @@ lazy_static::lazy_static! {
|
|||||||
Server { protocol: IMAP, socket: SSL, hostname: "mail.autistici.org", port: 993, username_pattern: EMAIL },
|
Server { protocol: IMAP, socket: SSL, hostname: "mail.autistici.org", port: 993, username_pattern: EMAIL },
|
||||||
Server { protocol: SMTP, socket: SSL, hostname: "smtp.autistici.org", port: 465, username_pattern: EMAIL },
|
Server { protocol: SMTP, socket: SSL, hostname: "smtp.autistici.org", port: 465, username_pattern: EMAIL },
|
||||||
],
|
],
|
||||||
|
config_defaults: None,
|
||||||
};
|
};
|
||||||
|
|
||||||
// bluewin.ch.md: bluewin.ch
|
// bluewin.ch.md: bluewin.ch
|
||||||
@@ -52,6 +55,7 @@ lazy_static::lazy_static! {
|
|||||||
Server { protocol: IMAP, socket: SSL, hostname: "imaps.bluewin.ch", port: 993, username_pattern: EMAIL },
|
Server { protocol: IMAP, socket: SSL, hostname: "imaps.bluewin.ch", port: 993, username_pattern: EMAIL },
|
||||||
Server { protocol: SMTP, socket: SSL, hostname: "smtpauths.bluewin.ch", port: 465, username_pattern: EMAIL },
|
Server { protocol: SMTP, socket: SSL, hostname: "smtpauths.bluewin.ch", port: 465, username_pattern: EMAIL },
|
||||||
],
|
],
|
||||||
|
config_defaults: None,
|
||||||
};
|
};
|
||||||
|
|
||||||
// comcast.md: xfinity.com, comcast.net
|
// comcast.md: xfinity.com, comcast.net
|
||||||
@@ -73,6 +77,7 @@ lazy_static::lazy_static! {
|
|||||||
Server { protocol: IMAP, socket: SSL, hostname: "imap.example.com", port: 1337, username_pattern: EMAIL },
|
Server { protocol: IMAP, socket: SSL, hostname: "imap.example.com", port: 1337, username_pattern: EMAIL },
|
||||||
Server { protocol: SMTP, socket: STARTTLS, hostname: "smtp.example.com", port: 1337, username_pattern: EMAIL },
|
Server { protocol: SMTP, socket: STARTTLS, hostname: "smtp.example.com", port: 1337, username_pattern: EMAIL },
|
||||||
],
|
],
|
||||||
|
config_defaults: None,
|
||||||
};
|
};
|
||||||
|
|
||||||
// fastmail.md: fastmail.com
|
// fastmail.md: fastmail.com
|
||||||
@@ -83,6 +88,7 @@ lazy_static::lazy_static! {
|
|||||||
overview_page: "https://providers.delta.chat/fastmail",
|
overview_page: "https://providers.delta.chat/fastmail",
|
||||||
server: vec![
|
server: vec![
|
||||||
],
|
],
|
||||||
|
config_defaults: None,
|
||||||
};
|
};
|
||||||
|
|
||||||
// freenet.de.md: freenet.de
|
// freenet.de.md: freenet.de
|
||||||
@@ -95,6 +101,7 @@ lazy_static::lazy_static! {
|
|||||||
Server { protocol: IMAP, socket: SSL, hostname: "mx.freenet.de", port: 993, username_pattern: EMAIL },
|
Server { protocol: IMAP, socket: SSL, hostname: "mx.freenet.de", port: 993, username_pattern: EMAIL },
|
||||||
Server { protocol: SMTP, socket: STARTTLS, hostname: "mx.freenet.de", port: 587, username_pattern: EMAIL },
|
Server { protocol: SMTP, socket: STARTTLS, hostname: "mx.freenet.de", port: 587, username_pattern: EMAIL },
|
||||||
],
|
],
|
||||||
|
config_defaults: None,
|
||||||
};
|
};
|
||||||
|
|
||||||
// gmail.md: gmail.com, googlemail.com
|
// gmail.md: gmail.com, googlemail.com
|
||||||
@@ -107,6 +114,7 @@ lazy_static::lazy_static! {
|
|||||||
Server { protocol: IMAP, socket: SSL, hostname: "imap.gmail.com", port: 993, username_pattern: EMAIL },
|
Server { protocol: IMAP, socket: SSL, hostname: "imap.gmail.com", port: 993, username_pattern: EMAIL },
|
||||||
Server { protocol: SMTP, socket: SSL, hostname: "smtp.gmail.com", port: 465, username_pattern: EMAIL },
|
Server { protocol: SMTP, socket: SSL, hostname: "smtp.gmail.com", port: 465, username_pattern: EMAIL },
|
||||||
],
|
],
|
||||||
|
config_defaults: None,
|
||||||
};
|
};
|
||||||
|
|
||||||
// gmx.net.md: gmx.net, gmx.de, gmx.at, gmx.ch, gmx.org, gmx.eu, gmx.info, gmx.biz, gmx.com
|
// gmx.net.md: gmx.net, gmx.de, gmx.at, gmx.ch, gmx.org, gmx.eu, gmx.info, gmx.biz, gmx.com
|
||||||
@@ -120,6 +128,7 @@ lazy_static::lazy_static! {
|
|||||||
Server { protocol: SMTP, socket: SSL, hostname: "mail.gmx.net", port: 465, username_pattern: EMAIL },
|
Server { protocol: SMTP, socket: SSL, hostname: "mail.gmx.net", port: 465, username_pattern: EMAIL },
|
||||||
Server { protocol: SMTP, socket: STARTTLS, hostname: "mail.gmx.net", port: 587, username_pattern: EMAIL },
|
Server { protocol: SMTP, socket: STARTTLS, hostname: "mail.gmx.net", port: 587, username_pattern: EMAIL },
|
||||||
],
|
],
|
||||||
|
config_defaults: None,
|
||||||
};
|
};
|
||||||
|
|
||||||
// i.ua.md: i.ua
|
// i.ua.md: i.ua
|
||||||
@@ -135,6 +144,7 @@ lazy_static::lazy_static! {
|
|||||||
Server { protocol: IMAP, socket: SSL, hostname: "imap.mail.me.com", port: 993, username_pattern: EMAILLOCALPART },
|
Server { protocol: IMAP, socket: SSL, hostname: "imap.mail.me.com", port: 993, username_pattern: EMAILLOCALPART },
|
||||||
Server { protocol: SMTP, socket: STARTTLS, hostname: "smtp.mail.me.com", port: 587, username_pattern: EMAIL },
|
Server { protocol: SMTP, socket: STARTTLS, hostname: "smtp.mail.me.com", port: 587, username_pattern: EMAIL },
|
||||||
],
|
],
|
||||||
|
config_defaults: None,
|
||||||
};
|
};
|
||||||
|
|
||||||
// kolst.com.md: kolst.com
|
// kolst.com.md: kolst.com
|
||||||
@@ -159,6 +169,7 @@ lazy_static::lazy_static! {
|
|||||||
Server { protocol: IMAP, socket: STARTTLS, hostname: "imap.nauta.cu", port: 143, username_pattern: EMAIL },
|
Server { protocol: IMAP, socket: STARTTLS, hostname: "imap.nauta.cu", port: 143, username_pattern: EMAIL },
|
||||||
Server { protocol: SMTP, socket: STARTTLS, hostname: "smtp.nauta.cu", port: 25, username_pattern: EMAIL },
|
Server { protocol: SMTP, socket: STARTTLS, hostname: "smtp.nauta.cu", port: 25, username_pattern: EMAIL },
|
||||||
],
|
],
|
||||||
|
config_defaults: None,
|
||||||
};
|
};
|
||||||
|
|
||||||
// outlook.com.md: hotmail.com, outlook.com, office365.com, outlook.com.tr, live.com
|
// outlook.com.md: hotmail.com, outlook.com, office365.com, outlook.com.tr, live.com
|
||||||
@@ -171,6 +182,7 @@ lazy_static::lazy_static! {
|
|||||||
Server { protocol: IMAP, socket: SSL, hostname: "imap-mail.outlook.com", port: 993, username_pattern: EMAIL },
|
Server { protocol: IMAP, socket: SSL, hostname: "imap-mail.outlook.com", port: 993, username_pattern: EMAIL },
|
||||||
Server { protocol: SMTP, socket: STARTTLS, hostname: "smtp-mail.outlook.com", port: 587, username_pattern: EMAIL },
|
Server { protocol: SMTP, socket: STARTTLS, hostname: "smtp-mail.outlook.com", port: 587, username_pattern: EMAIL },
|
||||||
],
|
],
|
||||||
|
config_defaults: None,
|
||||||
};
|
};
|
||||||
|
|
||||||
// posteo.md: posteo.de
|
// posteo.md: posteo.de
|
||||||
@@ -183,6 +195,7 @@ lazy_static::lazy_static! {
|
|||||||
Server { protocol: IMAP, socket: STARTTLS, hostname: "posteo.de", port: 143, username_pattern: EMAIL },
|
Server { protocol: IMAP, socket: STARTTLS, hostname: "posteo.de", port: 143, username_pattern: EMAIL },
|
||||||
Server { protocol: SMTP, socket: STARTTLS, hostname: "posteo.de", port: 587, username_pattern: EMAIL },
|
Server { protocol: SMTP, socket: STARTTLS, hostname: "posteo.de", port: 587, username_pattern: EMAIL },
|
||||||
],
|
],
|
||||||
|
config_defaults: None,
|
||||||
};
|
};
|
||||||
|
|
||||||
// protonmail.md: protonmail.com, protonmail.ch
|
// protonmail.md: protonmail.com, protonmail.ch
|
||||||
@@ -193,6 +206,7 @@ lazy_static::lazy_static! {
|
|||||||
overview_page: "https://providers.delta.chat/protonmail",
|
overview_page: "https://providers.delta.chat/protonmail",
|
||||||
server: vec![
|
server: vec![
|
||||||
],
|
],
|
||||||
|
config_defaults: None,
|
||||||
};
|
};
|
||||||
|
|
||||||
// riseup.net.md: riseup.net
|
// riseup.net.md: riseup.net
|
||||||
@@ -209,6 +223,7 @@ lazy_static::lazy_static! {
|
|||||||
overview_page: "https://providers.delta.chat/t-online",
|
overview_page: "https://providers.delta.chat/t-online",
|
||||||
server: vec![
|
server: vec![
|
||||||
],
|
],
|
||||||
|
config_defaults: None,
|
||||||
};
|
};
|
||||||
|
|
||||||
// testrun.md: testrun.org
|
// testrun.md: testrun.org
|
||||||
@@ -222,6 +237,7 @@ lazy_static::lazy_static! {
|
|||||||
Server { protocol: IMAP, socket: STARTTLS, hostname: "testrun.org", port: 143, username_pattern: EMAIL },
|
Server { protocol: IMAP, socket: STARTTLS, hostname: "testrun.org", port: 143, username_pattern: EMAIL },
|
||||||
Server { protocol: SMTP, socket: STARTTLS, hostname: "testrun.org", port: 587, username_pattern: EMAIL },
|
Server { protocol: SMTP, socket: STARTTLS, hostname: "testrun.org", port: 587, username_pattern: EMAIL },
|
||||||
],
|
],
|
||||||
|
config_defaults: None,
|
||||||
};
|
};
|
||||||
|
|
||||||
// tiscali.it.md: tiscali.it
|
// tiscali.it.md: tiscali.it
|
||||||
@@ -234,6 +250,7 @@ lazy_static::lazy_static! {
|
|||||||
Server { protocol: IMAP, socket: SSL, hostname: "imap.tiscali.it", port: 993, username_pattern: EMAIL },
|
Server { protocol: IMAP, socket: SSL, hostname: "imap.tiscali.it", port: 993, username_pattern: EMAIL },
|
||||||
Server { protocol: SMTP, socket: SSL, hostname: "smtp.tiscali.it", port: 465, username_pattern: EMAIL },
|
Server { protocol: SMTP, socket: SSL, hostname: "smtp.tiscali.it", port: 465, username_pattern: EMAIL },
|
||||||
],
|
],
|
||||||
|
config_defaults: None,
|
||||||
};
|
};
|
||||||
|
|
||||||
// ukr.net.md: ukr.net
|
// ukr.net.md: ukr.net
|
||||||
@@ -253,6 +270,7 @@ lazy_static::lazy_static! {
|
|||||||
Server { protocol: IMAP, socket: STARTTLS, hostname: "imap.web.de", port: 143, username_pattern: EMAILLOCALPART },
|
Server { protocol: IMAP, socket: STARTTLS, hostname: "imap.web.de", port: 143, username_pattern: EMAILLOCALPART },
|
||||||
Server { protocol: SMTP, socket: STARTTLS, hostname: "smtp.web.de", port: 587, username_pattern: EMAILLOCALPART },
|
Server { protocol: SMTP, socket: STARTTLS, hostname: "smtp.web.de", port: 587, username_pattern: EMAILLOCALPART },
|
||||||
],
|
],
|
||||||
|
config_defaults: None,
|
||||||
};
|
};
|
||||||
|
|
||||||
// yahoo.md: yahoo.com, yahoo.de, yahoo.it, yahoo.fr, yahoo.es, yahoo.se, yahoo.co.uk, yahoo.co.nz, yahoo.com.au, yahoo.com.ar, yahoo.com.br, yahoo.com.mx, ymail.com, rocketmail.com, yahoodns.net
|
// yahoo.md: yahoo.com, yahoo.de, yahoo.it, yahoo.fr, yahoo.es, yahoo.se, yahoo.co.uk, yahoo.co.nz, yahoo.com.au, yahoo.com.ar, yahoo.com.br, yahoo.com.mx, ymail.com, rocketmail.com, yahoodns.net
|
||||||
@@ -265,6 +283,7 @@ lazy_static::lazy_static! {
|
|||||||
Server { protocol: IMAP, socket: SSL, hostname: "imap.mail.yahoo.com", port: 993, username_pattern: EMAIL },
|
Server { protocol: IMAP, socket: SSL, hostname: "imap.mail.yahoo.com", port: 993, username_pattern: EMAIL },
|
||||||
Server { protocol: SMTP, socket: SSL, hostname: "smtp.mail.yahoo.com", port: 465, username_pattern: EMAIL },
|
Server { protocol: SMTP, socket: SSL, hostname: "smtp.mail.yahoo.com", port: 465, username_pattern: EMAIL },
|
||||||
],
|
],
|
||||||
|
config_defaults: None,
|
||||||
};
|
};
|
||||||
|
|
||||||
// yandex.ru.md: yandex.ru, yandex.com
|
// yandex.ru.md: yandex.ru, yandex.com
|
||||||
@@ -275,6 +294,7 @@ lazy_static::lazy_static! {
|
|||||||
overview_page: "https://providers.delta.chat/yandex-ru",
|
overview_page: "https://providers.delta.chat/yandex-ru",
|
||||||
server: vec![
|
server: vec![
|
||||||
],
|
],
|
||||||
|
config_defaults: None,
|
||||||
};
|
};
|
||||||
|
|
||||||
// ziggo.nl.md: ziggo.nl
|
// ziggo.nl.md: ziggo.nl
|
||||||
@@ -287,6 +307,7 @@ lazy_static::lazy_static! {
|
|||||||
Server { protocol: IMAP, socket: SSL, hostname: "imap.ziggo.nl", port: 993, username_pattern: EMAIL },
|
Server { protocol: IMAP, socket: SSL, hostname: "imap.ziggo.nl", port: 993, username_pattern: EMAIL },
|
||||||
Server { protocol: SMTP, socket: STARTTLS, hostname: "smtp.ziggo.nl", port: 587, username_pattern: EMAIL },
|
Server { protocol: SMTP, socket: STARTTLS, hostname: "smtp.ziggo.nl", port: 587, username_pattern: EMAIL },
|
||||||
],
|
],
|
||||||
|
config_defaults: None,
|
||||||
};
|
};
|
||||||
|
|
||||||
pub static ref PROVIDER_DATA: HashMap<&'static str, &'static Provider> = [
|
pub static ref PROVIDER_DATA: HashMap<&'static str, &'static Provider> = [
|
||||||
|
|||||||
@@ -2,6 +2,7 @@
|
|||||||
|
|
||||||
mod data;
|
mod data;
|
||||||
|
|
||||||
|
use crate::config::Config;
|
||||||
use crate::dc_tools::EmailAddress;
|
use crate::dc_tools::EmailAddress;
|
||||||
use crate::provider::data::PROVIDER_DATA;
|
use crate::provider::data::PROVIDER_DATA;
|
||||||
|
|
||||||
@@ -57,6 +58,12 @@ impl Server {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#[derive(Debug)]
|
||||||
|
pub struct ConfigDefault {
|
||||||
|
pub key: Config,
|
||||||
|
pub value: &'static str,
|
||||||
|
}
|
||||||
|
|
||||||
#[derive(Debug)]
|
#[derive(Debug)]
|
||||||
pub struct Provider {
|
pub struct Provider {
|
||||||
pub status: Status,
|
pub status: Status,
|
||||||
@@ -64,6 +71,7 @@ pub struct Provider {
|
|||||||
pub after_login_hint: &'static str,
|
pub after_login_hint: &'static str,
|
||||||
pub overview_page: &'static str,
|
pub overview_page: &'static str,
|
||||||
pub server: Vec<Server>,
|
pub server: Vec<Server>,
|
||||||
|
pub config_defaults: Option<Vec<ConfigDefault>>,
|
||||||
}
|
}
|
||||||
|
|
||||||
impl Provider {
|
impl Provider {
|
||||||
|
|||||||
@@ -9,6 +9,9 @@ out_all = ""
|
|||||||
out_domains = ""
|
out_domains = ""
|
||||||
domains_dict = {}
|
domains_dict = {}
|
||||||
|
|
||||||
|
def camel(name):
|
||||||
|
words = name.split("_")
|
||||||
|
return "".join(w.capitalize() for i, w in enumerate(words))
|
||||||
|
|
||||||
def cleanstr(s):
|
def cleanstr(s):
|
||||||
s = s.strip()
|
s = s.strip()
|
||||||
@@ -31,6 +34,18 @@ def file2url(f):
|
|||||||
return "https://providers.delta.chat/" + f
|
return "https://providers.delta.chat/" + f
|
||||||
|
|
||||||
|
|
||||||
|
def process_config_defaults(data):
|
||||||
|
if not "config_defaults" in data:
|
||||||
|
return "None"
|
||||||
|
defaults = "Some(vec![\n"
|
||||||
|
config_defaults = data.get("config_defaults", "")
|
||||||
|
for key in config_defaults:
|
||||||
|
value = str(config_defaults[key])
|
||||||
|
defaults += " ConfigDefault { key: Config::" + camel(key) + ", value: \"" + value + "\" },\n"
|
||||||
|
defaults += " ])"
|
||||||
|
return defaults
|
||||||
|
|
||||||
|
|
||||||
def process_data(data, file):
|
def process_data(data, file):
|
||||||
status = data.get("status", "")
|
status = data.get("status", "")
|
||||||
if status != "OK" and status != "PREPARATION" and status != "BROKEN":
|
if status != "OK" and status != "PREPARATION" and status != "BROKEN":
|
||||||
@@ -83,6 +98,8 @@ def process_data(data, file):
|
|||||||
server += (" Server { protocol: " + protocol + ", socket: " + socket + ", hostname: \""
|
server += (" Server { protocol: " + protocol + ", socket: " + socket + ", hostname: \""
|
||||||
+ hostname + "\", port: " + str(port) + ", username_pattern: " + username_pattern + " },\n")
|
+ hostname + "\", port: " + str(port) + ", username_pattern: " + username_pattern + " },\n")
|
||||||
|
|
||||||
|
config_defaults = process_config_defaults(data)
|
||||||
|
|
||||||
provider = ""
|
provider = ""
|
||||||
before_login_hint = cleanstr(data.get("before_login_hint", ""))
|
before_login_hint = cleanstr(data.get("before_login_hint", ""))
|
||||||
after_login_hint = cleanstr(data.get("after_login_hint", ""))
|
after_login_hint = cleanstr(data.get("after_login_hint", ""))
|
||||||
@@ -93,6 +110,7 @@ def process_data(data, file):
|
|||||||
provider += " after_login_hint: \"" + after_login_hint + "\",\n"
|
provider += " after_login_hint: \"" + after_login_hint + "\",\n"
|
||||||
provider += " overview_page: \"" + file2url(file) + "\",\n"
|
provider += " overview_page: \"" + file2url(file) + "\",\n"
|
||||||
provider += " server: vec![\n" + server + " ],\n"
|
provider += " server: vec![\n" + server + " ],\n"
|
||||||
|
provider += " config_defaults: " + config_defaults + ",\n"
|
||||||
provider += " };\n\n"
|
provider += " };\n\n"
|
||||||
else:
|
else:
|
||||||
raise TypeError("SMTP and IMAP must be specified together or left out both")
|
raise TypeError("SMTP and IMAP must be specified together or left out both")
|
||||||
@@ -103,7 +121,7 @@ def process_data(data, file):
|
|||||||
# finally, add the provider
|
# finally, add the provider
|
||||||
global out_all, out_domains
|
global out_all, out_domains
|
||||||
out_all += " // " + file[file.rindex("/")+1:] + ": " + comment.strip(", ") + "\n"
|
out_all += " // " + file[file.rindex("/")+1:] + ": " + comment.strip(", ") + "\n"
|
||||||
if status == "OK" and before_login_hint == "" and after_login_hint == "" and server == "":
|
if status == "OK" and before_login_hint == "" and after_login_hint == "" and server == "" and config_defaults == "None":
|
||||||
out_all += " // - skipping provider with status OK and no special things to do\n\n"
|
out_all += " // - skipping provider with status OK and no special things to do\n\n"
|
||||||
else:
|
else:
|
||||||
out_all += provider
|
out_all += provider
|
||||||
|
|||||||
Reference in New Issue
Block a user