add trusted keyservers to backfill from if in room
Signed-off-by: strawberry <strawberry@puppygock.gay>
This commit is contained in:
parent
babf29d217
commit
b39aa00a9b
1 changed files with 19 additions and 6 deletions
|
@ -1065,7 +1065,20 @@ impl Service {
|
||||||
return Ok(());
|
return Ok(());
|
||||||
}
|
}
|
||||||
|
|
||||||
let mut servers: Vec<&ServerName> = vec![];
|
let mut servers: Vec<OwnedServerName> = vec![];
|
||||||
|
|
||||||
|
// add server names of any trusted key servers if they're in the room
|
||||||
|
for server in services()
|
||||||
|
.rooms
|
||||||
|
.state_cache
|
||||||
|
.room_servers(room_id)
|
||||||
|
.filter_map(Result::ok)
|
||||||
|
.filter(|server| services().globals.trusted_servers().contains(server))
|
||||||
|
{
|
||||||
|
if server != services().globals.server_name() {
|
||||||
|
servers.push(server);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// add server names from room aliases on the room ID
|
// add server names from room aliases on the room ID
|
||||||
let room_aliases = services()
|
let room_aliases = services()
|
||||||
|
@ -1076,7 +1089,7 @@ impl Service {
|
||||||
if let Ok(aliases) = &room_aliases {
|
if let Ok(aliases) = &room_aliases {
|
||||||
for alias in aliases {
|
for alias in aliases {
|
||||||
if alias.server_name() != services().globals.server_name() {
|
if alias.server_name() != services().globals.server_name() {
|
||||||
servers.push(alias.server_name());
|
servers.push(alias.server_name().to_owned());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1084,7 +1097,7 @@ impl Service {
|
||||||
// add room ID server name for backfill server
|
// add room ID server name for backfill server
|
||||||
if let Some(server) = room_id.server_name() {
|
if let Some(server) = room_id.server_name() {
|
||||||
if server != services().globals.server_name() {
|
if server != services().globals.server_name() {
|
||||||
servers.push(server);
|
servers.push(server.to_owned());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1108,7 +1121,7 @@ impl Service {
|
||||||
.collect::<Vec<_>>()
|
.collect::<Vec<_>>()
|
||||||
{
|
{
|
||||||
if server != services().globals.server_name() {
|
if server != services().globals.server_name() {
|
||||||
servers.push(server);
|
servers.push(server.to_owned());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1130,7 +1143,7 @@ impl Service {
|
||||||
let response = services()
|
let response = services()
|
||||||
.sending
|
.sending
|
||||||
.send_federation_request(
|
.send_federation_request(
|
||||||
backfill_server,
|
&backfill_server,
|
||||||
federation::backfill::get_backfill::v1::Request {
|
federation::backfill::get_backfill::v1::Request {
|
||||||
room_id: room_id.to_owned(),
|
room_id: room_id.to_owned(),
|
||||||
v: vec![first_pdu.1.event_id.as_ref().to_owned()],
|
v: vec![first_pdu.1.event_id.as_ref().to_owned()],
|
||||||
|
@ -1142,7 +1155,7 @@ impl Service {
|
||||||
Ok(response) => {
|
Ok(response) => {
|
||||||
let pub_key_map = RwLock::new(BTreeMap::new());
|
let pub_key_map = RwLock::new(BTreeMap::new());
|
||||||
for pdu in response.pdus {
|
for pdu in response.pdus {
|
||||||
if let Err(e) = self.backfill_pdu(backfill_server, pdu, &pub_key_map).await {
|
if let Err(e) = self.backfill_pdu(&backfill_server, pdu, &pub_key_map).await {
|
||||||
warn!("Failed to add backfilled pdu in room {room_id}: {e}");
|
warn!("Failed to add backfilled pdu in room {room_id}: {e}");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue