Settings hot reloading - Part 1

This commit is contained in:
mdecimus
2024-03-21 20:07:21 +01:00
parent 7e1a95c1ee
commit 333a0d5a1b
115 changed files with 8814 additions and 1651 deletions

View File

@@ -489,7 +489,7 @@ async fn eval_if() {
..Default::default()
},
];
let mut context = ConfigContext::new(&servers);
let mut context = ConfigContext::new();
context.stores = config.parse_stores().await.unwrap();
let envelope = TestEnvelope::from_config(&config);
@@ -548,7 +548,7 @@ async fn eval_dynvalue() {
file.push("rules-dynvalue.toml");
let config = Config::new(&fs::read_to_string(file).unwrap()).unwrap();
let mut context = ConfigContext::new(&[]);
let mut context = ConfigContext::new();
context.stores = config.parse_stores().await.unwrap();
let envelope = TestEnvelope::from_config(&config);

View File

@@ -226,7 +226,7 @@ async fn antispam() {
// Parse config
let config = Config::new(&config).unwrap();
let mut ctx = ConfigContext::new(&[]);
let mut ctx = ConfigContext::new();
ctx.stores = config.parse_stores().await.unwrap();
core.sieve = config.parse_sieve(&mut ctx).unwrap();
core.shared.lookup_stores = ctx.stores.lookup_stores.clone();

View File

@@ -65,7 +65,7 @@ email = ["jdoe@example.com"]
#[tokio::test]
async fn dmarc() {
let mut core = SMTP::test();
core.shared.signers = ConfigContext::new(&[]).parse_signatures().signers;
core.shared.signers = ConfigContext::new().parse_signatures().signers;
// Create temp dir for queue
let mut qr = core.init_test_queue("smtp_dmarc_test");

View File

@@ -100,7 +100,7 @@ async fn address_rewrite() {
// Prepare config
let available_keys = &[V_SENDER, V_SENDER_DOMAIN, V_RECIPIENT, V_RECIPIENT_DOMAIN];
let mut core = SMTP::test();
let mut ctx = ConfigContext::new(&[]).parse_signatures();
let mut ctx = ConfigContext::new().parse_signatures();
let settings = Config::new(CONFIG).unwrap();
ctx.directory = settings
.parse_directory(&dummy_stores(), Store::default())

View File

@@ -119,7 +119,7 @@ async fn sieve_scripts() {
// Prepare config
let mut core = SMTP::test();
let mut qr = core.init_test_queue("smtp_sieve_test");
let mut ctx = ConfigContext::new(&[]).parse_signatures();
let mut ctx = ConfigContext::new().parse_signatures();
let config = Config::new(
&config
.replace("%PATH%", qr._temp_dir.temp_dir.as_path().to_str().unwrap())

View File

@@ -171,7 +171,7 @@ async fn sign_and_seal() {
config.data.add_received_spf = IfBlock::new(true);
let config = &mut core.mail_auth;
let ctx = ConfigContext::new(&[]).parse_signatures();
let ctx = ConfigContext::new().parse_signatures();
core.shared.signers = ctx.signers;
core.shared.sealers = ctx.sealers;
config.spf.verify_ehlo = IfBlock::new(VerifyStrategy::Relaxed);
@@ -218,10 +218,10 @@ async fn sign_and_seal() {
}
pub trait TextConfigContext<'x> {
fn parse_signatures(self) -> ConfigContext<'x>;
fn parse_signatures(self) -> ConfigContext;
}
impl<'x> TextConfigContext<'x> for ConfigContext<'x> {
impl<'x> TextConfigContext<'x> for ConfigContext {
fn parse_signatures(mut self) -> Self {
Config::new(SIGNATURES)
.unwrap()

View File

@@ -93,7 +93,7 @@ async fn lookup_sql() {
let temp_dir = TempDir::new("smtp_lookup_tests", true);
let config_file = CONFIG.replace("{TMP}", &temp_dir.path.to_string_lossy());
let mut core = SMTP::test();
let mut ctx = ConfigContext::new(&[]);
let mut ctx = ConfigContext::new();
let config = Config::new(&config_file).unwrap();
ctx.stores = config.parse_stores().await.unwrap();
core.shared.lookup_stores = ctx.stores.lookup_stores.clone();

View File

@@ -95,7 +95,7 @@ async fn generate_dsn() {
// Load config
let mut core = SMTP::test();
core.shared.signers = ConfigContext::new(&[]).parse_signatures().signers;
core.shared.signers = ConfigContext::new().parse_signatures().signers;
let config = &mut core.queue.config.dsn;
config.sign = "\"['rsa']\"".parse_if();

View File

@@ -57,7 +57,7 @@ async fn report_dmarc() {
// Create scheduler
let mut core = SMTP::test();
core.shared.signers = ConfigContext::new(&[]).parse_signatures().signers;
core.shared.signers = ConfigContext::new().parse_signatures().signers;
let config = &mut core.report.config;
config.dmarc_aggregate.sign = "\"['rsa']\"".parse_if();
config.dmarc_aggregate.max_size = IfBlock::new(4096);

View File

@@ -55,7 +55,7 @@ async fn report_tls() {
// Create scheduler
let mut core = SMTP::test();
core.shared.signers = ConfigContext::new(&[]).parse_signatures().signers;
core.shared.signers = ConfigContext::new().parse_signatures().signers;
let config = &mut core.report.config;
config.tls.sign = "\"['rsa']\"".parse_if();
config.tls.max_size = IfBlock::new(1532);