From 97aa5e74d2a1684d7483674f21708881ec824be7 Mon Sep 17 00:00:00 2001 From: Till Faelligen <2353100+S7evinK@users.noreply.github.com> Date: Wed, 17 May 2023 11:29:08 +0200 Subject: [PATCH] Use EventID as SHA256 --- roomserver/internal/input/input_events.go | 2 +- roomserver/internal/input/input_latest_events.go | 8 ++++---- roomserver/internal/perform/perform_admin.go | 2 +- roomserver/internal/perform/perform_upgrade.go | 2 +- roomserver/types/types.go | 2 +- test/room.go | 2 +- 6 files changed, 9 insertions(+), 9 deletions(-) diff --git a/roomserver/internal/input/input_events.go b/roomserver/internal/input/input_events.go index cd78b3722..332add98b 100644 --- a/roomserver/internal/input/input_events.go +++ b/roomserver/internal/input/input_events.go @@ -884,7 +884,7 @@ func (r *Inputer) kickGuests(ctx context.Context, event gomatrixserverlib.PDU, r SendAsServer: string(senderDomain), }) prevEvents = []gomatrixserverlib.EventReference{ - event.EventReference(), + {EventID: event.EventID(), EventSHA256: spec.Base64Bytes(event.EventID())}, } } diff --git a/roomserver/internal/input/input_latest_events.go b/roomserver/internal/input/input_latest_events.go index 54a5f6234..7a7a021a3 100644 --- a/roomserver/internal/input/input_latest_events.go +++ b/roomserver/internal/input/input_latest_events.go @@ -154,8 +154,8 @@ func (u *latestEventsUpdater) doUpdateLatestEvents() error { extremitiesChanged, err := u.calculateLatest( u.oldLatest, u.event, types.StateAtEventAndReference{ - EventReference: u.event.EventReference(), - StateAtEvent: u.stateAtEvent, + EventID: u.event.EventID(), + StateAtEvent: u.stateAtEvent, }, ) if err != nil { @@ -349,7 +349,7 @@ func (u *latestEventsUpdater) calculateLatest( // If the "new" event is already referenced by an existing event // then do nothing - it's not a candidate to be a new extremity if // it has been referenced. - if referenced, err := u.updater.IsReferenced(newEvent.EventReference()); err != nil { + if referenced, err := u.updater.IsReferenced(newEvent.EventID()); err != nil { return false, fmt.Errorf("u.updater.IsReferenced(new): %w", err) } else if referenced { u.latest = oldLatest @@ -360,7 +360,7 @@ func (u *latestEventsUpdater) calculateLatest( // have entries in the previous events table. If they do then we // will no longer include them as forward extremities. for k, l := range existingRefs { - referenced, err := u.updater.IsReferenced(l.EventReference) + referenced, err := u.updater.IsReferenced(l.EventID) if err != nil { return false, fmt.Errorf("u.updater.IsReferenced: %w", err) } else if referenced { diff --git a/roomserver/internal/perform/perform_admin.go b/roomserver/internal/perform/perform_admin.go index fadc8bcfc..464e7eaed 100644 --- a/roomserver/internal/perform/perform_admin.go +++ b/roomserver/internal/perform/perform_admin.go @@ -132,7 +132,7 @@ func (r *Admin) PerformAdminEvacuateRoom( }) affected = append(affected, stateKey) prevEvents = []gomatrixserverlib.EventReference{ - event.EventReference(), + {EventID: event.EventID(), EventSHA256: spec.Base64Bytes(event.EventID())}, } } diff --git a/roomserver/internal/perform/perform_upgrade.go b/roomserver/internal/perform/perform_upgrade.go index abe63145a..159e76753 100644 --- a/roomserver/internal/perform/perform_upgrade.go +++ b/roomserver/internal/perform/perform_upgrade.go @@ -471,7 +471,7 @@ func (r *Upgrader) sendInitialEvents(ctx context.Context, evTime time.Time, user return fmt.Errorf("failed to set content of new %q event: %w", proto.Type, err) } if i > 0 { - proto.PrevEvents = []gomatrixserverlib.EventReference{builtEvents[i-1].EventReference()} + proto.PrevEvents = []gomatrixserverlib.EventReference{{EventID: builtEvents[i-1].EventID(), EventSHA256: spec.Base64Bytes(builtEvents[i-1].EventID())}} } var verImpl gomatrixserverlib.IRoomVersion diff --git a/roomserver/types/types.go b/roomserver/types/types.go index e986b9da7..f57978ad5 100644 --- a/roomserver/types/types.go +++ b/roomserver/types/types.go @@ -200,7 +200,7 @@ func (s StateAtEvent) IsStateEvent() bool { // The StateAtEvent is used to construct the current state of the room from the latest events. type StateAtEventAndReference struct { StateAtEvent - gomatrixserverlib.EventReference + EventID string } type StateAtEventAndReferences []StateAtEventAndReference diff --git a/test/room.go b/test/room.go index 1c0f01e4b..62ee52865 100644 --- a/test/room.go +++ b/test/room.go @@ -176,7 +176,7 @@ func (r *Room) CreateEvent(t *testing.T, creator *User, eventType string, conten t.Fatalf("CreateEvent[%s]: failed to SetContent: %s", eventType, err) } if depth > 1 { - builder.PrevEvents = []gomatrixserverlib.EventReference{r.events[len(r.events)-1].EventReference()} + builder.PrevEvents = []gomatrixserverlib.EventReference{{EventSHA256: spec.Base64Bytes(r.events[len(r.events)-1].EventID()), EventID: r.events[len(r.events)-1].EventID()}} } err = builder.AddAuthEvents(&r.authEvents)