diff --git a/src/cli/serve.rs b/src/cli/serve.rs index 0991066b..8a2b57b9 100644 --- a/src/cli/serve.rs +++ b/src/cli/serve.rs @@ -80,7 +80,7 @@ pub(crate) async fn run(args: ServeArgs) -> Result<(), error::ServeCommand> { .map_err(Error::DatabaseError)?, )); - Services::build(db, config, reload_handles) + Services::build(db, config, Some(reload_handles)) .map_err(Error::InitializeServices)? .install(); diff --git a/src/service.rs b/src/service.rs index 5ba3aa3d..4bea1998 100644 --- a/src/service.rs +++ b/src/service.rs @@ -62,7 +62,7 @@ impl Services { >( db: &'static D, config: Config, - reload_handles: FilterReloadHandles, + reload_handles: Option, ) -> Result { Ok(Self { appservice: appservice::Service::build(db)?, diff --git a/src/service/admin.rs b/src/service/admin.rs index 8fd0abdf..e8b9beae 100644 --- a/src/service/admin.rs +++ b/src/service/admin.rs @@ -1134,7 +1134,11 @@ impl Service { backend, filter, } => { - let handles = &services().globals.reload_handles; + let Some(handles) = &services().globals.reload_handles else { + return Ok(RoomMessageEventContent::text_plain( + "Reloading filters is disabled", + )); + }; let handle = match backend { TracingBackend::Log => &handles.log, TracingBackend::Flame => &handles.flame, diff --git a/src/service/globals.rs b/src/service/globals.rs index 1026135c..f3ac9a8e 100644 --- a/src/service/globals.rs +++ b/src/service/globals.rs @@ -66,7 +66,7 @@ pub(crate) mod marker { pub(crate) struct Service { pub(crate) db: &'static dyn Data, - pub(crate) reload_handles: FilterReloadHandles, + pub(crate) reload_handles: Option, // actual_destination, host pub(crate) actual_destination_cache: Arc>, @@ -200,7 +200,7 @@ impl Service { pub(crate) fn load( db: &'static dyn Data, config: Config, - reload_handles: FilterReloadHandles, + reload_handles: Option, ) -> Result { let keypair = db.load_keypair();