mirror of
https://github.com/matrix-org/dendrite.git
synced 2026-01-16 18:43:10 -06:00
Make test pass
This commit is contained in:
parent
313cb3fd19
commit
706df0d729
|
|
@ -227,14 +227,10 @@ func (p *PDUStreamProvider) addRoomDeltaToResponse(
|
|||
stateFilter *gomatrixserverlib.StateFilter,
|
||||
req *types.SyncRequest,
|
||||
) (types.StreamPosition, error) {
|
||||
if delta.MembershipPos > 0 && delta.Membership == gomatrixserverlib.Leave {
|
||||
// make sure we don't leak recent events after the leave event.
|
||||
// TODO: History visibility makes this somewhat complex to handle correctly. For example:
|
||||
// TODO: This doesn't work for join -> leave in a single /sync request (see events prior to join).
|
||||
// TODO: This will fail on join -> leave -> sensitive msg -> join -> leave
|
||||
// in a single /sync request
|
||||
// This is all "okay" assuming history_visibility == "shared" which it is by default.
|
||||
r.To = delta.MembershipPos
|
||||
|
||||
originalLimit := eventFilter.Limit
|
||||
if r.Backwards {
|
||||
eventFilter.Limit = int(r.From - r.To)
|
||||
}
|
||||
recentStreamEvents, limited, err := snapshot.RecentEvents(
|
||||
ctx, delta.RoomID, r,
|
||||
|
|
@ -303,6 +299,12 @@ func (p *PDUStreamProvider) addRoomDeltaToResponse(
|
|||
logrus.WithError(err).Error("unable to apply history visibility filter")
|
||||
}
|
||||
|
||||
if r.Backwards && len(events) > originalLimit {
|
||||
// We're going backwards and the events are ordered chronologically, so take the last `limit` events
|
||||
events = events[len(events)-originalLimit:]
|
||||
limited = true
|
||||
}
|
||||
|
||||
if len(delta.StateEvents) > 0 {
|
||||
updateLatestPosition(delta.StateEvents[len(delta.StateEvents)-1].EventID())
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in a new issue