From 06b50d65abc6faa797c67f3a19d56f16a03fabc0 Mon Sep 17 00:00:00 2001 From: Igor Katson Date: Wed, 20 Nov 2024 15:30:56 +0000 Subject: [PATCH] Desktop config: ratelimits --- crates/librqbit/src/limits.rs | 2 +- desktop/src-tauri/src/config.rs | 6 +++++- desktop/src-tauri/src/main.rs | 1 + 3 files changed, 7 insertions(+), 2 deletions(-) diff --git a/crates/librqbit/src/limits.rs b/crates/librqbit/src/limits.rs index 3259894..8baccbf 100644 --- a/crates/librqbit/src/limits.rs +++ b/crates/librqbit/src/limits.rs @@ -7,7 +7,7 @@ use std::num::NonZero; use std::num::NonZeroU32; use std::sync::Arc; -#[derive(Default, Serialize, Deserialize, Clone, Copy)] +#[derive(Default, Serialize, Deserialize, Clone, Copy, Debug, PartialEq, Eq)] pub struct LimitsConfig { pub upload_bps: Option>, pub download_bps: Option>, diff --git a/desktop/src-tauri/src/config.rs b/desktop/src-tauri/src/config.rs index 33abcb1..12a3ae2 100644 --- a/desktop/src-tauri/src/config.rs +++ b/desktop/src-tauri/src/config.rs @@ -4,7 +4,7 @@ use std::{ time::Duration, }; -use librqbit::dht::PersistentDht; +use librqbit::{dht::PersistentDht, limits::LimitsConfig}; use serde::{Deserialize, Serialize}; use serde_with::serde_as; @@ -154,6 +154,9 @@ pub struct RqbitDesktopConfig { pub persistence: RqbitDesktopConfigPersistence, pub peer_opts: RqbitDesktopConfigPeerOpts, pub http_api: RqbitDesktopConfigHttpApi, + + #[serde(default)] + pub ratelimits: LimitsConfig, } impl Default for RqbitDesktopConfig { @@ -172,6 +175,7 @@ impl Default for RqbitDesktopConfig { persistence: Default::default(), peer_opts: Default::default(), http_api: Default::default(), + ratelimits: Default::default(), #[cfg(feature = "disable-upload")] disable_upload: false, } diff --git a/desktop/src-tauri/src/main.rs b/desktop/src-tauri/src/main.rs index 6177fe6..6bcece5 100644 --- a/desktop/src-tauri/src/main.rs +++ b/desktop/src-tauri/src/main.rs @@ -105,6 +105,7 @@ async fn api_from_config( }, enable_upnp_port_forwarding: !config.upnp.disable_tcp_port_forward, fastresume: config.persistence.fastresume, + ratelimits: config.ratelimits, #[cfg(feature = "disable-upload")] disable_upload: config.disable_upload, ..Default::default()