mirror of
https://gitlab.com/famedly/conduit.git
synced 2025-06-27 16:35:59 +00:00
ok...
This commit is contained in:
parent
5e28b9158f
commit
f6e9cadfae
1 changed files with 18 additions and 22 deletions
|
@ -1,10 +1,9 @@
|
||||||
mod data;
|
mod data;
|
||||||
pub use data::{Data, SigningKeys};
|
pub use data::{Data, SigningKeys};
|
||||||
|
|
||||||
use hmac::digest::typenum::Pow;
|
|
||||||
use ruma::{
|
use ruma::{
|
||||||
serde::Base64, MilliSecondsSinceUnixEpoch, OwnedDeviceId, OwnedEventId, OwnedRoomAliasId,
|
serde::Base64, MilliSecondsSinceUnixEpoch, OwnedDeviceId, OwnedEventId, OwnedRoomAliasId,
|
||||||
OwnedRoomId, OwnedRoomOrAliasId, OwnedServerName, OwnedUserId, RoomAliasId, RoomId,
|
OwnedRoomId, OwnedRoomOrAliasId, OwnedServerName, OwnedUserId, RoomAliasId,
|
||||||
};
|
};
|
||||||
|
|
||||||
use crate::api::{client_server::get_alias_helper, server_server::DestinationResponse};
|
use crate::api::{client_server::get_alias_helper, server_server::DestinationResponse};
|
||||||
|
@ -25,7 +24,6 @@ use std::{
|
||||||
future::{self, Future},
|
future::{self, Future},
|
||||||
iter,
|
iter,
|
||||||
net::{IpAddr, SocketAddr},
|
net::{IpAddr, SocketAddr},
|
||||||
ops::Deref,
|
|
||||||
path::PathBuf,
|
path::PathBuf,
|
||||||
str::FromStr,
|
str::FromStr,
|
||||||
sync::{
|
sync::{
|
||||||
|
@ -511,29 +509,27 @@ impl Service {
|
||||||
pub async fn default_rooms(&self) -> Result<BTreeSet<OwnedRoomId>> {
|
pub async fn default_rooms(&self) -> Result<BTreeSet<OwnedRoomId>> {
|
||||||
let server_name = &self.config.server_name;
|
let server_name = &self.config.server_name;
|
||||||
|
|
||||||
let fallback = || {
|
let f = |s| async move {
|
||||||
format!("#{s}:{server_name}")
|
match OwnedRoomOrAliasId::from_str(s).map(OwnedRoomId::try_from) {
|
||||||
.parse()
|
Ok(Ok(room_id)) => room_id
|
||||||
.map_err(|_| Error::bad_config("Invalid opaque identifier."))
|
.server_name()
|
||||||
};
|
.ok_or_else(|| Error::bad_config("Invalid room ID due to missing server name."))
|
||||||
|
.map(|_| room_id.clone()),
|
||||||
let f = |s| match OwnedRoomOrAliasId::from_str(s).map(OwnedRoomId::try_from) {
|
result => get_alias_helper(result.map(Result::unwrap_err).or_else(|_| {
|
||||||
Ok(Ok(room_id)) => room_id
|
format!("#{s}:{server_name}")
|
||||||
.server_name()
|
.parse()
|
||||||
.ok_or_else(|| Error::bad_config("Invalid room ID due to missing server name."))
|
.map_err(|_| Error::bad_config("Invalid opaque identifier."))
|
||||||
.map(|_| room_id),
|
})?)
|
||||||
result => get_alias_helper(result.map(Result::unwrap_err).or_else(fallback)?)
|
|
||||||
.await
|
.await
|
||||||
.map(|response| response.room_id),
|
.map(|response| response.room_id),
|
||||||
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
self.config
|
let rooms = self.config.default_rooms.rooms.iter().map(String::as_str);
|
||||||
.default_rooms
|
futures_util::future::try_join_all(rooms.map(f))
|
||||||
.rooms
|
.await
|
||||||
.iter()
|
.map(Vec::into_iter)
|
||||||
.map(String::as_str)
|
.map(BTreeSet::from_iter)
|
||||||
.map(|s| f)
|
|
||||||
.collect::<Result<_>>()
|
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn shutdown(&self) {
|
pub fn shutdown(&self) {
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue