aboutsummaryrefslogtreecommitdiff
path: root/roomserver/internal
diff options
context:
space:
mode:
authorkegsay <kegan@matrix.org>2023-04-14 12:32:42 +0100
committerGitHub <noreply@github.com>2023-04-14 12:32:42 +0100
commitca63b414da87f7bdb25effffd187d51191a42b3e (patch)
treed57874c2f8f2508a954125f33a1803fb65b18b06 /roomserver/internal
parent94e81cc3f30b35fb241a7c5d50b4a3554652c58b (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.go24
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) (