diff options
author | kegsay <kegan@matrix.org> | 2023-04-14 12:32:42 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-04-14 12:32:42 +0100 |
commit | ca63b414da87f7bdb25effffd187d51191a42b3e (patch) | |
tree | d57874c2f8f2508a954125f33a1803fb65b18b06 /roomserver/internal | |
parent | 94e81cc3f30b35fb241a7c5d50b4a3554652c58b (diff) |
Update GMSL: use static Check functions (#3052)
Sister PR to https://github.com/matrix-org/gomatrixserverlib/pull/359
A nice side effect is that we don't need to re-parse the events in some
cases.
Diffstat (limited to 'roomserver/internal')
-rw-r--r-- | roomserver/internal/input/input_missing.go | 24 |
1 files changed, 6 insertions, 18 deletions
diff --git a/roomserver/internal/input/input_missing.go b/roomserver/internal/input/input_missing.go index 74b13874..16bc18d8 100644 --- a/roomserver/internal/input/input_missing.go +++ b/roomserver/internal/input/input_missing.go @@ -641,31 +641,19 @@ func (t *missingStateReq) lookupMissingStateViaState( if err != nil { return nil, err } - s := fclient.RespState{ + + // Check that the returned state is valid. + authEvents, stateEvents, err := gomatrixserverlib.CheckStateResponse(ctx, &fclient.RespState{ StateEvents: state.GetStateEvents(), AuthEvents: state.GetAuthEvents(), - } - // Check that the returned state is valid. - authEvents, stateEvents, err := s.Check(ctx, roomVersion, t.keys, nil) + }, roomVersion, t.keys, nil) if err != nil { return nil, err } - parsedState := &parsedRespState{ + return &parsedRespState{ AuthEvents: authEvents, StateEvents: stateEvents, - } - // Cache the results of this state lookup and deduplicate anything we already - // have in the cache, freeing up memory. - // We load these as trusted as we called state.Check before which loaded them as untrusted. - for i, evJSON := range s.AuthEvents { - ev, _ := gomatrixserverlib.NewEventFromTrustedJSON(evJSON, false, roomVersion) - parsedState.AuthEvents[i] = t.cacheAndReturn(ev) - } - for i, evJSON := range s.StateEvents { - ev, _ := gomatrixserverlib.NewEventFromTrustedJSON(evJSON, false, roomVersion) - parsedState.StateEvents[i] = t.cacheAndReturn(ev) - } - return parsedState, nil + }, nil } func (t *missingStateReq) lookupMissingStateViaStateIDs(ctx context.Context, roomID, eventID string, roomVersion gomatrixserverlib.RoomVersion) ( |