From b40e2d214cbc11612e74f1e0cafd6176decdabc7 Mon Sep 17 00:00:00 2001 From: Matthias Ahouansou Date: Mon, 2 Feb 2026 22:33:41 +0000 Subject: [PATCH] rate-limiting: use default values --- conduit-config/src/lib.rs | 1 + conduit-config/src/rate_limiting.rs | 48 ++++++++++++++++++++++++----- 2 files changed, 41 insertions(+), 8 deletions(-) diff --git a/conduit-config/src/lib.rs b/conduit-config/src/lib.rs index e5ddf556..3ca57947 100644 --- a/conduit-config/src/lib.rs +++ b/conduit-config/src/lib.rs @@ -100,6 +100,7 @@ pub struct IncompleteConfig { #[serde(default)] pub media: IncompleteMediaConfig, + #[serde(default)] pub rate_limiting: RateLimitingConfig, pub emergency_password: Option, diff --git a/conduit-config/src/rate_limiting.rs b/conduit-config/src/rate_limiting.rs index 47be050c..f650ea26 100644 --- a/conduit-config/src/rate_limiting.rs +++ b/conduit-config/src/rate_limiting.rs @@ -100,6 +100,12 @@ pub struct Config { pub global: ConfigFragment, } +impl Default for Config { + fn default() -> Self { + Self::get_preset(ConfigPreset::default()) + } +} + #[derive(Debug, Clone, Deserialize)] pub struct ConfigFragment where @@ -451,6 +457,36 @@ macro_rules! default_restriction_map { } } +impl ClientMediaConfig { + fn todo() -> Self { + Self { + download: MediaLimitation::new( + MediaTimeframe::PerHour(ByteSize::mb(200)), + ByteSize::mb(500), + ), + upload: MediaLimitation::new( + MediaTimeframe::PerHour(ByteSize::mb(20)), + ByteSize::mb(100), + ), + fetch: MediaLimitation::new( + MediaTimeframe::PerHour(ByteSize::mb(200)), + ByteSize::mb(500), + ), + } + } +} + +impl FederationMediaConfig { + fn todo() -> Self { + Self { + download: MediaLimitation::new( + MediaTimeframe::PerHour(ByteSize::mb(200)), + ByteSize::mb(500), + ), + } + } +} + impl Config { fn apply_overrides(self, shadow: ShadowConfig) -> Self { let ShadowConfig { @@ -490,11 +526,7 @@ impl Config { // Login, PerHour, 10, 10; // RegistrationTokenValidity, PerDay, 10, 20 ), - media: ClientMediaConfig { - download: todo!(), - upload: todo!(), - fetch: todo!(), - }, + media: ClientMediaConfig::todo(), additional_fields: AuthenticationFailures::new( Timeframe::PerDay(nz(10)), nz(40), @@ -507,7 +539,7 @@ impl Config { Knock, PerDay, 10, 20; Invite, PerDay, 10, 20 ), - media: todo!(), + media: FederationMediaConfig::todo(), additional_fields: Nothing, }, }, @@ -519,7 +551,7 @@ impl Config { Login, PerHour, 10, 10; RegistrationTokenValidity, PerDay, 10, 20 ), - media: todo!(), + media: ClientMediaConfig::todo(), additional_fields: Nothing, }, federation: ConfigFragmentFragment { @@ -529,7 +561,7 @@ impl Config { // Knock, PerDay, 10, 20; // Invite, PerDay, 10, 20 ), - media: todo!(), + media: FederationMediaConfig::todo(), additional_fields: Nothing, }, },