fix: remove our server from the list of servers to send the event PDU to
@@ -1957,11 +1957,8 @@ impl Rooms {
// where events in the current room state do not exist
self.set_room_state(room_id, statehashid)?;
- let mut servers: HashSet<Box<ServerName>> = self
- .room_servers(room_id)
- .filter_map(|r| r.ok())
- .filter(|server| &**server != db.globals.server_name())
- .collect();
+ let mut servers: HashSet<Box<ServerName>> =
+ self.room_servers(room_id).filter_map(|r| r.ok()).collect();
// In case we are kicking or banning a user, we need to inform their server of the change
if pdu.kind == EventType::RoomMember {
@@ -1974,6 +1971,8 @@ impl Rooms {
}
}
+ servers.remove(db.globals.server_name());
+
db.sending.send_pdu(servers.into_iter(), &pdu_id)?;
for appservice in db.appservice.all()? {
