diff --git a/filtermail/src/inbound.rs b/filtermail/src/inbound.rs index def5d2cb..fb554dde 100644 --- a/filtermail/src/inbound.rs +++ b/filtermail/src/inbound.rs @@ -7,21 +7,18 @@ use crate::smtp_server::SmtpHandler; use async_trait::async_trait; use lettre::{AsyncSmtpTransport, AsyncTransport, Tokio1Executor}; use mailparse::{MailHeaderMap, parse_mail}; -use std::sync::Arc; pub use crate::smtp_server::Envelope; use crate::utils::{extract_address, format_smtp_error}; /// Handler for incoming SMTP messages. pub struct IncomingBeforeQueueHandler { - config: Arc, + config: Config, } impl IncomingBeforeQueueHandler { pub fn new(config: Config) -> Self { - Self { - config: Arc::new(config), - } + Self { config } } } diff --git a/filtermail/src/outbound.rs b/filtermail/src/outbound.rs index 37858c34..da7381be 100644 --- a/filtermail/src/outbound.rs +++ b/filtermail/src/outbound.rs @@ -10,11 +10,10 @@ use async_trait::async_trait; use governor::{DefaultKeyedRateLimiter, Quota, RateLimiter}; use lettre::{AsyncSmtpTransport, AsyncTransport, Tokio1Executor}; use mailparse::{MailHeaderMap, parse_mail}; -use std::sync::Arc; /// Handler for outgoing SMTP messages. pub struct OutgoingBeforeQueueHandler { - config: Arc, + config: Config, send_rate_limiter: DefaultKeyedRateLimiter, } @@ -23,7 +22,7 @@ impl OutgoingBeforeQueueHandler { let quota = Quota::per_minute(config.max_user_send_per_minute) .allow_burst(config.max_user_send_burst_size); Self { - config: Arc::new(config), + config, send_rate_limiter: RateLimiter::keyed(quota), } }