diff --git a/src/api/client/media.rs b/src/api/client/media.rs index cfb10c3dd611f1c69393749b2768a15707f09b07..44978caf2a934de12cc533093d66ad961cd1a8af 100644 --- a/src/api/client/media.rs +++ b/src/api/client/media.rs @@ -2,6 +2,7 @@ use std::{io::Cursor, sync::Arc, time::Duration}; +use conduit::{debug, error, utils::math::ruma_from_usize, warn}; use image::io::Reader as ImgReader; use ipaddress::IPAddress; use reqwest::Url; @@ -12,7 +13,6 @@ get_media_preview, }, }; -use tracing::{debug, error, warn}; use webpage::HTML; use crate::{ @@ -44,7 +44,7 @@ pub(crate) async fn get_media_config_route( _body: Ruma<get_media_config::v3::Request>, ) -> Result<get_media_config::v3::Response> { Ok(get_media_config::v3::Response { - upload_size: services().globals.max_request_size().into(), + upload_size: ruma_from_usize(services().globals.config.max_request_size), }) } diff --git a/src/api/router/request.rs b/src/api/router/request.rs index 59639eaa87b803b4ecafa0dcb842301fe504c417..56c766192521a251560394daf4dd7d66908a2fb8 100644 --- a/src/api/router/request.rs +++ b/src/api/router/request.rs @@ -29,12 +29,7 @@ pub(super) async fn from(request: hyper::Request<axum::body::Body>) -> Result<Re let query = serde_html_form::from_str(parts.uri.query().unwrap_or_default()) .map_err(|_| Error::BadRequest(ErrorKind::Unknown, "Failed to read query parameters"))?; - let max_body_size = services() - .globals - .config - .max_request_size - .try_into() - .expect("failed to convert max request size"); + let max_body_size = services().globals.config.max_request_size; let body = axum::body::to_bytes(body, max_body_size) .await diff --git a/src/core/config/mod.rs b/src/core/config/mod.rs index b808f196484940d956111c5420d646c3f6b6f71e..f9a5ec4c70bbd30aa7b8991211daa4b7e9be91e8 100644 --- a/src/core/config/mod.rs +++ b/src/core/config/mod.rs @@ -114,7 +114,7 @@ pub struct Config { pub ip_lookup_strategy: u8, #[serde(default = "default_max_request_size")] - pub max_request_size: u32, + pub max_request_size: usize, #[serde(default = "default_max_fetch_prev_events")] pub max_fetch_prev_events: u16, @@ -930,7 +930,7 @@ fn default_dns_timeout() -> u64 { 10 } fn default_ip_lookup_strategy() -> u8 { 5 } -fn default_max_request_size() -> u32 { +fn default_max_request_size() -> usize { 20 * 1024 * 1024 // Default to 20 MB } diff --git a/src/router/layers.rs b/src/router/layers.rs index 4fe3516449b489f996938295b6497bf38a7ee582..db664b38aa4779e2109c13a8f20f4ca3cd6b14f1 100644 --- a/src/router/layers.rs +++ b/src/router/layers.rs @@ -138,15 +138,7 @@ fn cors_layer(_server: &Server) -> CorsLayer { .max_age(Duration::from_secs(86400)) } -fn body_limit_layer(server: &Server) -> DefaultBodyLimit { - DefaultBodyLimit::max( - server - .config - .max_request_size - .try_into() - .expect("failed to convert max request size"), - ) -} +fn body_limit_layer(server: &Server) -> DefaultBodyLimit { DefaultBodyLimit::max(server.config.max_request_size) } #[allow(clippy::needless_pass_by_value)] #[tracing::instrument(skip_all)] diff --git a/src/service/globals/mod.rs b/src/service/globals/mod.rs index 3c0e66c0ad1b2b07524c145f0dda2c851717f351..f28299b2994857ec4c055197ea24108c14a9a5ae 100644 --- a/src/service/globals/mod.rs +++ b/src/service/globals/mod.rs @@ -201,8 +201,6 @@ pub async fn watch(&self, user_id: &UserId, device_id: &DeviceId) -> Result<()> pub fn server_name(&self) -> &ServerName { self.config.server_name.as_ref() } - pub fn max_request_size(&self) -> u32 { self.config.max_request_size } - pub fn max_fetch_prev_events(&self) -> u16 { self.config.max_fetch_prev_events } pub fn allow_registration(&self) -> bool { self.config.allow_registration }