pass args by ref
This commit is contained in:
@@ -27,7 +27,7 @@ struct Data {
|
|||||||
}
|
}
|
||||||
|
|
||||||
impl crate::Service for Service {
|
impl crate::Service for Service {
|
||||||
fn build(args: crate::Args<'_>) -> Result<Arc<Self>> {
|
fn build(args: &crate::Args<'_>) -> Result<Arc<Self>> {
|
||||||
Ok(Arc::new(Self {
|
Ok(Arc::new(Self {
|
||||||
services: args.services.clone(),
|
services: args.services.clone(),
|
||||||
db: Data {
|
db: Data {
|
||||||
|
|||||||
@@ -63,14 +63,14 @@ const COMMAND_QUEUE_LIMIT: usize = 512;
|
|||||||
|
|
||||||
#[async_trait]
|
#[async_trait]
|
||||||
impl crate::Service for Service {
|
impl crate::Service for Service {
|
||||||
fn build(args: crate::Args<'_>) -> Result<Arc<Self>> {
|
fn build(args: &crate::Args<'_>) -> Result<Arc<Self>> {
|
||||||
Ok(Arc::new(Self {
|
Ok(Arc::new(Self {
|
||||||
services: args.services.clone(),
|
services: args.services.clone(),
|
||||||
channel: StdRwLock::new(None),
|
channel: StdRwLock::new(None),
|
||||||
handle: RwLock::new(None),
|
handle: RwLock::new(None),
|
||||||
complete: StdRwLock::new(None),
|
complete: StdRwLock::new(None),
|
||||||
#[cfg(feature = "console")]
|
#[cfg(feature = "console")]
|
||||||
console: console::Console::new(&args),
|
console: console::Console::new(args),
|
||||||
}))
|
}))
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -30,7 +30,7 @@ type Registrations = BTreeMap<String, RegistrationInfo>;
|
|||||||
|
|
||||||
#[async_trait]
|
#[async_trait]
|
||||||
impl crate::Service for Service {
|
impl crate::Service for Service {
|
||||||
fn build(args: crate::Args<'_>) -> Result<Arc<Self>> {
|
fn build(args: &crate::Args<'_>) -> Result<Arc<Self>> {
|
||||||
Ok(Arc::new(Self {
|
Ok(Arc::new(Self {
|
||||||
registration_info: RwLock::new(BTreeMap::new()),
|
registration_info: RwLock::new(BTreeMap::new()),
|
||||||
services: args.services.clone(),
|
services: args.services.clone(),
|
||||||
|
|||||||
@@ -26,7 +26,7 @@ pub struct Service {
|
|||||||
}
|
}
|
||||||
|
|
||||||
impl crate::Service for Service {
|
impl crate::Service for Service {
|
||||||
fn build(args: crate::Args<'_>) -> Result<Arc<Self>> {
|
fn build(args: &crate::Args<'_>) -> Result<Arc<Self>> {
|
||||||
let config = &args.server.config;
|
let config = &args.server.config;
|
||||||
|
|
||||||
macro_rules! create_client {
|
macro_rules! create_client {
|
||||||
|
|||||||
@@ -15,7 +15,7 @@ const SIGNAL: &str = "SIGUSR1";
|
|||||||
|
|
||||||
#[async_trait]
|
#[async_trait]
|
||||||
impl crate::Service for Service {
|
impl crate::Service for Service {
|
||||||
fn build(args: crate::Args<'_>) -> Result<Arc<Self>> {
|
fn build(args: &crate::Args<'_>) -> Result<Arc<Self>> {
|
||||||
Ok(Arc::new(Self { server: args.server.clone() }))
|
Ok(Arc::new(Self { server: args.server.clone() }))
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -12,7 +12,7 @@ pub struct Service {
|
|||||||
}
|
}
|
||||||
|
|
||||||
impl crate::Service for Service {
|
impl crate::Service for Service {
|
||||||
fn build(args: crate::Args<'_>) -> Result<Arc<Self>> {
|
fn build(args: &crate::Args<'_>) -> Result<Arc<Self>> {
|
||||||
Ok(Arc::new(Self { services: args.services.clone() }))
|
Ok(Arc::new(Self { services: args.services.clone() }))
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -15,7 +15,7 @@ pub struct Service {
|
|||||||
|
|
||||||
#[async_trait]
|
#[async_trait]
|
||||||
impl crate::Service for Service {
|
impl crate::Service for Service {
|
||||||
fn build(args: crate::Args<'_>) -> Result<Arc<Self>> {
|
fn build(args: &crate::Args<'_>) -> Result<Arc<Self>> {
|
||||||
Ok(Arc::new(Self { services: args.services.clone() }))
|
Ok(Arc::new(Self { services: args.services.clone() }))
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -12,7 +12,7 @@ pub struct Service {
|
|||||||
}
|
}
|
||||||
|
|
||||||
impl crate::Service for Service {
|
impl crate::Service for Service {
|
||||||
fn build(args: crate::Args<'_>) -> Result<Arc<Self>> {
|
fn build(args: &crate::Args<'_>) -> Result<Arc<Self>> {
|
||||||
Ok(Arc::new(Self { services: args.services.clone() }))
|
Ok(Arc::new(Self { services: args.services.clone() }))
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -33,8 +33,8 @@ type RateLimitState = (Instant, u32); // Time if last failed try, number of fail
|
|||||||
|
|
||||||
#[async_trait]
|
#[async_trait]
|
||||||
impl crate::Service for Service {
|
impl crate::Service for Service {
|
||||||
fn build(args: crate::Args<'_>) -> Result<Arc<Self>> {
|
fn build(args: &crate::Args<'_>) -> Result<Arc<Self>> {
|
||||||
let db = Data::new(&args);
|
let db = Data::new(args);
|
||||||
let config = &args.server.config;
|
let config = &args.server.config;
|
||||||
|
|
||||||
let turn_secret = config.turn_secret_file.as_ref().map_or_else(
|
let turn_secret = config.turn_secret_file.as_ref().map_or_else(
|
||||||
|
|||||||
@@ -24,7 +24,7 @@ struct Data {
|
|||||||
}
|
}
|
||||||
|
|
||||||
impl crate::Service for Service {
|
impl crate::Service for Service {
|
||||||
fn build(args: crate::Args<'_>) -> Result<Arc<Self>> {
|
fn build(args: &crate::Args<'_>) -> Result<Arc<Self>> {
|
||||||
Ok(Arc::new(Self {
|
Ok(Arc::new(Self {
|
||||||
db: Data {
|
db: Data {
|
||||||
backupid_algorithm: args.db["backupid_algorithm"].clone(),
|
backupid_algorithm: args.db["backupid_algorithm"].clone(),
|
||||||
|
|||||||
@@ -47,7 +47,7 @@ pub const CORP_CROSS_ORIGIN: &str = "cross-origin";
|
|||||||
|
|
||||||
#[async_trait]
|
#[async_trait]
|
||||||
impl crate::Service for Service {
|
impl crate::Service for Service {
|
||||||
fn build(args: crate::Args<'_>) -> Result<Arc<Self>> {
|
fn build(args: &crate::Args<'_>) -> Result<Arc<Self>> {
|
||||||
Ok(Arc::new(Self {
|
Ok(Arc::new(Self {
|
||||||
url_preview_mutex: MutexMap::new(),
|
url_preview_mutex: MutexMap::new(),
|
||||||
db: Data::new(args.db),
|
db: Data::new(args.db),
|
||||||
|
|||||||
@@ -14,7 +14,7 @@ pub struct Service {
|
|||||||
}
|
}
|
||||||
|
|
||||||
impl crate::Service for Service {
|
impl crate::Service for Service {
|
||||||
fn build(args: crate::Args<'_>) -> Result<Arc<Self>> {
|
fn build(args: &crate::Args<'_>) -> Result<Arc<Self>> {
|
||||||
Ok(Arc::new(Self { services: args.services.clone() }))
|
Ok(Arc::new(Self { services: args.services.clone() }))
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -26,7 +26,7 @@ type TimerType = (OwnedUserId, Duration);
|
|||||||
|
|
||||||
#[async_trait]
|
#[async_trait]
|
||||||
impl crate::Service for Service {
|
impl crate::Service for Service {
|
||||||
fn build(args: crate::Args<'_>) -> Result<Arc<Self>> {
|
fn build(args: &crate::Args<'_>) -> Result<Arc<Self>> {
|
||||||
let config = &args.server.config;
|
let config = &args.server.config;
|
||||||
let idle_timeout_s = config.presence_idle_timeout_s;
|
let idle_timeout_s = config.presence_idle_timeout_s;
|
||||||
let offline_timeout_s = config.presence_offline_timeout_s;
|
let offline_timeout_s = config.presence_offline_timeout_s;
|
||||||
@@ -35,7 +35,7 @@ impl crate::Service for Service {
|
|||||||
timeout_remote_users: config.presence_timeout_remote_users,
|
timeout_remote_users: config.presence_timeout_remote_users,
|
||||||
idle_timeout: checked!(idle_timeout_s * 1_000)?,
|
idle_timeout: checked!(idle_timeout_s * 1_000)?,
|
||||||
offline_timeout: checked!(offline_timeout_s * 1_000)?,
|
offline_timeout: checked!(offline_timeout_s * 1_000)?,
|
||||||
db: Data::new(&args),
|
db: Data::new(args),
|
||||||
services: args.services.clone(),
|
services: args.services.clone(),
|
||||||
last_sync_seen: RwLock::new(HashMap::new()),
|
last_sync_seen: RwLock::new(HashMap::new()),
|
||||||
}))
|
}))
|
||||||
|
|||||||
@@ -43,7 +43,7 @@ struct Data {
|
|||||||
}
|
}
|
||||||
|
|
||||||
impl crate::Service for Service {
|
impl crate::Service for Service {
|
||||||
fn build(args: crate::Args<'_>) -> Result<Arc<Self>> {
|
fn build(args: &crate::Args<'_>) -> Result<Arc<Self>> {
|
||||||
Ok(Arc::new(Self {
|
Ok(Arc::new(Self {
|
||||||
db: Data {
|
db: Data {
|
||||||
senderkey_pusher: args.db["senderkey_pusher"].clone(),
|
senderkey_pusher: args.db["senderkey_pusher"].clone(),
|
||||||
|
|||||||
@@ -30,8 +30,8 @@ impl crate::Service for Service {
|
|||||||
clippy::cast_sign_loss,
|
clippy::cast_sign_loss,
|
||||||
clippy::cast_possible_truncation
|
clippy::cast_possible_truncation
|
||||||
)]
|
)]
|
||||||
fn build(args: crate::Args<'_>) -> Result<Arc<Self>> {
|
fn build(args: &crate::Args<'_>) -> Result<Arc<Self>> {
|
||||||
let cache = Cache::new(&args);
|
let cache = Cache::new(args);
|
||||||
Ok(Arc::new(Self {
|
Ok(Arc::new(Self {
|
||||||
cache: cache.clone(),
|
cache: cache.clone(),
|
||||||
resolver: Resolver::build(args.server, cache)?,
|
resolver: Resolver::build(args.server, cache)?,
|
||||||
|
|||||||
@@ -28,7 +28,7 @@ struct Data {
|
|||||||
}
|
}
|
||||||
|
|
||||||
impl crate::Service for Service {
|
impl crate::Service for Service {
|
||||||
fn build(args: crate::Args<'_>) -> Result<Arc<Self>> {
|
fn build(args: &crate::Args<'_>) -> Result<Arc<Self>> {
|
||||||
Ok(Arc::new(Self {
|
Ok(Arc::new(Self {
|
||||||
db: Data {
|
db: Data {
|
||||||
alias_userid: args.db["alias_userid"].clone(),
|
alias_userid: args.db["alias_userid"].clone(),
|
||||||
|
|||||||
@@ -31,10 +31,10 @@ pub struct Service {
|
|||||||
type Bucket<'a> = BTreeSet<(u64, &'a EventId)>;
|
type Bucket<'a> = BTreeSet<(u64, &'a EventId)>;
|
||||||
|
|
||||||
impl crate::Service for Service {
|
impl crate::Service for Service {
|
||||||
fn build(args: crate::Args<'_>) -> Result<Arc<Self>> {
|
fn build(args: &crate::Args<'_>) -> Result<Arc<Self>> {
|
||||||
Ok(Arc::new(Self {
|
Ok(Arc::new(Self {
|
||||||
services: args.services.clone(),
|
services: args.services.clone(),
|
||||||
db: Data::new(&args),
|
db: Data::new(args),
|
||||||
}))
|
}))
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -17,7 +17,7 @@ pub struct Service {
|
|||||||
}
|
}
|
||||||
|
|
||||||
impl crate::Service for Service {
|
impl crate::Service for Service {
|
||||||
fn build(args: crate::Args<'_>) -> Result<Arc<Self>> {
|
fn build(args: &crate::Args<'_>) -> Result<Arc<Self>> {
|
||||||
Ok(Arc::new(Self { services: args.services.clone() }))
|
Ok(Arc::new(Self { services: args.services.clone() }))
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -14,7 +14,7 @@ struct Data {
|
|||||||
}
|
}
|
||||||
|
|
||||||
impl crate::Service for Service {
|
impl crate::Service for Service {
|
||||||
fn build(args: crate::Args<'_>) -> Result<Arc<Self>> {
|
fn build(args: &crate::Args<'_>) -> Result<Arc<Self>> {
|
||||||
Ok(Arc::new(Self {
|
Ok(Arc::new(Self {
|
||||||
db: Data {
|
db: Data {
|
||||||
publicroomids: args.db["publicroomids"].clone(),
|
publicroomids: args.db["publicroomids"].clone(),
|
||||||
|
|||||||
@@ -35,7 +35,7 @@ type RoomMutexMap = MutexMap<OwnedRoomId, ()>;
|
|||||||
|
|
||||||
#[async_trait]
|
#[async_trait]
|
||||||
impl crate::Service for Service {
|
impl crate::Service for Service {
|
||||||
fn build(args: crate::Args<'_>) -> Result<Arc<Self>> {
|
fn build(args: &crate::Args<'_>) -> Result<Arc<Self>> {
|
||||||
Ok(Arc::new(Self {
|
Ok(Arc::new(Self {
|
||||||
mutex_federation: RoomMutexMap::new(),
|
mutex_federation: RoomMutexMap::new(),
|
||||||
services: args.services.clone(),
|
services: args.services.clone(),
|
||||||
|
|||||||
@@ -43,7 +43,7 @@ pub type Witness = HashSet<OwnedUserId>;
|
|||||||
type Key<'a> = (&'a UserId, Option<&'a DeviceId>, &'a RoomId, &'a UserId);
|
type Key<'a> = (&'a UserId, Option<&'a DeviceId>, &'a RoomId, &'a UserId);
|
||||||
|
|
||||||
impl crate::Service for Service {
|
impl crate::Service for Service {
|
||||||
fn build(args: crate::Args<'_>) -> Result<Arc<Self>> {
|
fn build(args: &crate::Args<'_>) -> Result<Arc<Self>> {
|
||||||
Ok(Arc::new(Self {
|
Ok(Arc::new(Self {
|
||||||
db: Data {
|
db: Data {
|
||||||
lazyloadedids: args.db["lazyloadedids"].clone(),
|
lazyloadedids: args.db["lazyloadedids"].clone(),
|
||||||
|
|||||||
@@ -24,7 +24,7 @@ struct Data {
|
|||||||
}
|
}
|
||||||
|
|
||||||
impl crate::Service for Service {
|
impl crate::Service for Service {
|
||||||
fn build(args: crate::Args<'_>) -> Result<Arc<Self>> {
|
fn build(args: &crate::Args<'_>) -> Result<Arc<Self>> {
|
||||||
Ok(Arc::new(Self {
|
Ok(Arc::new(Self {
|
||||||
db: Data {
|
db: Data {
|
||||||
disabledroomids: args.db["disabledroomids"].clone(),
|
disabledroomids: args.db["disabledroomids"].clone(),
|
||||||
|
|||||||
@@ -16,10 +16,10 @@ pub struct Service {
|
|||||||
}
|
}
|
||||||
|
|
||||||
impl crate::Service for Service {
|
impl crate::Service for Service {
|
||||||
fn build(args: crate::Args<'_>) -> Result<Arc<Self>> {
|
fn build(args: &crate::Args<'_>) -> Result<Arc<Self>> {
|
||||||
Ok(Arc::new(Self {
|
Ok(Arc::new(Self {
|
||||||
services: args.services.clone(),
|
services: args.services.clone(),
|
||||||
db: Data::new(&args),
|
db: Data::new(args),
|
||||||
}))
|
}))
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -28,10 +28,10 @@ pub struct Service {
|
|||||||
}
|
}
|
||||||
|
|
||||||
impl crate::Service for Service {
|
impl crate::Service for Service {
|
||||||
fn build(args: crate::Args<'_>) -> Result<Arc<Self>> {
|
fn build(args: &crate::Args<'_>) -> Result<Arc<Self>> {
|
||||||
Ok(Arc::new(Self {
|
Ok(Arc::new(Self {
|
||||||
services: args.services.clone(),
|
services: args.services.clone(),
|
||||||
db: Data::new(&args),
|
db: Data::new(args),
|
||||||
}))
|
}))
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -45,7 +45,7 @@ const TOKEN_ID_MAX_LEN: usize =
|
|||||||
const WORD_MAX_LEN: usize = 50;
|
const WORD_MAX_LEN: usize = 50;
|
||||||
|
|
||||||
impl crate::Service for Service {
|
impl crate::Service for Service {
|
||||||
fn build(args: crate::Args<'_>) -> Result<Arc<Self>> {
|
fn build(args: &crate::Args<'_>) -> Result<Arc<Self>> {
|
||||||
Ok(Arc::new(Self {
|
Ok(Arc::new(Self {
|
||||||
db: Data { tokenids: args.db["tokenids"].clone() },
|
db: Data { tokenids: args.db["tokenids"].clone() },
|
||||||
services: args.services.clone(),
|
services: args.services.clone(),
|
||||||
|
|||||||
@@ -24,7 +24,7 @@ struct Data {
|
|||||||
pub type ShortStateHash = ShortId;
|
pub type ShortStateHash = ShortId;
|
||||||
|
|
||||||
impl crate::Service for Service {
|
impl crate::Service for Service {
|
||||||
fn build(args: crate::Args<'_>) -> Result<Arc<Self>> {
|
fn build(args: &crate::Args<'_>) -> Result<Arc<Self>> {
|
||||||
Ok(Arc::new(Self {
|
Ok(Arc::new(Self {
|
||||||
db: Data {
|
db: Data {
|
||||||
eventid_shorteventid: args.db["eventid_shorteventid"].clone(),
|
eventid_shorteventid: args.db["eventid_shorteventid"].clone(),
|
||||||
|
|||||||
@@ -59,7 +59,7 @@ type Cache = LruCache<OwnedRoomId, Option<CachedSpaceHierarchySummary>>;
|
|||||||
|
|
||||||
#[async_trait]
|
#[async_trait]
|
||||||
impl crate::Service for Service {
|
impl crate::Service for Service {
|
||||||
fn build(args: crate::Args<'_>) -> Result<Arc<Self>> {
|
fn build(args: &crate::Args<'_>) -> Result<Arc<Self>> {
|
||||||
let config = &args.server.config;
|
let config = &args.server.config;
|
||||||
let cache_size = f64::from(config.roomid_spacehierarchy_cache_capacity);
|
let cache_size = f64::from(config.roomid_spacehierarchy_cache_capacity);
|
||||||
let cache_size = cache_size * config.cache_capacity_modifier;
|
let cache_size = cache_size * config.cache_capacity_modifier;
|
||||||
|
|||||||
@@ -51,7 +51,7 @@ pub type RoomMutexGuard = MutexMapGuard<OwnedRoomId, ()>;
|
|||||||
|
|
||||||
#[async_trait]
|
#[async_trait]
|
||||||
impl crate::Service for Service {
|
impl crate::Service for Service {
|
||||||
fn build(args: crate::Args<'_>) -> Result<Arc<Self>> {
|
fn build(args: &crate::Args<'_>) -> Result<Arc<Self>> {
|
||||||
Ok(Arc::new(Self {
|
Ok(Arc::new(Self {
|
||||||
mutex: RoomMutexMap::new(),
|
mutex: RoomMutexMap::new(),
|
||||||
services: args.services.clone(),
|
services: args.services.clone(),
|
||||||
|
|||||||
@@ -44,7 +44,7 @@ struct Data {
|
|||||||
|
|
||||||
#[async_trait]
|
#[async_trait]
|
||||||
impl crate::Service for Service {
|
impl crate::Service for Service {
|
||||||
fn build(args: crate::Args<'_>) -> Result<Arc<Self>> {
|
fn build(args: &crate::Args<'_>) -> Result<Arc<Self>> {
|
||||||
Ok(Arc::new(Self {
|
Ok(Arc::new(Self {
|
||||||
services: args.services.clone(),
|
services: args.services.clone(),
|
||||||
db: Data {
|
db: Data {
|
||||||
|
|||||||
@@ -52,7 +52,7 @@ type StrippedStateEventItem = (OwnedRoomId, Vec<Raw<AnyStrippedStateEvent>>);
|
|||||||
type SyncStateEventItem = (OwnedRoomId, Vec<Raw<AnySyncStateEvent>>);
|
type SyncStateEventItem = (OwnedRoomId, Vec<Raw<AnySyncStateEvent>>);
|
||||||
|
|
||||||
impl crate::Service for Service {
|
impl crate::Service for Service {
|
||||||
fn build(args: crate::Args<'_>) -> Result<Arc<Self>> {
|
fn build(args: &crate::Args<'_>) -> Result<Arc<Self>> {
|
||||||
Ok(Arc::new(Self {
|
Ok(Arc::new(Self {
|
||||||
appservice_in_room_cache: RwLock::new(HashMap::new()),
|
appservice_in_room_cache: RwLock::new(HashMap::new()),
|
||||||
services: args.services.clone(),
|
services: args.services.clone(),
|
||||||
|
|||||||
@@ -60,7 +60,7 @@ pub type CompressedStateEvent = [u8; 2 * size_of::<ShortId>()];
|
|||||||
|
|
||||||
#[async_trait]
|
#[async_trait]
|
||||||
impl crate::Service for Service {
|
impl crate::Service for Service {
|
||||||
fn build(args: crate::Args<'_>) -> Result<Arc<Self>> {
|
fn build(args: &crate::Args<'_>) -> Result<Arc<Self>> {
|
||||||
let config = &args.server.config;
|
let config = &args.server.config;
|
||||||
let cache_capacity =
|
let cache_capacity =
|
||||||
f64::from(config.stateinfo_cache_capacity) * config.cache_capacity_modifier;
|
f64::from(config.stateinfo_cache_capacity) * config.cache_capacity_modifier;
|
||||||
|
|||||||
@@ -27,7 +27,7 @@ pub(super) struct Data {
|
|||||||
}
|
}
|
||||||
|
|
||||||
impl crate::Service for Service {
|
impl crate::Service for Service {
|
||||||
fn build(args: crate::Args<'_>) -> Result<Arc<Self>> {
|
fn build(args: &crate::Args<'_>) -> Result<Arc<Self>> {
|
||||||
Ok(Arc::new(Self {
|
Ok(Arc::new(Self {
|
||||||
db: Data {
|
db: Data {
|
||||||
threadid_userids: args.db["threadid_userids"].clone(),
|
threadid_userids: args.db["threadid_userids"].clone(),
|
||||||
|
|||||||
@@ -79,7 +79,7 @@ pub type PdusIterItem = (PduCount, PduEvent);
|
|||||||
|
|
||||||
#[async_trait]
|
#[async_trait]
|
||||||
impl crate::Service for Service {
|
impl crate::Service for Service {
|
||||||
fn build(args: crate::Args<'_>) -> Result<Arc<Self>> {
|
fn build(args: &crate::Args<'_>) -> Result<Arc<Self>> {
|
||||||
Ok(Arc::new(Self {
|
Ok(Arc::new(Self {
|
||||||
services: args.services.clone(),
|
services: args.services.clone(),
|
||||||
db: Data {
|
db: Data {
|
||||||
|
|||||||
@@ -24,7 +24,7 @@ pub struct Service {
|
|||||||
}
|
}
|
||||||
|
|
||||||
impl crate::Service for Service {
|
impl crate::Service for Service {
|
||||||
fn build(args: crate::Args<'_>) -> Result<Arc<Self>> {
|
fn build(args: &crate::Args<'_>) -> Result<Arc<Self>> {
|
||||||
Ok(Arc::new(Self {
|
Ok(Arc::new(Self {
|
||||||
server: args.server.clone(),
|
server: args.server.clone(),
|
||||||
services: args.services.clone(),
|
services: args.services.clone(),
|
||||||
|
|||||||
@@ -23,7 +23,7 @@ struct Data {
|
|||||||
}
|
}
|
||||||
|
|
||||||
impl crate::Service for Service {
|
impl crate::Service for Service {
|
||||||
fn build(args: crate::Args<'_>) -> Result<Arc<Self>> {
|
fn build(args: &crate::Args<'_>) -> Result<Arc<Self>> {
|
||||||
Ok(Arc::new(Self {
|
Ok(Arc::new(Self {
|
||||||
db: Data {
|
db: Data {
|
||||||
db: args.db.clone(),
|
db: args.db.clone(),
|
||||||
|
|||||||
@@ -61,10 +61,10 @@ const EDU_VEC_CAP: usize = 1;
|
|||||||
|
|
||||||
#[async_trait]
|
#[async_trait]
|
||||||
impl crate::Service for Service {
|
impl crate::Service for Service {
|
||||||
fn build(args: crate::Args<'_>) -> Result<Arc<Self>> {
|
fn build(args: &crate::Args<'_>) -> Result<Arc<Self>> {
|
||||||
let num_senders = num_senders(&args);
|
let num_senders = num_senders(args);
|
||||||
Ok(Arc::new(Self {
|
Ok(Arc::new(Self {
|
||||||
db: Data::new(&args),
|
db: Data::new(args),
|
||||||
server: args.server.clone(),
|
server: args.server.clone(),
|
||||||
services: args.services.clone(),
|
services: args.services.clone(),
|
||||||
channels: (0..num_senders)
|
channels: (0..num_senders)
|
||||||
|
|||||||
@@ -40,7 +40,7 @@ pub type PubKeyMap = PublicKeyMap;
|
|||||||
pub type PubKeys = PublicKeySet;
|
pub type PubKeys = PublicKeySet;
|
||||||
|
|
||||||
impl crate::Service for Service {
|
impl crate::Service for Service {
|
||||||
fn build(args: crate::Args<'_>) -> Result<Arc<Self>> {
|
fn build(args: &crate::Args<'_>) -> Result<Arc<Self>> {
|
||||||
let minimum_valid = Duration::from_secs(3600);
|
let minimum_valid = Duration::from_secs(3600);
|
||||||
|
|
||||||
let (keypair, verify_keys) = keypair::init(args.db)?;
|
let (keypair, verify_keys) = keypair::init(args.db)?;
|
||||||
|
|||||||
@@ -14,7 +14,7 @@ pub(crate) trait Service: Any + Send + Sync {
|
|||||||
/// service type. Note that it may be called again after a server reload,
|
/// service type. Note that it may be called again after a server reload,
|
||||||
/// but the prior instance will have been dropped first. Failure will
|
/// but the prior instance will have been dropped first. Failure will
|
||||||
/// shutdown the server with an error.
|
/// shutdown the server with an error.
|
||||||
fn build(args: Args<'_>) -> Result<Arc<impl Service>>
|
fn build(args: &Args<'_>) -> Result<Arc<impl Service>>
|
||||||
where
|
where
|
||||||
Self: Sized;
|
Self: Sized;
|
||||||
|
|
||||||
|
|||||||
@@ -69,58 +69,54 @@ pub struct Services {
|
|||||||
pub async fn build(server: Arc<Server>) -> Result<Arc<Self>> {
|
pub async fn build(server: Arc<Server>) -> Result<Arc<Self>> {
|
||||||
let db = Database::open(&server).await?;
|
let db = Database::open(&server).await?;
|
||||||
let services = Arc::new(OnceServices::default());
|
let services = Arc::new(OnceServices::default());
|
||||||
macro_rules! build {
|
let args = Args {
|
||||||
($tyname:ty) => {
|
db: &db,
|
||||||
<$tyname>::build(Args {
|
server: &server,
|
||||||
db: &db,
|
services: &services,
|
||||||
server: &server,
|
};
|
||||||
services: &services,
|
|
||||||
})?
|
|
||||||
};
|
|
||||||
}
|
|
||||||
|
|
||||||
let res = Arc::new(Self {
|
let res = Arc::new(Self {
|
||||||
account_data: build!(account_data::Service),
|
account_data: account_data::Service::build(&args)?,
|
||||||
admin: build!(admin::Service),
|
admin: admin::Service::build(&args)?,
|
||||||
appservice: build!(appservice::Service),
|
appservice: appservice::Service::build(&args)?,
|
||||||
resolver: build!(resolver::Service),
|
resolver: resolver::Service::build(&args)?,
|
||||||
client: build!(client::Service),
|
client: client::Service::build(&args)?,
|
||||||
config: build!(config::Service),
|
config: config::Service::build(&args)?,
|
||||||
emergency: build!(emergency::Service),
|
emergency: emergency::Service::build(&args)?,
|
||||||
globals: build!(globals::Service),
|
globals: globals::Service::build(&args)?,
|
||||||
key_backups: build!(key_backups::Service),
|
key_backups: key_backups::Service::build(&args)?,
|
||||||
media: build!(media::Service),
|
media: media::Service::build(&args)?,
|
||||||
presence: build!(presence::Service),
|
presence: presence::Service::build(&args)?,
|
||||||
pusher: build!(pusher::Service),
|
pusher: pusher::Service::build(&args)?,
|
||||||
alias: build!(rooms::alias::Service),
|
alias: rooms::alias::Service::build(&args)?,
|
||||||
auth_chain: build!(rooms::auth_chain::Service),
|
auth_chain: rooms::auth_chain::Service::build(&args)?,
|
||||||
delete: build!(rooms::delete::Service),
|
delete: rooms::delete::Service::build(&args)?,
|
||||||
directory: build!(rooms::directory::Service),
|
directory: rooms::directory::Service::build(&args)?,
|
||||||
event_handler: build!(rooms::event_handler::Service),
|
event_handler: rooms::event_handler::Service::build(&args)?,
|
||||||
lazy_loading: build!(rooms::lazy_loading::Service),
|
lazy_loading: rooms::lazy_loading::Service::build(&args)?,
|
||||||
metadata: build!(rooms::metadata::Service),
|
metadata: rooms::metadata::Service::build(&args)?,
|
||||||
pdu_metadata: build!(rooms::pdu_metadata::Service),
|
pdu_metadata: rooms::pdu_metadata::Service::build(&args)?,
|
||||||
read_receipt: build!(rooms::read_receipt::Service),
|
read_receipt: rooms::read_receipt::Service::build(&args)?,
|
||||||
search: build!(rooms::search::Service),
|
search: rooms::search::Service::build(&args)?,
|
||||||
short: build!(rooms::short::Service),
|
short: rooms::short::Service::build(&args)?,
|
||||||
spaces: build!(rooms::spaces::Service),
|
spaces: rooms::spaces::Service::build(&args)?,
|
||||||
state: build!(rooms::state::Service),
|
state: rooms::state::Service::build(&args)?,
|
||||||
state_accessor: build!(rooms::state_accessor::Service),
|
state_accessor: rooms::state_accessor::Service::build(&args)?,
|
||||||
state_cache: build!(rooms::state_cache::Service),
|
state_cache: rooms::state_cache::Service::build(&args)?,
|
||||||
state_compressor: build!(rooms::state_compressor::Service),
|
state_compressor: rooms::state_compressor::Service::build(&args)?,
|
||||||
threads: build!(rooms::threads::Service),
|
threads: rooms::threads::Service::build(&args)?,
|
||||||
timeline: build!(rooms::timeline::Service),
|
timeline: rooms::timeline::Service::build(&args)?,
|
||||||
typing: build!(rooms::typing::Service),
|
typing: rooms::typing::Service::build(&args)?,
|
||||||
user: build!(rooms::user::Service),
|
user: rooms::user::Service::build(&args)?,
|
||||||
federation: build!(federation::Service),
|
federation: federation::Service::build(&args)?,
|
||||||
sending: build!(sending::Service),
|
sending: sending::Service::build(&args)?,
|
||||||
server_keys: build!(server_keys::Service),
|
server_keys: server_keys::Service::build(&args)?,
|
||||||
sync: build!(sync::Service),
|
sync: sync::Service::build(&args)?,
|
||||||
transaction_ids: build!(transaction_ids::Service),
|
transaction_ids: transaction_ids::Service::build(&args)?,
|
||||||
uiaa: build!(uiaa::Service),
|
uiaa: uiaa::Service::build(&args)?,
|
||||||
users: build!(users::Service),
|
users: users::Service::build(&args)?,
|
||||||
membership: build!(membership::Service),
|
membership: membership::Service::build(&args)?,
|
||||||
deactivate: build!(deactivate::Service),
|
deactivate: deactivate::Service::build(&args)?,
|
||||||
|
|
||||||
manager: Mutex::new(None),
|
manager: Mutex::new(None),
|
||||||
server,
|
server,
|
||||||
|
|||||||
@@ -51,7 +51,7 @@ pub type ListId = SmallString<[u8; 16]>;
|
|||||||
pub type ConnId = SmallString<[u8; 16]>;
|
pub type ConnId = SmallString<[u8; 16]>;
|
||||||
|
|
||||||
impl crate::Service for Service {
|
impl crate::Service for Service {
|
||||||
fn build(args: crate::Args<'_>) -> Result<Arc<Self>> {
|
fn build(args: &crate::Args<'_>) -> Result<Arc<Self>> {
|
||||||
Ok(Arc::new(Self {
|
Ok(Arc::new(Self {
|
||||||
db: Data {
|
db: Data {
|
||||||
todeviceid_events: args.db["todeviceid_events"].clone(),
|
todeviceid_events: args.db["todeviceid_events"].clone(),
|
||||||
|
|||||||
@@ -13,7 +13,7 @@ struct Data {
|
|||||||
}
|
}
|
||||||
|
|
||||||
impl crate::Service for Service {
|
impl crate::Service for Service {
|
||||||
fn build(args: crate::Args<'_>) -> Result<Arc<Self>> {
|
fn build(args: &crate::Args<'_>) -> Result<Arc<Self>> {
|
||||||
Ok(Arc::new(Self {
|
Ok(Arc::new(Self {
|
||||||
db: Data {
|
db: Data {
|
||||||
userdevicetxnid_response: args.db["userdevicetxnid_response"].clone(),
|
userdevicetxnid_response: args.db["userdevicetxnid_response"].clone(),
|
||||||
|
|||||||
@@ -32,7 +32,7 @@ type RequestKey = (OwnedUserId, OwnedDeviceId, String);
|
|||||||
pub const SESSION_ID_LENGTH: usize = 32;
|
pub const SESSION_ID_LENGTH: usize = 32;
|
||||||
|
|
||||||
impl crate::Service for Service {
|
impl crate::Service for Service {
|
||||||
fn build(args: crate::Args<'_>) -> Result<Arc<Self>> {
|
fn build(args: &crate::Args<'_>) -> Result<Arc<Self>> {
|
||||||
Ok(Arc::new(Self {
|
Ok(Arc::new(Self {
|
||||||
userdevicesessionid_uiaarequest: RwLock::new(RequestMap::new()),
|
userdevicesessionid_uiaarequest: RwLock::new(RequestMap::new()),
|
||||||
db: Data {
|
db: Data {
|
||||||
|
|||||||
@@ -57,7 +57,7 @@ struct Data {
|
|||||||
}
|
}
|
||||||
|
|
||||||
impl crate::Service for Service {
|
impl crate::Service for Service {
|
||||||
fn build(args: crate::Args<'_>) -> Result<Arc<Self>> {
|
fn build(args: &crate::Args<'_>) -> Result<Arc<Self>> {
|
||||||
Ok(Arc::new(Self {
|
Ok(Arc::new(Self {
|
||||||
services: args.services.clone(),
|
services: args.services.clone(),
|
||||||
db: Data {
|
db: Data {
|
||||||
|
|||||||
Reference in New Issue
Block a user