Room server changes for room versions (#930)

* Rearrange state package a bit, add some code to look up the right state resolution algorithm

* Remove shared

* Add GetRoomVersionForRoomNID

* Try to use room version to get correct state resolution algorithm

* Fix room joins over federation

* nolint resolveConflictsV2 because all attempts to break it up so far just result in it being awfully less obvious how it works

* Rename Prepare to NewStateResolution

* Update comments

* Re-add missing tests
This commit is contained in:
Neil Alexander 2020-03-19 18:33:04 +00:00 committed by GitHub
parent 944d454cb0
commit f2030286de
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
12 changed files with 1122 additions and 1025 deletions

View file

@ -156,11 +156,8 @@ func calculateAndSetState(
stateAtEvent *types.StateAtEvent,
event gomatrixserverlib.Event,
) error {
// TODO: get the correct room version
roomState, err := state.GetStateResolutionAlgorithm(state.StateResolutionAlgorithmV1, db)
if err != nil {
return err
}
var err error
roomState := state.NewStateResolution(db)
if input.HasState {
// We've been told what the state at the event is so we don't need to calculate it.

View file

@ -178,11 +178,7 @@ func (u *latestEventsUpdater) doUpdateLatestEvents() error {
func (u *latestEventsUpdater) latestState() error {
var err error
// TODO: get the correct room version
roomState, err := state.GetStateResolutionAlgorithm(state.StateResolutionAlgorithmV1, u.db)
if err != nil {
return err
}
roomState := state.NewStateResolution(u.db)
latestStateAtEvents := make([]types.StateAtEvent, len(u.latest))
for i := range u.latest {