From b71c9e7ceadb8c0e782341d224c4b8786a3359fa Mon Sep 17 00:00:00 2001 From: Neil Alexander Date: Thu, 28 Apr 2022 13:20:53 +0100 Subject: [PATCH] Don't create so many forward extremities --- roomserver/internal/perform/perform_admin.go | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/roomserver/internal/perform/perform_admin.go b/roomserver/internal/perform/perform_admin.go index 27a5d71f0..2de6477cc 100644 --- a/roomserver/internal/perform/perform_admin.go +++ b/roomserver/internal/perform/perform_admin.go @@ -90,6 +90,7 @@ func (r *Admin) PerformAdminEvacuateRoom( return } + prevEvents := latestRes.LatestEvents for _, memberEvent := range memberEvents { if memberEvent.StateKey() == nil { continue @@ -107,10 +108,11 @@ func (r *Admin) PerformAdminEvacuateRoom( stateKey := *memberEvent.StateKey() fledglingEvent := &gomatrixserverlib.EventBuilder{ - RoomID: req.RoomID, - Type: gomatrixserverlib.MRoomMember, - StateKey: &stateKey, - Sender: stateKey, + RoomID: req.RoomID, + Type: gomatrixserverlib.MRoomMember, + StateKey: &stateKey, + Sender: stateKey, + PrevEvents: prevEvents, } if fledglingEvent.Content, err = json.Marshal(memberContent); err != nil { @@ -146,6 +148,9 @@ func (r *Admin) PerformAdminEvacuateRoom( SendAsServer: string(r.Cfg.Matrix.ServerName), }) res.Affected = append(res.Affected, stateKey) + prevEvents = []gomatrixserverlib.EventReference{ + event.EventReference(), + } } inputReq := &api.InputRoomEventsRequest{