Desktop config: ratelimits

This commit is contained in:
Igor Katson 2024-11-20 15:30:56 +00:00
parent 2a7c632b2b
commit 06b50d65ab
No known key found for this signature in database
GPG key ID: B4EC22B66D61A3F5
3 changed files with 7 additions and 2 deletions

View file

@ -7,7 +7,7 @@ use std::num::NonZero;
use std::num::NonZeroU32; use std::num::NonZeroU32;
use std::sync::Arc; use std::sync::Arc;
#[derive(Default, Serialize, Deserialize, Clone, Copy)] #[derive(Default, Serialize, Deserialize, Clone, Copy, Debug, PartialEq, Eq)]
pub struct LimitsConfig { pub struct LimitsConfig {
pub upload_bps: Option<NonZero<u32>>, pub upload_bps: Option<NonZero<u32>>,
pub download_bps: Option<NonZero<u32>>, pub download_bps: Option<NonZero<u32>>,

View file

@ -4,7 +4,7 @@ use std::{
time::Duration, time::Duration,
}; };
use librqbit::dht::PersistentDht; use librqbit::{dht::PersistentDht, limits::LimitsConfig};
use serde::{Deserialize, Serialize}; use serde::{Deserialize, Serialize};
use serde_with::serde_as; use serde_with::serde_as;
@ -154,6 +154,9 @@ pub struct RqbitDesktopConfig {
pub persistence: RqbitDesktopConfigPersistence, pub persistence: RqbitDesktopConfigPersistence,
pub peer_opts: RqbitDesktopConfigPeerOpts, pub peer_opts: RqbitDesktopConfigPeerOpts,
pub http_api: RqbitDesktopConfigHttpApi, pub http_api: RqbitDesktopConfigHttpApi,
#[serde(default)]
pub ratelimits: LimitsConfig,
} }
impl Default for RqbitDesktopConfig { impl Default for RqbitDesktopConfig {
@ -172,6 +175,7 @@ impl Default for RqbitDesktopConfig {
persistence: Default::default(), persistence: Default::default(),
peer_opts: Default::default(), peer_opts: Default::default(),
http_api: Default::default(), http_api: Default::default(),
ratelimits: Default::default(),
#[cfg(feature = "disable-upload")] #[cfg(feature = "disable-upload")]
disable_upload: false, disable_upload: false,
} }

View file

@ -105,6 +105,7 @@ async fn api_from_config(
}, },
enable_upnp_port_forwarding: !config.upnp.disable_tcp_port_forward, enable_upnp_port_forwarding: !config.upnp.disable_tcp_port_forward,
fastresume: config.persistence.fastresume, fastresume: config.persistence.fastresume,
ratelimits: config.ratelimits,
#[cfg(feature = "disable-upload")] #[cfg(feature = "disable-upload")]
disable_upload: config.disable_upload, disable_upload: config.disable_upload,
..Default::default() ..Default::default()