diff --git a/Cargo.lock b/Cargo.lock index d02f3ae2..4b73d412 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1962,6 +1962,57 @@ version = "0.4.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7f24254aa9a54b5c858eaee2f5bccdb46aaf0e486a595ed5fd8f86ba55232a70" +[[package]] +name = "hickory-proto" +version = "0.24.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "091a6fbccf4860009355e3efc52ff4acf37a63489aad7435372d44ceeb6fbbcf" +dependencies = [ + "async-trait", + "cfg-if", + "data-encoding", + "enum-as-inner", + "futures-channel", + "futures-io", + "futures-util", + "idna 0.4.0", + "ipnet", + "once_cell", + "rand 0.8.5", + "ring 0.16.20", + "rustls 0.21.7", + "rustls-pemfile", + "thiserror", + "tinyvec", + "tokio", + "tokio-rustls", + "tracing", + "url", +] + +[[package]] +name = "hickory-resolver" +version = "0.24.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "35b8f021164e6a984c9030023544c57789c51760065cd510572fedcfb04164e8" +dependencies = [ + "cfg-if", + "futures-util", + "hickory-proto", + "ipconfig", + "lru-cache", + "once_cell", + "parking_lot", + "rand 0.8.5", + "resolv-conf", + "rustls 0.21.7", + "smallvec", + "thiserror", + "tokio", + "tokio-rustls", + "tracing", +] + [[package]] name = "hkdf" version = "0.12.3" @@ -2090,7 +2141,7 @@ dependencies = [ "httpdate", "itoa", "pin-project-lite", - "socket2 0.4.9", + "socket2 0.4.10", "tokio", "tower-service", "tracing", @@ -2157,7 +2208,7 @@ dependencies = [ "hyper 1.0.0-rc.4", "once_cell", "pin-project-lite", - "socket2 0.5.4", + "socket2 0.5.5", "tokio", "tower", "tower-service", @@ -2324,7 +2375,7 @@ version = "0.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b58db92f96b720de98181bbbe63c831e87005ab460c1bf306eb2622b4707997f" dependencies = [ - "socket2 0.5.4", + "socket2 0.5.5", "widestring", "windows-sys 0.48.0", "winreg", @@ -2720,11 +2771,12 @@ dependencies = [ [[package]] name = "mail-auth" -version = "0.3.5" -source = "git+https://github.com/stalwartlabs/mail-auth#191189df4506ed81937783fb01ded8b8bb50f7cf" +version = "0.3.6" +source = "git+https://github.com/stalwartlabs/mail-auth#8a1b216adc60b95192645033aed6d20fa89821cd" dependencies = [ "ahash 0.8.3", "flate2", + "hickory-resolver", "lru-cache", "mail-builder", "mail-parser", @@ -2734,7 +2786,6 @@ dependencies = [ "rustls-pemfile", "serde", "serde_json", - "trust-dns-resolver", "zip", ] @@ -4764,9 +4815,9 @@ dependencies = [ [[package]] name = "socket2" -version = "0.4.9" +version = "0.4.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "64a4a911eed85daf18834cfaa86a79b7d266ff93ff5ba14005426219480ed662" +checksum = "9f7916fc008ca5542385b89a3d3ce689953c143e9304a9bf8beec1de48994c0d" dependencies = [ "libc", "winapi", @@ -4774,9 +4825,9 @@ dependencies = [ [[package]] name = "socket2" -version = "0.5.4" +version = "0.5.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4031e820eb552adee9295814c0ced9e5cf38ddf1e8b7d566d6de8e2538ea989e" +checksum = "7b5fac59a5cb5dd637972e5fca70daf0523c9067fcdc4842f053dae04a18f8e9" dependencies = [ "libc", "windows-sys 0.48.0", @@ -5395,7 +5446,7 @@ dependencies = [ "parking_lot", "pin-project-lite", "signal-hook-registry", - "socket2 0.5.4", + "socket2 0.5.5", "tokio-macros", "windows-sys 0.48.0", ] @@ -5643,60 +5694,6 @@ dependencies = [ "tracing-log", ] -[[package]] -name = "trust-dns-proto" -version = "0.23.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "559ac980345f7f5020883dd3bcacf176355225e01916f8c2efecad7534f682c6" -dependencies = [ - "async-trait", - "cfg-if", - "data-encoding", - "enum-as-inner", - "futures-channel", - "futures-io", - "futures-util", - "idna 0.4.0", - "ipnet", - "once_cell", - "rand 0.8.5", - "ring 0.16.20", - "rustls 0.21.7", - "rustls-pemfile", - "rustls-webpki 0.101.6", - "smallvec", - "thiserror", - "tinyvec", - "tokio", - "tokio-rustls", - "tracing", - "url", -] - -[[package]] -name = "trust-dns-resolver" -version = "0.23.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c723b0e608b24ad04c73b2607e0241b2c98fd79795a95e98b068b6966138a29d" -dependencies = [ - "cfg-if", - "futures-util", - "ipconfig", - "lru-cache", - "once_cell", - "parking_lot", - "rand 0.8.5", - "resolv-conf", - "rustls 0.21.7", - "smallvec", - "thiserror", - "tokio", - "tokio-rustls", - "tracing", - "trust-dns-proto", - "webpki-roots 0.25.2", -] - [[package]] name = "try-lock" version = "0.2.4" diff --git a/crates/smtp/src/config/resolver.rs b/crates/smtp/src/config/resolver.rs index 2350de82..37105f08 100644 --- a/crates/smtp/src/config/resolver.rs +++ b/crates/smtp/src/config/resolver.rs @@ -26,7 +26,7 @@ use std::io::Read; use mail_auth::{ common::lru::{DnsCache, LruCache}, flate2::read::GzDecoder, - trust_dns_resolver::{ + hickory_resolver::{ config::{ResolverConfig, ResolverOpts}, system_conf::read_system_conf, }, @@ -71,7 +71,7 @@ impl ConfigResolver for Config { // Prepare DNSSEC resolver options let config_dnssec = config.clone(); - let mut opts_dnssec = opts; + let mut opts_dnssec = opts.clone(); opts_dnssec.validate = true; let mut capacities = [1024usize; 5]; diff --git a/crates/smtp/src/outbound/dane/dnssec.rs b/crates/smtp/src/outbound/dane/dnssec.rs index 2cb1cd09..9d7579d8 100644 --- a/crates/smtp/src/outbound/dane/dnssec.rs +++ b/crates/smtp/src/outbound/dane/dnssec.rs @@ -23,7 +23,7 @@ use mail_auth::{ common::{lru::DnsCache, resolver::IntoFqdn}, - trust_dns_resolver::{ + hickory_resolver::{ config::{ResolverConfig, ResolverOpts}, error::{ResolveError, ResolveErrorKind}, proto::{ diff --git a/crates/smtp/src/outbound/dane/mod.rs b/crates/smtp/src/outbound/dane/mod.rs index f0cf2d3d..55419213 100644 --- a/crates/smtp/src/outbound/dane/mod.rs +++ b/crates/smtp/src/outbound/dane/mod.rs @@ -21,7 +21,7 @@ * for more details. */ -use mail_auth::trust_dns_resolver::TokioAsyncResolver; +use mail_auth::hickory_resolver::TokioAsyncResolver; pub mod dnssec; pub mod verify; diff --git a/resources/config/smtp/spamfilter.toml b/resources/config/smtp/spamfilter.toml index fcb89b66..b0d5e16e 100644 --- a/resources/config/smtp/spamfilter.toml +++ b/resources/config/smtp/spamfilter.toml @@ -4,7 +4,7 @@ [directory."spamdb"] type = "sql" -address = "sqlite://%{BASE_PATH}%/data/spamfilter.sqlite3" +address = "sqlite://%{BASE_PATH}%/data/spamfilter.sqlite3?mode=rwc" [directory."spamdb".pool] max-connections = 10 diff --git a/tests/src/smtp/mod.rs b/tests/src/smtp/mod.rs index f2f37a63..20ebe519 100644 --- a/tests/src/smtp/mod.rs +++ b/tests/src/smtp/mod.rs @@ -28,7 +28,7 @@ use dashmap::DashMap; use directory::memory::MemoryDirectory; use mail_auth::{ common::lru::{DnsCache, LruCache}, - trust_dns_resolver::config::{ResolverConfig, ResolverOpts}, + hickory_resolver::config::{ResolverConfig, ResolverOpts}, IpLookupStrategy, Resolver, }; use mail_send::smtp::tls::build_tls_connector; diff --git a/tests/src/smtp/outbound/dane.rs b/tests/src/smtp/outbound/dane.rs index f084ddcb..a210765d 100644 --- a/tests/src/smtp/outbound/dane.rs +++ b/tests/src/smtp/outbound/dane.rs @@ -36,12 +36,12 @@ use mail_auth::{ lru::{DnsCache, LruCache}, parse::TxtRecordParser, }, - mta_sts::{ReportUri, TlsRpt}, - report::tlsrpt::ResultType, - trust_dns_resolver::{ + hickory_resolver::{ config::{ResolverConfig, ResolverOpts}, AsyncResolver, }, + mta_sts::{ReportUri, TlsRpt}, + report::tlsrpt::ResultType, Resolver, MX, }; use rustls::Certificate; diff --git a/tests/src/smtp/queue/manager.rs b/tests/src/smtp/queue/manager.rs index 72037531..527219e1 100644 --- a/tests/src/smtp/queue/manager.rs +++ b/tests/src/smtp/queue/manager.rs @@ -23,7 +23,7 @@ use std::time::{Duration, Instant}; -use mail_auth::trust_dns_resolver::proto::op::ResponseCode; +use mail_auth::hickory_resolver::proto::op::ResponseCode; use smtp::queue::{manager::Queue, Domain, Message, Schedule, Status};