Distributed SMTP queues and Rate limiting passing tests

This commit is contained in:
mdecimus
2024-02-13 14:35:28 +01:00
parent 66669545ff
commit 44db67cc2a
105 changed files with 2124 additions and 1678 deletions

View File

@@ -7,7 +7,7 @@ homepage = "https://stalw.art"
keywords = ["imap", "jmap", "smtp", "email", "mail", "server"]
categories = ["email"]
license = "AGPL-3.0-only"
version = "0.5.3"
version = "0.6.0"
edition = "2021"
resolver = "2"
@@ -32,7 +32,7 @@ jemallocator = "0.5.0"
[features]
#default = ["sqlite", "foundationdb", "postgres", "mysql", "rocks", "elastic", "s3", "redis"]
default = ["sqlite", "postgres", "mysql", "redis"]
default = ["sqlite", "postgres", "mysql", "rocks", "elastic", "s3", "redis"]
sqlite = ["store/sqlite"]
foundationdb = ["store/foundation"]
postgres = ["store/postgres"]

View File

@@ -68,14 +68,10 @@ async fn main() -> std::io::Result<()> {
// Update configuration
config.update(data_store.config_list("").await.failed("Storage error"));
servers
.blocked_ips
.reload(&config)
.failed("Invalid configuration");
// Parse directories
let directory = config
.parse_directory(&stores, &servers, data_store)
.parse_directory(&stores, data_store)
.await
.failed("Invalid configuration");
let schedulers = config
@@ -105,6 +101,10 @@ async fn main() -> std::io::Result<()> {
let imap = IMAP::init(&config)
.await
.failed("Invalid configuration file");
jmap.directory
.blocked_ips
.reload(&config)
.failed("Invalid configuration");
// Spawn servers
let (shutdown_tx, shutdown_rx) = servers.spawn(|server, shutdown_rx| {